工具

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,分发构建产物时需注意。本次未提升或优化任何例程,也未进行构建。

关于此条目

类型
工具
类别
二进制分析库
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  2. CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  3. Docs/COMPILE.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  4. VTIL-Common/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  5. Dependencies/capstone/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  6. Dependencies/keystone/CMakeLists.txt GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  7. VTIL-Compiler/optimizer GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  8. Sample%20Routines GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  9. .github/workflows/build.yml GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  10. LICENSE.md GitHub · vtil-project/VTIL-Core · 修订 9ebee8e
  11. EXCEPTIONS-CLIENT GitHub · keystone-engine/keystone · 修订 dc7932e