uiop8000
June 17th, 2002, 04:10
hi all,
please help! my export symbols appear to based at a
different address from the code executing them.
let me explain.
my app loads up and i break in on the first instruction.
I have the following message:
WINICE load32 obj=007 add=16f:40001000 Mod = VCL50
which is the module VCL50.BPL I have loaded exports for.
exp vcl50! shows
016f:4000a314 @System@Initialization$qqrv
016f...........................
cs = 0167
ds/ss/es = 016f
map32 appname shows all sections loaded at offsets from 016F
now, most of the time the export symbols resolve and I can
see the names in the code listing. but sometimes I can only see
the names of the symbols when they are being accessed through
ds. So the all the CALL commands don't have symbol names.
but after a couple of steps into the app the code window refreshes and the CALL commands suddenly end up with symbol names instead of numbers.
(it depends how I break into the start of the app as to whether the above happens, eg: LordPE, or on api call etc.)
More frustrating than that, is that I can't bpx on the symbol name.
A Breakpoint on @System@Initialization$qqrv for example
places a breakpoint at 016f:4000a314, while the call goes
to 0167:4000a314 and my breakpoint isn't hit.
I can get around it with
bpx 0167:dword(&vcl50!@System@Initialization$qqrv)
but i would like to know what is happening. I read something
in the softice user guide p130 about when a .DLL is mapped into two processes at different base virual addresses, the export table uses the base address of the first process to open the .DLL. But I don't think anything else is using the DLL.
background:
the app was unpacked with aspackdie
driverstudio 2.6 on windows 98
any help would be very much appreciated
kind regards
please help! my export symbols appear to based at a
different address from the code executing them.
let me explain.
my app loads up and i break in on the first instruction.
I have the following message:
WINICE load32 obj=007 add=16f:40001000 Mod = VCL50
which is the module VCL50.BPL I have loaded exports for.
exp vcl50! shows
016f:4000a314 @System@Initialization$qqrv
016f...........................
cs = 0167
ds/ss/es = 016f
map32 appname shows all sections loaded at offsets from 016F
now, most of the time the export symbols resolve and I can
see the names in the code listing. but sometimes I can only see
the names of the symbols when they are being accessed through
ds. So the all the CALL commands don't have symbol names.
but after a couple of steps into the app the code window refreshes and the CALL commands suddenly end up with symbol names instead of numbers.
(it depends how I break into the start of the app as to whether the above happens, eg: LordPE, or on api call etc.)
More frustrating than that, is that I can't bpx on the symbol name.
A Breakpoint on @System@Initialization$qqrv for example
places a breakpoint at 016f:4000a314, while the call goes
to 0167:4000a314 and my breakpoint isn't hit.
I can get around it with
bpx 0167:dword(&vcl50!@System@Initialization$qqrv)
but i would like to know what is happening. I read something
in the softice user guide p130 about when a .DLL is mapped into two processes at different base virual addresses, the export table uses the base address of the first process to open the .DLL. But I don't think anything else is using the DLL.
background:
the app was unpacked with aspackdie
driverstudio 2.6 on windows 98
any help would be very much appreciated
kind regards