J
jedwin
Guest
On 2002-04-22 05:05, Qhimm wrote:
True, but what I was referring to was this type of reference:
Code: [Select]Code:mov esi, offset srcmov edi, offset destmov ecx, somesizerep stosb
Where src is an offset say 100 bytes before the offset in question. In this
case, disassemblers and debuggers (IDA, softice etc.) pick up the operand
reference to src, but a breakpoint does not catch the actual writings to the
other offsets affected.
Actually, a Softice memory breakpoint is set using the Intel hardware --
the "Debug Registers". Basically, they allow the processor to say "trap when
an access is made to memory location X -- regardless of how it is indirected,
or what instruction is used. So, even in the case of 'rep stosb', the
breakpoint still would have been tripped, since it is generated by the
processor itself. Memory breakpoints are an extraordinarily powerful feature.
I find it interesting that you could fix it simply by changing the offset,
though. That would mean the read data can't exactly be critical to the
operation of the minigame...
I was a bit surprised by this myself, but the data in that range was
unmistakably DOS, for reasons that Phaeron described. I haven't taken the
time for find out what the data is used for, but I certainly concur that it
must not be all that important.
[edited] 363 2002-04-23 01:14