操作系统:windows XP sp2
软件:PEiD、Strings、VirSCAN.org、Free UPX V1.7
(1)利用网络扫描工具对目标程序进行扫描
(2)利用本地静态分析工具分析目标程序
(3)利用自动化脱壳工具进行脱壳
将文件上传到virscan.org进行扫描;

从结果可以看到31个引擎报毒,说明该程序非常危险。
将待测文件放入PEiD中,可以看到PEiD显示文件加壳了,使用UPX进行加壳。

另外,从区段表也可以看出文件是UPX加壳:

既然已经知道文件是通过UPX进行加壳,所以使用freeUPX进行脱壳操作。

脱完壳生成的程序会将源程序覆盖掉,因此,将脱完壳后的文件放入PEiD中检测脱壳效果:

可以看到,UPX壳已经被脱掉。
最好使用dependency walker,这里使用PEiD对导入函数进行查看:
查看"子系统";

查看"输入表":

可以看到,其导入了四个动态链接库:

在kernel32中,需要注意的API函数:createthread():创建线程、createMutexA():创建互斥、openMutexA():打开互斥。
在advapi32.dll中,恶意程序一般通过创建服务的方式来使自己运行。
在wininet.dll中,可以查看到程序调用了两个其中的API函数:internetOpenUrlA、InternetOpenA.
进行这一步的目的是:如果一个主机感染了该恶意代码,主机会出现哪些网络层面的特征和主机层面的特征。
此处用的是脱壳后的程序。

应当注意:
(1)可打印字符中出现了一个网址,再结合出现了我们在导入表中看到的两个API函数,可以猜测到,恶意代码可能是想连接到该网址。
(2)需要注意到MalService,因为恶意程序会创建一个服务,因此,这个创建的服务名称很有可能就是MalService。