一、应用场景
我们在逆向分析的过程中,往往碰到一些需要打印内存数据的情况,特别是分析对象将数据写在代码里面的时候,少量有规律的数据可以通过条件记录断点来进行打印。
二、OD的条件记录断点
下断点后,右键选择条件断点,弹出条件记录的设置框框,相关选项如下:
条件:为空就行了
说明:不用填
表达式记录描述:dword ptr ds:[esp + 0x4] 或者 dword ptr ds:[[esp]]
解码表达式为:指向ASCII 字符串的指针(你想输出的格式选择)
选:永远 记录表达式的值;
选: 从不暂停程序
这样设置就能不断的获取当前断点出esp 指向的值 和 esp + 4 指向的字符串 。
缺点:OD的条件记录只能一个断点,打印一个表达式,如果想要打印很多个内存字段,只能在前后几行下条件记录断点;
三、0x32的条件记录断点
0x32 的条件记录断点要比OD的强大。
0x32的一个条件记录断点能打印出很多个内存字段,具体格式如下:
{d:[edi + 0x64]} | {
s:[edi - 0xF4]} | {lf@edi - 0x38}...
对比OD 的优势: 能够打印多个内存字段,格式随意。
我们可以在日志