第七课 两款压缩壳的深度学习
第七课 两款压缩壳的深度学习
今天要讲的是FSG,今天是压缩壳最后一课了,讲完FSG会把脱压缩壳的内容回顾总结一下,所以今天会比较轻松一点点,大家在回顾总结的时候认真记下特点就可以了。
一: 实例之FSG
【1】 单步跟踪法
1.用OD载入,如果有提示是否分析代码,就点“ 不分析代码!”
2.F8单步向下跟踪调试,没有实现的向上的跳,向下的跳都可以步过,阻止实现的向上的跳。
3.遇到会跑飞的CALL我们就F7步入。
Btw:FSG1.33以一个JE跳转到OEP的,如果继续向下调试就调试不下去的,所以在JE这个条件跳转,这我们就要跟随,然后F2下断,F9运行,F2取消断点。
还有两种方法:1:把je改为jmp,然后F7步入即可
2:把D 的0改为1
【2】 模拟跟踪法
1.运行程序,确定是否有暗桩。看程序能不能跑起来,如果程序能正常跑起来说明没有暗桩(没有暗桩的就可以向下继续,否者得结合最后一次异常法先把暗桩过去)
2.打开内存镜像,找到包含有SFX,imports,relocations的区段
3.命令行下输入tc eip<区段地址。回车后会自动跟踪出OEP地址。
另外:现在很多版本的OD默认载入选择了分析其码,导致我们看不见反汇编代码,分析-->分析代码,这样就可以显示反汇编代码了。
还有fsg2.0 脱完壳后,修复时还得手动输入rva,因为其IAT是加密的,后面再解决吧(看到只有一个dll文件就应该想到是IAT加密了)。
二: 回顾总结
1.程序载入,如果有提示是否分析代码,就点“ 不分析代码!”
2.在单步跟踪法中,F4运行到所选的时候不能运行至NOP空数据中,在空数据的下一行F4。
(在NOP数据F4程序会跑飞)
3.近CALL要F7步入,否则程序要跑飞。
4.遇到程序无法向下调试,在附近找个大跳转,然后跟随—F2下断—F9运行—F2取消断点。
注:不跳的跳最可疑,就选它最好。
5.ESP定律法重点在找关键句,关键句的下一句,ESP突显为红色。
有的关键句式pushfd,有的是pushfw,但都在程序的入口位置附近。
6.ESP定律法一次F9运行不行的话可以多次F9运行,直到OEP附近再取消断点。
7.脱壳的时候必须要选重进程。
8.修复的时候也必须选重进程。
9.修复的时候如果出现无效指针,可以尝试跟踪级别1,跟踪级别3来修复或者直接CUT剪切掉无效指针。
压缩壳的回顾总结就先到这里吧。以后会遇到更多的问题。压缩壳会脱了也算脱壳基本入门了。
下节课我们将解决一些其他问题,今天讲到了FSG2.0记事本,修复了并不能正常运行,那如何处理呢?大家不要急,在我们后面有一节课程专门会根据这个问题来了解手动定位IAT。

浙公网安备 33010602011771号