随便谷歌了一个样本来,md5:55a7aa5f0e52ba4d78c145811c830107
恶意代码在__crtExitProcess
中调用
用GetModuleHandleW(0)
拿到本模块的加载基址,然后通过偏移调用IAT中的VirtualAlloc
这里IDA的Hexrays不知道为什么值优化错了,对着0x4709f找了半天都没找到东西,看了一下汇编才发现是0x11c27c
接着同样的方法取了偏移0x16ec78的值,然后这次IDA找不到这个地址
于是去找了PE文件解析器来看段映射,发现RVA16E0000是.rsrc段
于是算了一下文件偏移通过脚本取值
用脚本解密并放到idb内解析即可
先是16个字节,然后第二个int,即9-12字节表示长度,再读取0x5600并解密一次
from ida_bytes import patch_bytes
#s = "592929864B7E59A9263B457E6F5E21C0".decode("hex")
f = open("Setup.bin","rb")
data = f.read