ESP定律法简介
ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)
1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突变成红色。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)
2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!
3.选中下断的地址,断点—>硬件访—>WORD断点。
4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。
题目文件(吾爱)
链接:https://pan.baidu.com/s/10AAYhLn_hOIuK9kdjD9kyw 提取码:6its
(00.aspack.exe为源程序,ESP_1.exe为Dump文件,ESP_1_.exe为修复后文件)
基本面
32位 ASPack壳
脱壳
发现pushad指令,判断程序已加壳
按下F8单步步过,使得程序走到CALL的位置
然后对ESP下硬件断点
F9再将程序运行起来
运行之后就直接来到了我们的跳转处
然后我们进行单步步过(F8)寻找我们程序原始的OEP(原始入口点)
一般第一个跳转之后就是OEP了
经过了ret汇编指令我们就来到了真正的原始OEP入口点
剩下的话就是通过插件就可以将我们的程序dump下来然后修复转储就可以了
转储之后在进行修复转储
选择我们刚才转储的文件进行修复
这样就完成了我们的脱壳
010
接下来就是将这个使用010Editor关闭随机机制,保存文件
将40 81 改为00 81
保存后打开即可
原帖
感谢大佬的教程!!!