写一下
脱壳流程
1、寻找原始 OEP
这一步骤的主要作用就是要确定原始程序代码到底在哪里,能找到原始程序的代码,说明壳代码执行完了,我们只有找到原始OEP才能进行下一步的动作。
2、dump 内存到文件
当我们找到原始 OEP,调试运行到原始 OEP 时,只要代码被还原,就可以在这个地方进行 dump 内存,将内存中被还原的代码和数据抓取下来,重新保存成一个文件,这样脱完壳时,我们就可以用静态分析工具分析程序了。
3、修复文件
这一步主要就是修复 IAT,对从内存中转储到本地的文件进行修复。
ESP 定律
原理是什么?
堆栈平衡原理。
ESP 定律的适用范围是什么?
几乎全部的压缩壳,部分加密壳。只要是在 JMP 到 OEP 后,ESP=0012FFC4 的壳,理论上我们都可以使用。但是在何时下断点避开校验,何时下断 OD 才能断下来,这还需要多多总结和多多积累。
步骤
到达程序入口后, 先步过一次。 看下 ESP 是否成红色(意思是 ESP 刚刚经过修改),如果变红则在 ESP 处下一个 硬件访问断点 。载入程序后只有 esp 内容发生变化,这个程序多半可以用ESP定律。

ESP 定律
运行到下个断点的时候,继续步进或者步过, 遇到大跳转大概率是 OEP 。