单步跟踪法
1.本方法采用OD载入。
2.跟踪F8,实现向下的跳。
3.遇到程序回跳按F4。
4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!
5.刚载入程序有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP。
6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入
7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。
ESP定律
1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)
2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!
3.选中下断的地址,断点--->硬件访--->WORD断点。
4.按一下F9运行程序,接着删除硬件访问断点 直接来到了跳转处,按下F8,到达程序OEP。