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

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

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

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

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

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

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

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

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

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

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

重新打开,打开成功!

原文地址:https://www.cnblogs.com/zpchcbd/p/12114509.html