环境:VMware WindowsXP;OD;IDA 6.8(32bit);熊猫烧香样本
先来看看大名鼎鼎的熊猫烧香长什么样子[fig:Panda1_PNG]
{width=”80.00000%”}
先保存下虚拟机环境,创建一个快照。
然后拖入IDA中看看。
{width=”80.00000%”}
觉得应该是有壳。放入PEiD中扫扫,果然。
{width=”80.00000%”}
是一个压缩变形壳FSG 2.0 ->
bart/xt。查了下,不是很强的壳,试试手动脱壳。
脱FSG 2.0 -> bart/xt
拖入OD,显示入口点警告
{width=”80.00000%”}
查了下,可用ESP定律法脱壳。
这里先用脱壳软件UnFSG 2.0脱壳。
初步分析
把脱好壳的程序拖入IDA,也同时用OD载入,这样可达到事半功倍的效果。
{width=”80.00000%”}
{width=”80.00000%”}
这段代码是程序的校验分析,其中包含了作者以及为作者提供帮助的相关人员的信息。验证成功后,会进入病毒启动部分,根据上图可知在标号loc_40D5FD。
{width=”80.00000%”}
这段代码再次验证程序是否为病毒程序,若通过验证,则启动病毒程序,通过三个函数(这三个函数名是手动重命名的):CreateAndRunPanda;InfectOtherFile、VirusProtect这三个函数完成病毒的运行、感染以及病毒自身的保护,可以说是该病毒的主要功能模块。
分析CreateAndRunPanda
{width=”80.00000%”}
{width=”80.00000%”}
上述代码主要获取当前路径,并将“Desktop_.ini”拼接到当前路径中,同时检查此文件是否存在,如果文件存在,则将其删除。之后将病毒文件信息读取到内存,接着进行了标记检查工作,以判断病毒程序是否被多次运行,同时设置相关的标记信息。
{width=”80.00000%”}
{width=”80.00000%”}
上述代码的目的只有一个:找到进程中运行的“spcolsv.exe”并将其终止,在系统目录中删除“spcolsv.exe”,将病毒自身伪造成“spcolsv.exe”并启动,这是病毒第一次运行时需要执行的。
运行测试
{width=”80.00000%”}
运行后因为各种原因,反正没有感染其他文件。这里暂且放下,毕竟年代久远,变数太多。
InInfectOtherFile
这里我们继续分析InfectOtherFile函数。
{width=”80.00000%”}
如图[fig:Panda13_PNG],此病毒通过3种方式进行感染,前两种是在本地进行病毒的感染,第三种则需要网络的支持。