文章继: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头,自己不太懂,以后懂得话再加上!
重新打开,打开成功!
原文地址:https://www.cnblogs.com/zpchcbd/p/12114509.html
时间: 2024-11-10 16:02:31