在恶意样本初筛、供应链组件审计和应急响应场景中,分析人员需要在不运行目标程序的前提下,判断一个 Windows 可执行文件是否可疑。商业加壳检测与静态分析工具价格高、部署重,而多数团队真正需要的只是一个可离线运行、能接入自有流水线的轻量体检能力。本项目面向安全分析与运维人员,解决样本快速分类和第三方二进制准入判断的问题。
点击空白处退出提示
在恶意样本初筛、供应链组件审计和应急响应场景中,分析人员需要在不运行目标程序的前提下,判断一个 Windows 可执行文件是否可疑。商业加壳检测与静态分析工具价格高、部署重,而多数团队真正需要的只是一个可离线运行、能接入自有流水线的轻量体检能力。本项目面向安全分析与运维人员,解决样本快速分类和第三方二进制准入判断的问题。
工具由五个模块组成:
一、PE 结构解析模块。逐层解析 DOS 头、NT 头、可选头(同时兼容 PE32 与 PE32+)、节表、导入表、导出表与 TLS 回调,并自行完成 RVA 到文件偏移的节内映射。
二、节区熵分析模块。对每个节的原始字节计算 Shannon 熵,识别压缩与加密节,同时匹配 UPX、ASPack、Themida、VMProtect 等已知壳的节名特征。
三、行为组合判定模块。以 API 调用组合而非单点匹配来推断意图,覆盖进程注入、反调试、持久化、权限提升、网络通信与加密六类行为,显著降低单个常见 API 带来的误报。
四、异常结构检测模块。识别缺失导入表、可写可执行节、异常编译时间与 TLS 回调等加壳对抗特征。
五、批量扫描与报告模块。支持目录批量分析,输出带评分与明细的 Markdown 报告及 JSON 结构化结果,可直接对接后续样本处理流程。
我独立完成需求分析、架构设计与全部编码。
核心技术难点在于不依赖 pefile 等第三方库手写 PE 解析:需要同时兼容 PE32 与 PE32+ 两种可选头布局,自行实现 RVA 到文件偏移的节区间映射,处理导入表 thunk 在 32 位与 64 位下的不同编码,并通过间接引用还原 TLS 回调地址。
实现上把每个检测维度抽象为独立规则对象,用加权评分模型聚合结果,新增规则不影响既有判定;同时对全部解析路径做了边界保护,保证畸形样本不会导致崩溃。整个工具仅使用 Python 标准库,可在完全离线的环境中运行。



评论