首页
社区
课程
招聘
[分享]python的pefile模块get_imphash方法计算出的导入表hash与vt的导入表hash不匹配问题
发表于: 2025-8-14 15:23 146

[分享]python的pefile模块get_imphash方法计算出的导入表hash与vt的导入表hash不匹配问题

2025-8-14 15:23
146

发现问题:同一个样本 python3 和 vt 算出的imphash不一样 

样本md5:41320c9622ab1f768ce1786c191f7699

vt imphash:161c85364c462057ba28801ac1ad5404

python3 imphash:a6b79195015e1e45d816e61ee943224b

python3 使用的pefile 版本为2024.08.26

输出计算的imports_str

尝试使用python2  pefile版本为2019.4.18,可以获得vt的imphash


发现第三个函数不同导致的hash不同,查看该导入dll的导出函数到底谁是正确的


可以看到是引用的wsock32.dll 的第12个导出函数是ioctlsocket,即python3是正确的。即python2错误,vt错误

用ida打开样本也再次证明python3解析的是正确的

查看yara是否正确

可以看到yara也是错误的。

结论:


在威胁情报和样本匹配领域:YARA 和 VT 的 ImpHash(即使背后是 Python 2 的“不完美”解析逻辑)是行业标准,应该优先使用;


在技术研究和准确分析场景下:Python 3 的 pefile(或手动验证)可能更准确地反映了真实的导入函数名(比如 wsock32.dll  ord:12 就是 ioctlsocket)。








[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回