20145120黄玄曦《计算机病毒》高级静态分析

20145120黄玄曦《计算机病毒》高级静态分析

1

PSLIST导出函数做了什么?

从EXPORT窗口双击查看PSLIST函数
20145120黄玄曦《计算机病毒》高级静态分析_第1张图片


发现其调用如下图函数,上面一个判断当前的平台(与WIN32比较),操作系统版本(与VISTA比较)
20145120黄玄曦《计算机病毒》高级静态分析_第2张图片


调用API(CreateToolhelp32Snapshot)获取进程列表,配合其他API达到发送进程列表到远端或寻找某个特定进程的目的

2

使用图模式绘制出sub_10004E79的交叉引用图。

20145120黄玄曦《计算机病毒》高级静态分析_第3张图片

当进入该函数时,哪个API可能被调用?

上图中粉色的API都有可能被调用,例如获取系统语言GetSystemDefaultLangID,输出sprintf,字符串长度strlen等等

仅仅基于这些API函数,可以如何重命名该函数?

显然该函数用于获取系统语言,重命名如图
20145120黄玄曦《计算机病毒》高级静态分析_第4张图片

3

DLLMAIN直接调用了多少个WINDOWS API?

类似上题,用图模式绘制以下DLLMAIN,recursion depth设为2,数下粉色的,有33个(看得有点眼花不知道数错没有)

DLLMAIN调用图太复杂不放了

多少个深度为2时被调用?

2级调用的有16个

4

尝试使用MSDN页面重点命名符号常量,使得0x10001701处对socket调用的参数更有意义

原来的参数是2(AF_INET表示IPv4),1(SOCK_STREAM表示面向TCP的Socket),6(IPPORTO_TCP表示TCP协议),还好《网络安全编程基础》学过WIN SOCK,不过当时都没有直接用数字都是用宏常量名字的。
20145120黄玄曦《计算机病毒》高级静态分析_第5张图片

5

搜索in指令(0xED)的使用。

search>sequence of byte(或者直接点工具栏下标101的小望远镜也可以)查找ED,记得勾选查找所有
20145120黄玄曦《计算机病毒》高级静态分析_第6张图片


在众多结果中找到in,双击查看
20145120黄玄曦《计算机病毒》高级静态分析_第7张图片


该指令与一个魔术字符串VMXh用来进行VMware检测,这在这个恶意代码中被使用了吗?

在0x100061DC位置的字符串就是要找的,右键点击可以让它从ASCII码转换为字符串VMXh,然后,显然被使用了
20145120黄玄曦《计算机病毒》高级静态分析_第8张图片

使用对执行in指令函数的交叉引用,能发现进一步检测VMware的证据吗?

在这段代码的头部可以看到这个函数是sub_1006196,Ctrl+x查看它交叉引用
20145120黄玄曦《计算机病毒》高级静态分析_第9张图片

第一个里就找到了(红框框起来的)
20145120黄玄曦《计算机病毒》高级静态分析_第10张图片

参考资料

IDA Pro可以让恶意程序无所遁形

你可能感兴趣的:(20145120黄玄曦《计算机病毒》高级静态分析)