发布于2022年11月8日3年前 20145120《计算机病毒》高级静态分析 1 PSLIST导出函数做了什么? 从EXPORT窗口双击查看PSLIST函数 发现其调用如下图函数,上面一个判断当前的平台(与WIN32比较),操作系统版本(与VISTA比较) 调用API(CreateToolhelp32Snapshot)获取进程列表,配合其他API达到发送进程列表到远端或寻找某个特定进程的目的 2 使用图模式绘制出sub_10004E79的交叉引用图。 当进入该函数时,哪个API可能被调用? 上图中粉色的API都有可能被调用,例如获取系统语言GetSystemDefaultLangID,输出sprintf,字符串长度strlen等等 仅仅基于这些API函数,可以如何重命名该函数? 显然该函数用于获取系统语言,重命名如图 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,不过当时都没有直接用数字都是用宏常量名字的。 5 搜索in指令(0xED)的使用。 search>sequence of byte(或者直接点工具栏下标101的小望远镜也可以)查找ED,记得勾选查找所有 在众多结果中找到in,双击查看 该指令与一个魔术字符串VMXh用来进行VMware检测,这在这个恶意代码中被使用了吗? 在0x100061DC位置的字符串就是要找的,右键点击可以让它从ASCII码转换为字符串VMXh,然后,显然被使用了 使用对执行in指令函数的交叉引用,能发现进一步检测VMware的证据吗? 在这段代码的头部可以看到这个函数是sub_1006196,Ctrl+x查看它交叉引用 第一个里就找到了(红框框起来的) 参考资料 IDA Pro可以让恶意程序无所遁形
创建帐户或登录后发表意见