-
-
[讨论]全面反汇编与局部反汇编对于壳的作用
-
发表于:
2008-1-26 15:50
4579
-
全面反汇编与局部反汇编对于壳的作用
一般来说在分析壳的时候做全面反汇编是不现实的,从头到尾的分析壳固然是最清楚的,但是它也是最费时的,在没有足够的反汇编能力(包括反汇编速度与质量)之前,想去全面的分析一个壳无疑是天方夜谭。既然这样,我们为什么不能对壳做局部反汇编而达到我们要分析的目的?而为什么要对壳做全面的分析呢?这里面存在着这样一个问题,就是只有在调试器可以正常的调试下我们在才能局部的分析程序。
我们通过调试器下各种断点可以试着找出,程序中重要的代码位置。比如OEP、IAT、VM等等这些关键处的代码位置。锁定了这些关键代码的范围,分析之后就可以找到我们所要找的东西了。
而对于那些猛壳而言,这一切就变的困难重重了。因为壳的检测(anti dbg)我们不能在轻易的下断点和正常调试程序,在这种情况下我们只能选择静态的反汇编来分析程序。在不能调试的程序的情况下,也意味着我们无法定关键的壳代码。这使得我们只能由零开始,用静态反汇编器,从壳的入口处来分析代码,为了跳过那些壳的检测有时候要以静态脱壳,的方式来脱壳。也就是找出那些被压缩数据和代码的解压代码,把他译成IDC脚本文件然后用这个脚本实现对被压缩数据和代码的解压。为了找出那些解压代码,唯一的办法也就是全面分析了。
还有一种对壳全面分析的原因,就是我们为了深入的学习壳的原理和技术,从而更好的脱壳和写壳。这似乎是每一个高手必备的基本功。Loveboom、window、simonzh2000、hnhuqiong等高手都曾经做过这方面的工作,在我等眼中一坨坨杂乱无章的代码被高手调教的井然有序,一层层道出壳中的秘密,无疑是让人拍手叫好的事情。在高手的共享文档之中才彻底展示出全面反汇编壳威力。
虽然anti dbg的手段在不断增加,但调试器隐藏插件的功能也在不断的加强,所以在很多情况下,我们还是可以使用高手们编制的调试器插件,借助其强大的功能来完成对调试器的隐藏,以此来对壳的关键代码进行定位。用局部反汇编的方式来实现我们对壳的分析。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课