ESP定律法的步骤
ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)
(1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一 般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)
(2)在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX), 按回车
(3)选中下断的地址,断点--->硬件访--->WORD断点
(4)按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP
实战
1 查壳
用PEID查壳的结果如下图,可以看出程序加了ASPack2.12的壳
2 寻找OEP
(1)用OD载入该程序
(2)按下F8单步步过,发现ESP此时是红色,记下此时ESP寄存器中的值0012FF6C(载入程序处的下一个ESP是红色,当然每个人机器上运行这个值有可能不同)
(3)在命令行下输入dd 0012FF6C,然后按下回车键
(4)选中要下断点的0012FF6C那行,依次选择断点 -> 硬件访问 -> Word
(5) 在菜单栏调试(D)下的硬件断点(H)下选项下可以看到我们设置的硬件断点
(6)然后按下F9运行程序,运行到程序停止
(7)删除前面下的硬件断点,选择调试(D)下的硬件断点(H),弹出如下对话框,点击 删除1按钮删除前面下的硬件断点
(8)运用F8很快会到达程序的OEP(此时需要使用F8单步步过)
3 脱壳
可以使用OD自带插件,也可以用LordPE,方法和前面"单步跟踪法"中使用方法一样
4 修复
可以使用ImportFix,方法和前面"单步跟踪法"中使用方法一样
文中用到的加壳程序下载地址:http://download.csdn.net/detail/qiurisuixiang/4363770