程序:
运行程序
用 PEiD 查壳
EZIP 1.0
用 OD 打开
按 F8 往下走
这个看似是 OEP 的地方却不是 OEP
因为代码段从 00401000 开始
可以看到,壳伪造了 3 个区段
重新载入程序,观察 ESP 的变化
此时是 0012FFC4
F8 往下走
走到这里的时候,ESP 的值变为 0012FFC0
右键 -> 数据窗口中跟随
选择 -> 右键 -> 断点 -> 硬件访问 -> Word
下一个硬件断点
按 F9 运行
程序停在了该处,ESP 的地址为 0012FFC4
按 F8 往下走
来到了程序的 OEP 处
菜单栏 -> 调试 -> 硬件断点
删除该硬件断点
右键 -> Dump debugged process
点击 Dump 保存程序
保存完之后用 LordPE 载入程序
该程序的基址为 400000,代码基址为 65000,数据基址为 6A000
也说现在程序的代码段和数据段还是指向的是壳伪造的区域
先点击“区段”
选择相应的区段,右键 -> 清除区段,删除壳伪造的区段
然后修改相应的地址
点击“保存”,再点击“确定”
然后点击“重建 PE”