Anvill:将机器码转换为LLVM位码的强大工具
Anvill 是一个开源项目,旨在将原始的机器码转换为美丽的 LLVM 位码。该项目主要由 C++、Python 和 LLVM 等编程语言开发。
项目基础介绍
Anvill 通过使用 Remill 库实现简单的机器码提升(lifting)原语。其主要目标是为生成的位码提供高质量输出,这些位码随后可以通过 Rellic 进一步反编译为 C 语言(通过 Clang AST)。所谓“高质量位码”是指其形式与 Clang 编译器在执行具有相同语义的 C 函数时产生的位码类似。
核心功能
- 机器码提升:Anvill 能够将机器码提升为 LLVM 位码,为后续的反编译和代码分析提供基础。
- 高质量输出:生成的位码质量高,接近 Clang 编译器输出的位码,有利于后续的代码分析和优化。
- 易用性:项目提供了详细的构建和安装指南,帮助用户快速上手。
最近更新的功能
根据项目的最新更新,以下是一些最近引入的功能:
- 支持 Ghidra 插件:虽然主分支使用的是闭源的 Ghidra 插件生成 protobuf 规范,但项目已经提供了使用 Binary Ninja 的开源规范生成脚本的标签版本。
- 测试和稳定性改进:项目增加了更多的测试用例,以提高稳定性和可靠性。
- 构建系统更新:项目的构建系统进行了更新,以简化构建过程并提高构建效率。
Anvill 项目的持续更新和发展,使其成为机器码分析和反编译领域的一个重要工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考