OllyDbg 当内存等于值时中断

逆向工程 ollydbg
2021-07-01 04:13:13

我想让 olly 运行一个程序并在特定内存位置等于给定值时中断。例如,如果我可以让它运行到地址 0xFB2D0024 == 0xE9 处的值,然后在分配发生时立即中断。请让我知道这是否可行!

我在这里找到的“条件”中断不起作用,或者更确切地说,当我右键单击 -> 断点 -> 条件,然后输入条件时,程序只是在我右键单击的指令处中断,而不管条件如何,而不是在这种情况发生时。

我能得到的最接近的是右键单击特定的内存值(在内存转储中)-> 断点 -> 内存,写入时,但每次进行更改时都会中断,而不是在设置特定值时。任何帮助都会很棒!谢谢!

1个回答

您可以为 ODbgScript 插件编写脚本,

它可能看起来像这样:

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 ^(._.^)"