第七课 两款压缩壳的深度学习

 

                             第七课 两款压缩壳的深度学习

 

                                     

    今天要讲的是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。

 

posted @ 2012-08-28 21:52  eldn  阅读(271)  评论(0)    收藏  举报