DLL.dll 分析报告
0x00 样本信息
病毒名称:DLL.dll
MD5 值:9810a578f60f8ff2e376769adac9ef38
SHA1:c605455357fe22654a7b974a2a7d301a1b0d064e
SHA256:57e486fe50782e9fdfe73974baa88b553ba58eb5f99ef7386817a3d2e27430f5
这是小编准备的C++学习资料,加小编C/C++学习群:825414254,加群即可获取哦!
0x01 行为分析
在分析的过程中,发现代码中使用了大量的 ECX 寄存器(thiscall调用约定使用ECX寄存器传递this指针),并且在给ECX寄存器赋值之后马上调用了函数,所以我断定这应该是一个使用C++编写的样本。下面我将开始正式的分析。
我们查看其导出表,发现只导出了一个函数Run911(),所以,我们从这个函数入手分析这个样本。
当有程序加载这个动态库时,首先会给将DLL模块句柄保存到全局变量中。
Run911()函数,首先创建了一个线程。
1、线程中初始化一个与通信有关的类CCommunicate:
2、调用CCommunicate类的成员函数ConnectServer连接到服务器:
3、如果连接成功,创建了一个与通信有关的线程。
(1)该线程使用选择模型与服务器进程通信:
(2)如果接收到的数据长度小于等于0,则销毁当前类:
(3)否则调用CCommunicate类的DealPacket函数对接收到的数据包处理。
(4)DealPacket函数对收到的数据进行存储、解码、存储解码后的数据,解析获得真正