概述:
病毒伪装成一个DLL文件,QQ游戏启动的同时,病毒DLL也会被加载启动。病毒加载之后,会在内存中释放出远控模块,通过建立本地端口映射的方式,意图绕过某些安软的网络拦截,从而控制目标计算机。
病毒目录文件如下:
整体流程如下:
详细分析:
1、启动方式:
首先,病毒编辑将关键文件全部隐藏打包了起来,只留了了一个快捷方式,通过调用CMD的方式,打开目录下的QQ游戏大厅程序:
而QQ游戏大厅程序在启动的过程中,会去加载一个名为:factory.dll的文件,由于Windows本身所设定的DLL加载顺序,目录下的这个factory.dll文件将会被QQ游戏大厅所加载:
2、factory.dll
将原版factory.dll和这个病毒的factory.dll进行比较,发现后者多了一些额外的导出函数,仔细观察甚至还会发现,后者有两个导出函数的地址竟然相同,通常一个正常的DLL文件不会这样:
在factory.dll的导出函数中,被调用的是CreateFactorys函数,这个函数的主要作用是实行病毒的初始化安装操作:
在病毒的初始化安装操作中,会先获取加载当前DLL的模块的路径,然后检查此路径下是否存在io.dat文件(被加密的DLL文件),若不存在则直接退出,猜测是用这种方法来反自动化检测程序,防止被发现。若文件存在,则读取到内存中,然后进行解密操作,解密出来发现是另一个恶意DLL文件(远控的核心部分):
此处所使用的解密算法,通过对比LZMA的压缩算法库(右边是LZMA压缩库的源代码),可以看出,编辑采用的其实就是LZMA压缩库:
解密io.dat文件到内存,并且完成校验(检查是否有正常的PE结构)后,将会被加载实行:
程序运行后,会去获取这个新DLL的导出函数地址,并且通过判断当前加载模块的名称是否含有crossfire.exe字样,来实行不同的功能(因为病毒成功加载一次之后,会将文件名改成crossfire.exe,所以从文件名就能够判断是否是首次加载):
3、解密出来的新DLL
这个新DLL拥有2个导出函数QtxVGA和Update,从前面的分析大家可以得知:Update函数用于首次加载实行,而QtxVGA函数用于非首次加载实行。
(1).Update导出函数
在Update函数中,病毒会首先检测是否存在360的进程,若存在,则直接退出。接着,通过检查互斥体(c91fbfd3142a697886)的存在,来判断系统是否已经被感染,以确定是否是否继续实行,若未感染,则继续实行。
接着,将同目录下的文件全部复制到C:\Users\Administrator\AppData\Roaming\MenuStar,并将加载模块的重命名为crossfire.exe:
为了不让双击快捷方式的人产生怀疑,病毒还会释放打开一张准备好的图片,让人放松警惕,图片被加密保存在了temp,dat文件中,解密后调用命令行打开图片:
图片打开之后,病毒会以无窗口的形式运行crossfire.exe,并且在在C盘下创建kwoyou.ini文件,来保存记录病毒运行的日志: