二、换了马甲照样认识你——检测加壳方式
对于一个不是自己加壳的软件,如何才能知道其加壳的方式是什么呢?这直接关系到如何进行脱壳。我们可以使用大名鼎鼎的Language 2000进行加壳的侦测。
相关下载:language2000侦壳工具 V4.51 绿色版
http://download.it168.com/08/0802/83178/83178_3.shtml
方法如下:下载Language 2000并运行它,单击“Open”按钮,找到加壳的程序并添加进来。Language 2000会自动对导入的程序进行分析,分析完成后得到的信息如图所示。

图6 加壳信息一目了然
可以看到,Language 2000列出了程序的编写语言、加壳方式,以及各种相关的信息。
三、原形毕露——自动脱壳机脱壳实战
与加壳相反的过程称之为“脱壳”,目的是把加壳后的程序恢复成毫无包装的可执行代码,这样未授权都便可以对其进行修改。“脱壳”的过程与“加壳”的操作相似,但是对于不同是的“加壳”软件,需要使用不同的“脱壳”软件。入侵者只要知道目标程序使用的是哪种“加壳”软件进行加壳的,然后,再用对应的“脱壳”软件进行脱壳即可。简单地来说,加壳与脱壳就相当于加密和解密的关系。具体过程如下:
(1)超级巡警之虚拟机自动脱壳机;下载地址如下:http://download.it168.com/08/0803/60429/60429_3.shtml
(2)安装后,运行脱壳程序。在将加壳后的服务器端程序添加进来后,单击“给我脱”按钮,很快将识别出加壳方式以及是否可以脱壳,脱壳后的保存路径。如图所示。

图7 轻松进行脱壳
如果程序并没有被加壳,则呈灰色显示。

图8 程序没有加壳
甚至,有些加了壳的恶意程序,很多杀毒软件根本就检测不出来。这也是加壳与不加壳的重要区别。对于入侵来说,能否被对方的杀毒软件检测出来,将意味着是否能够入侵成功;而对于我们防范来说,如何识别出是否被加壳显得非常重要。该软件完全基于虚拟机技术,对各种已知未知壳进行脱壳处理,适合病毒分析中对加壳的木马样本进行脱壳处理。由于所有代码均运行在虚拟机中,不会对系统造成任何危害。怎么样,有了以上的几样法宝,即使木马穿了马甲,我们也能把它打回“原形”了!