1、堆栈原理寻找OEP进行脱壳,第一次esp改变,数据窗口跟随,下硬件访问端点,F9断下地方多为jmp eax,eax即为OEP;
2、MEW之类的压缩壳,F8运行jmp XXXX,向下寻找ret下断点,F8运行至push ebp,即为OEP;
3、Alt+M,对代码段(401000)下断点;
4、FSG压缩壳,xchg典型入口点;
5、FSG压缩壳,单步F8,向下跳不向上跳,寻找OEP;
6、FSG压缩壳,调试设置(SFX) -> 字节方式跟踪真正入口处 -> Ctrl+F2 -> 调试设置(SFX) -> 停在自解压器的入口处;
2、MEW之类的压缩壳,F8运行jmp XXXX,向下寻找ret下断点,F8运行至push ebp,即为OEP;
3、Alt+M,对代码段(401000)下断点;
4、FSG压缩壳,xchg典型入口点;
5、FSG压缩壳,单步F8,向下跳不向上跳,寻找OEP;
6、FSG压缩壳,调试设置(SFX) -> 字节方式跟踪真正入口处 -> Ctrl+F2 -> 调试设置(SFX) -> 停在自解压器的入口处;
7、UPX压缩壳、WinUpack压缩壳,堆栈平衡原理寻找OEP;
8、对.text区块下断。外壳会先解压代码,所以直接在.text区块设断会导致不停的断下,因此需要在代码全部解压完毕后对.text区块设断。因为外壳一般依次对text、rdata、data、rsrc区块进行解压,所以可以通过先对text后面的区块设断,断下后再对text区块设断来实现寻找OEP;