实验环境
实验设备环境:windows xp
实验工具:PEID,IDAPro
实验过程
首先可以使用PEID来静态分析导入表:
上图可以发现此dll函数会调用一些有关于服务的API函数,说明此程序很有可能会创建一些服务,其中的OpenSCManagerA
API函数的作用是创建一个到指定服务控制管理器的连接,并且开启这个管理器数据库。保证将服务加入到数据库中。
winnet.dll文件调用了两个有关于网络的API函数,第一个是访问网络连接的URL,第二个是初始化一个到互联网的连接。
下面进行IDA分析:
我们可以发现主函数中调用了系统函数,此函数的目的是开启指定的服务控制分配单元。其中的sub_401040
函数被调用了两次,进入此函数:
此函数调用了openmutex函数,此函数会打开一个互斥来那个,如果此互斥量存在,那么直接退出(exitprocess),否则进入下一个模块下一个模块会和创建一个新的互斥量,之后调用了OpenSCManagerA
函数,确保可以使服务正常运行,接下来调用GetCurrentProcess
获取当前正在运行进程的句柄。GetModuleFileNameA
用于获取当前运行程序的完整路径。之后这个路径就会被CreateServiceA
函创建一个新的服务(MalService)。
接下来会调用时间相关函数U确定函数下一次执行的时间。在接下来一旦到达这个时间就会调用createThread
创建线程:
我们可以发现其通过判断esi寄存器中的值来跳出循环,而esi的值转化为十进制就是20,也就是说会创建20个进城。可以查看创建线程的开始位置如下:
我们可以发现此函数会无线循环的访问一个网址。
那么现在就很容易的发现此程序是一个DDOS攻击进程。