学习:脱壳之Anti Dump

Posted zpchcbd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习:脱壳之Anti Dump相关的知识,希望对你有一定的参考价值。

文章继: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,所以我们需要计算下它的相对虚拟地址,那么就是400000-AC0000,结果就是6C0000

技术图片

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

技术图片

重新打开,打开成功!
技术图片

以上是关于学习:脱壳之Anti Dump的主要内容,如果未能解决你的问题,请参考以下文章

学习:脱壳之内存执行寻找OEP

学习:脱壳之异常法寻找OEP

学习:脱壳之VB程序快速寻找OEP

逆向工程之App脱壳

iOS逆向工程之给App脱壳

内存Dump出PE