2

I'm wanting to have olly run a program and break when a particular memory location equals a given value. For instance, if I could have it run until the value at address 0xFB2D0024 == 0xE9, and then break immediately when that assignment occurs. Please let me know if this is possible!

The "conditional" breaks I found in here did not work, or rather when I right clicked -> breakpoint -> Conditional, and then entered a condition, the program simply broke at the instruction where I right-clicked, regardless of the condition, and not when the condition occurred.

The closest I can get is right clicking on a particular memory value (in the memory dump) -> breakpoint -> Memory, on write, but this breaks every time a change is made, and not when a specific value is set. Any help would be great! Thanks!

1

You can write script for ODbgScript plugin,

It might look like this:

VAR pDest
VAR Val

mov pDest, FB2D0024 // dest address
mov Val, E9 // val to look for

bpwm pDest, 4 // set bp on writing DWORD (4bytes) value.
__lbl_loop:
erun
cmp [pDest], Val
jne __lbl_loop
bpmc
LOG "Catched ^(._.^)"
  • Thank you. This does what I'm looking for, unfortunately I've now realized that setting a breakpoint on write, and then checking the value it writes is a bit too slow (the memory value is written to hundreds of times a second). Time to move on to a workaround (not involving this memory value). – zz3star90 May 16 '14 at 17:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.