x86rc/unthemidator

安全

不运行目标程序,静态解包 Themida、Code Virtualizer 与 WinLicense 保护的 Windows 二进制并重建可运行的 PE。

150
26
C++
创建于 2 天前

如果你要分析被 Themida、WinLicense 或 Code Virtualizer 包裹的 Windows 二进制,这个项目值得看一眼;但请把它当作研究工具,而不是一条龙解决方案:它能重建出可运行的 PE,也能识别 VM 版本,虚拟化代码的还原仍要自己做。

解决什么问题

拿到一个加壳样本后,常见做法是在调试器里跟着启动检查一路走到真正的入口点,再转储内存;过程慢,而且入口点被虚拟化时常常卡在 VM 层前面。Unthemidator 改为直接读取文件,处理保护壳的启动与运行时初始化阶段,期间不执行目标程序,之后做完整的 PE 重建并写出结果。使用者拿到的是解析后的二进制、导入信息和 VM 入口点位置,不必先拉起一个活进程。

有什么不同

README 明确说明它不会运行目标二进制,也不会在宿主机上调用目标使用的 API 或系统调用,支持 DLL、EXE、SYS 及其他 Windows 二进制,覆盖 32 位与 64 位版本 项目说明。除转储外,它还会解密导入、恢复 IAT、解包资源、解压虚拟机,并定位所有 Themida/Code Virtualizer 入口点,把导入和 VM 信息写成 JSON。这让它比通用转储器多走一步:产出的是可以继续喂给分析流程的结构化结果,而不是一块裸内存镜像。

取舍也写在限制里:它不会做虚拟化还原、去混淆或其他反混淆处理 项目说明。如果你要的是 VM 保护函数的可读逻辑,解包只是第一步,不是答案。内核驱动只有扩展名为 .sys 时才会被识别为驱动,其他扩展名的文件默认按用户态程序解析。另外还有一个 loader 选项,当 OEP 被虚拟化或存在逐宏安全检查时,跳过它可能让二进制无法运行,所以默认值值得留意。

谁值得试

适合:已经在处理加壳 Windows 样本的逆向工程师和恶意软件分析师,希望更快拿到转储和导入表,并打算在自己的工具链里继续分析。作者关于 Themida 的 FALCON 与 LION 虚拟机的文章可以作为后续工作的背景 FALCON VM 文章 LION VM 文章。

不适合:期待一步完成去混淆的人,以及需要在同一台 Unix 机器上直接运行解包结果的分析者。项目提供 Unix 支持,但依赖自定义模块或缺失系统模块的二进制需要先把这些文件放进 modules 目录。Code Virtualizer v4 的支持被标注为实验性,也应按实验性对待,而不是当作稳定目标。

使用条件与边界

预编译版本列出的是 Windows x64 和 macOS Apple Silicon 发布页,没有列出 Linux 二进制,其他 Unix 平台的使用者需要自行从源码构建。样本依赖自定义模块时,必须在解包前把这些模块准备好,这一步容易遗漏。文档给出的保护版本范围是 Themida 与 WinLicense 3.0 到 3.2.6.0、以及同范围的 Code Virtualizer 压缩 VM,v4 标注为实验性,更新的保护不在声明范围内。项目没有声明许可证,如果你打算再分发或集成而不只是私下使用,这是一个实际障碍。

HotRepo 点评

HotRepo 从 2026-10-24 开始记录这个项目,2026-10-25 在 cpp 新项目榜上以 150 总星数排第 9;这是新项目榜,不是总榜 Trending,而且只覆盖一个记录日期。项目才两天、只有一次快照,还无法判断热度能否持续。投入时间之前,先确认你要处理的二进制是否落在文档声明的保护版本范围内,以及缺失的许可证条款是否适合你的用途。

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。