工具
VTIL-Core 虚拟机翻译中间语言核心库
VTIL(Virtual-machine Translation Intermediate Language,虚拟机翻译中间语言)项目的 C++20 核心库。VTIL 是一种中间语言及优化编译器,README 称其专为二进制去混淆与去虚拟化分析而设计。与 LLVM IR 不同,VTIL 保留原生栈、物理寄存器和非 SSA 形式,因此寄存器机或栈机代码都能提升到其中,原生指令可直接嵌入 IL 流,代码也能重新输出到任意虚拟地址。该库提供包含例程、基本块和序列化的 IL、符号表达式引擎与化简器、死代码消除、传播和栈固定等优化遍,以及基于 Capstone/Keystone 的 AMD64 与 ARM64 反汇编和汇编辅助功能。
使用条件与局限
- 没有发布版本或标签;README 说明首个版本尚未完成,因此仓库仍不完整,更多文档也有待补充。所审阅的 master 提交(2026-07-27)只修改了 README,此前的代码提交日期为 2026-04-04 和 2026-04-05。本条目固定该提交仅用于引用文档。
- 使用 CMake 3.16+ 和 C++20 编译器构建:在 Windows 上生成 Visual Studio 解决方案,在 Linux 和 macOS 上使用 Ninja;Apple Silicon 上构建需加 -DCMAKE_OSX_ARCHITECTURES=x86_64。CMake 会按固定提交获取 Capstone 和 Keystone,CI 在 Windows Server 2022、Ubuntu 24.04 和 macOS 14 上构建。
- 这是用于分析虚拟化或混淆代码的库:用户需提供提升器,把待分析代码转换为 VTIL 例程,然后再进行优化、检查或重新输出。所审阅的代码树中没有针对特定虚拟机或保护器的提升器。其 Sample Routines 目录存放 2020 年的 .vtil 测试例程及对应的小型 C 测试函数,提交信息称之为 VMProtect 测试;本条目仅涵盖分析用途。
- BSD-3-Clause 许可证。所获取的依赖保留各自的许可证:Capstone 采用 BSD 风格许可证,Keystone 采用附带 FOSS 许可例外的 GPL-2.0,分发构建产物时需注意。本次未提升或优化任何例程,也未进行构建。
关于此条目
- 类型
- 工具
- 类别
- 二进制分析库
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- Docs/COMPILE.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- VTIL-Common/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- Dependencies/capstone/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- Dependencies/keystone/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- VTIL-Compiler/optimizer GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- Sample%20Routines GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- .github/workflows/build.yml GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- LICENSE.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
- EXCEPTIONS-CLIENT GitHub · keystone-engine/keystone · 修订 dc7932e