程序:

脱壳系列(二) - EZIP 壳

运行程序

脱壳系列(二) - EZIP 壳

用 PEiD 查壳

脱壳系列(二) - EZIP 壳

EZIP 1.0

用 OD 打开

脱壳系列(二) - EZIP 壳

按 F8 往下走

脱壳系列(二) - EZIP 壳

这个看似是 OEP 的地方却不是 OEP

脱壳系列(二) - EZIP 壳

因为代码段从 00401000 开始

脱壳系列(二) - EZIP 壳

可以看到,壳伪造了 3 个区段

重新载入程序,观察 ESP 的变化

脱壳系列(二) - EZIP 壳

此时是 0012FFC4

F8 往下走

脱壳系列(二) - EZIP 壳

走到这里的时候,ESP 的值变为 0012FFC0

脱壳系列(二) - EZIP 壳

右键 -> 数据窗口中跟随

脱壳系列(二) - EZIP 壳

选择 -> 右键 -> 断点 -> 硬件访问 -> Word

脱壳系列(二) - EZIP 壳

下一个硬件断点

按 F9 运行

脱壳系列(二) - EZIP 壳

程序停在了该处,ESP 的地址为 0012FFC4

按 F8 往下走

脱壳系列(二) - EZIP 壳

来到了程序的 OEP 处

菜单栏 -> 调试 -> 硬件断点

脱壳系列(二) - EZIP 壳

删除该硬件断点

脱壳系列(二) - EZIP 壳

右键 -> Dump debugged process

脱壳系列(二) - EZIP 壳

点击 Dump 保存程序

保存完之后用 LordPE 载入程序

脱壳系列(二) - EZIP 壳

该程序的基址为 400000,代码基址为 65000,数据基址为 6A000

脱壳系列(二) - EZIP 壳

也说现在程序的代码段和数据段还是指向的是壳伪造的区域

先点击“区段”

脱壳系列(二) - EZIP 壳

选择相应的区段,右键 -> 清除区段,删除壳伪造的区段

脱壳系列(二) - EZIP 壳

然后修改相应的地址

脱壳系列(二) - EZIP 壳

点击“保存”,再点击“确定”

脱壳系列(二) - EZIP 壳

然后点击“重建 PE”

 

相关文章:

  • 2021-11-05
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2021-10-06
  • 2022-12-23
  • 2021-04-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-29
  • 2021-04-12
  • 2022-12-23
  • 2022-12-23
  • 2021-08-20
相关资源
相似解决方案