转载

病毒木马查杀第005篇:熊猫烧香之逆向分析(上)

一、前言

对病毒进行逆向分析,可以彻底弄清楚病毒的行为,从而采取更有效的针对手段。为了节省篇幅,在这里我不打算将“熊猫烧香”进行彻底的分析,只会讲解一些比较重要的部分,大家只要掌握了这些思想,那么就可以处理很多的恶意程序了。一般来说,对病毒的静态分析,我们采用的工具是IDA Pro,动态分析则采用OllyDbg。由于后者会使病毒实际运行起来,所以为了安全起见,最好在虚拟机中操作。另外,在实际分析过程中,我们可能还需要一些辅助工具,比如侦壳或脱壳程序等。为了简单起见,这次研究的“熊猫烧香”程序并没有加壳,但是以后我们会讨论如何应对加壳或采用了其它保护手段的病毒。

病毒木马查杀第005篇:熊猫烧香之逆向分析(上) 二、查壳操作

逆向分析的第一步就是用查壳工具对目标程序进行查壳操作。这里我使用PEiD v0.95,检测结果如下:

病毒木马查杀第005篇:熊猫烧香之逆向分析(上)

图1 对“熊猫烧香”进行查壳操作

可见,本程序并没有加壳,那么就不涉及脱壳操作,并且是由Borland Delphi 6.0-7.0编写的。由Delphi所编写的代码与VC++所编写的代码有所不同,最明显的两点区别如下:

1、函数调用时参数的传递不完全用栈,而是主要用寄存器,即Delphi编译器默认以register方式传递函数参数。这一点与VC编译的程序完全不同。Delphi一般将第一个参数放入eax寄存器,第二个参数放入edx,第三个参数放入ecx寄存器,其余参数按照与VC程序类似的方式压栈。

2、栈上给局部变量分配空间的时候,栈是向下增长的,而栈上的数组、字符串、结构体等却是向上增长的。理解这一点可以帮助识别栈上的变量。

对病毒样本进行了简单的侦测之后,就确定了分析的方向,那么接下来就需要使用反汇编工具进行分析了。

病毒木马查杀第005篇:熊猫烧香之逆向分析(上) 三、“熊猫烧香”的初步分析

这里我使用IDA Pro载入病毒样本,首先可以看到如下代码:

病毒木马查杀第005篇:熊猫烧香之逆向分析(上)

[1]  [2] [3] [4]  下一页

正文到此结束
Loading...