文章继:https://www.cnblogs.com/zpchcbd/p/12111567.html

发现转储之后,然后修复IAT发现依然是打不开的,原因是壳有反脱壳的检测

学习:脱壳之Anti Dump和修复PE

把修复完IAT的程序继续载入,F8跟随,发现JMP的区段已经不存在了

学习:脱壳之Anti Dump和修复PE

学习:脱壳之Anti Dump和修复PE

我们再看下原程序的AC区段,发现是存在的,所以我们需要把这个原程序中的AC区段拷贝一份,在脱壳后的程序中进行填充

学习:脱壳之Anti Dump和修复PE

学习:脱壳之Anti Dump和修复PE

然后填充到脱壳后的程序中

学习:脱壳之Anti Dump和修复PE

因为是直接把原程序的AC片段直接拷贝的,所以还需要修改下虚拟的偏移地址

默认情况下,EXE文件的基址为0x00400000,DLL文件的基址为0x10000000。

虚拟内存地址(VA):PE文件中的指令被装入内存后的地址,OllyDbg动态反汇编产生。
相对虚拟地址(RVA):内存地址相对与映射基址的偏移量。
VA = Image Base + RVA。

该程序的EXE文件的基址也是00400000,所以我们需要计算下它的相对虚拟地址,那么就是AC0000-400000,结果就是6C0000

学习:脱壳之Anti Dump和修复PE

最后还需要重新构建PE头,自己不太懂,以后懂得话再加上!

学习:脱壳之Anti Dump和修复PE

重新打开,打开成功!
学习:脱壳之Anti Dump和修复PE

相关文章:

  • 2021-12-08
  • 2021-11-05
  • 2022-12-23
  • 2022-01-18
  • 2022-01-05
  • 2021-09-22
  • 2022-01-02
  • 2022-12-23
猜你喜欢
  • 2021-07-23
  • 2021-08-30
  • 2021-12-17
  • 2022-12-23
  • 2021-08-12
  • 2021-08-04
  • 2021-07-22
相关资源
相似解决方案