视频笔记-吾爱破解ximo脱壳视频1~10

总结归纳一下脱壳的几种方法:

1、单步跟踪法:
即F8一直运行下去,直到找到OEP
向下的跳转可以进行,向上的跳转不能进行

2、ESP定律法:
利用堆栈平衡原理,找到OEP
适用于:大部分的壳。例如:UPX壳、ASPACK、NSPACK、FSG、PECompact、EZIP、EXE32PACK等

3、一步直达法:
利用pushad和popad、pushfd和popfd是成对存在的,直接ctrl+F搜索popad或popfd即可
适用于:大部分的UPX和ASPACK

4、两次内存镜像法:
1)打开ctrl+M打开内存窗口,首先在资源段下断,运行
2)然后在代码段下断,运行,则直接跳转到OEP附近
例如:(ASPACK壳)
1)OD载入
这里写图片描述
2)点击m,在资源段下断,运行
这里写图片描述
这里写图片描述
3)在代码段下断,运行
这里写图片描述
这里写图片描述
4)F8跟踪,找到OEP
这里写图片描述

5、模拟跟踪法:
1)直接在命令窗口输入tc eip<,其中xxxx是在m窗口中查看的SPX的起始位置
2)在选项->调试设置->SFX->块方式跟踪,重新载入程序即可
这里写图片描述

6、最后一次异常法:
首先在选项->调试设置->调试中,进行如下设置:
这里写图片描述
之后,Shift+F9运行,在程序运行的倒数第二次停住,观察右下角的堆栈窗口,在SE句柄指针处下断,Shift+F9运行,取消断点,单步运行(此处有时候需要技巧)
例如:(PECompact壳)
程序Shift+F9两次后出现窗口,因此在第一次时停住
这里写图片描述
这里写图片描述
下断点
这里写图片描述
运行,单步跟(由于此程序单步跟的话会导致程序直接运行了,但是如果Shift+F9运行到这个retn下面,就到达OEP了。具体原因未知)
这里写图片描述
找到OEP
这里写图片描述

7、其他特殊的方法:
在手脱PECompact壳时,用到了这几种方法
1)bp VirtualFree
按下Enter之后,Shift+F9运行,取消断点,Alt+F9回到用户代码,再单步跟
2)bp VirtualAlloc
按下Enter之后,Shift+F9运行,取消断点,Alt+F9回到用户代码,再单步跟,直接到OEP
3) at GetVersion(VC++程序,获得版本号,也适用于北斗3.0之前的壳)
按下Enter之后,在retn处下断,并运行到此处,取消断点,单步跟,上拉即可找到OEP

8、小技巧
1)对于FSG壳,脱壳之后需要修复IAT
2)如果用LordPE和Import修复后仍不能运行,可考虑用LordPE**重建PE**
3)如果有个跳转未实现,想让其实现,可用条件跳转

猜你喜欢

转载自blog.csdn.net/qq_15727809/article/details/79778436
今日推荐