# McSema 二进制到 LLVM bitcode 提升器

> Trail of Bits 开发、现已归档的可执行文件提升器，可将 32 位和 64 位 Linux ELF 与 Windows PE 二进制转换为 LLVM bitcode，用于分析或重新编译。控制流恢复由 mcsema-disass 完成，它依赖 IDA Pro 输出 protobuf 格式的控制流图，随后 mcsema-lift 借助 Remill 库翻译指令；README 列出其支持大部分 x86 与 x86-64 整数、x87、MMX、SSE 和 AVX 指令，以及 AArch64、SPARC32 和 SPARC64 的部分指令。提升得到的 bitcode 可交给 LLVM 优化遍、KLEE 或 libFuzzer 处理，也可重新编译成可运行的程序。

- 类型：工具
- 目标：二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-09
- 原始资源：<https://github.com/lifting-bits/mcsema>
- 一手来源：<https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/mcsema/>
- 记录 JSON：<https://awesomerea.org/resources/mcsema/record.json>
- 英文版：[English](https://awesomerea.org/resources/mcsema/index.md)

## 使用条件与局限

- 归档仓库为只读。README 支持 LLVM 9–11；v3.0.24 提供面向 Ubuntu 18.04 与 20.04 amd64 的预构建包。
- 控制流恢复需要 IDA Pro 7.5+。实验性 DynInst 前端未受支持。构建需要 CMake 3.14+、带 protobuf 和 clang 绑定的 Python 3.8，以及固定提交的 Remill 和 Anvill。macOS 与 Windows 构建为实验性或未经测试。
- 输入是分析者提供的编译生成 ELF 或 PE 文件。Limitations.md 排除加壳、加密、混淆、自修改代码及原始固件块，并列出异常与浮点限制。
- 仓库包含 Maze 示例、预构建测试控制流图和加密的 Binary Ninja CI 压缩包。
- 许可证为 AGPL-3.0；IDA Pro、Binary Ninja 和 LLVM 保留各自条款。

## 一手来源

1. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/README.md>
2. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/Limitations.md>
3. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/McSemaWalkthrough.md>
4. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/CommandLineReference.md>
5. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/tests/MakingTests.md>
6. <https://github.com/lifting-bits/mcsema/tree/26368053f761be05dab708bc28fb97090c64b2be/examples/Maze>
7. <https://github.com/lifting-bits/mcsema/tree/26368053f761be05dab708bc28fb97090c64b2be/tests/test_suite_generator/generated/prebuilt_cfg>
8. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/.github/workflows/vcpkg_ci.yml>
9. <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/LICENSE>
10. <https://github.com/lifting-bits/mcsema/commit/1ef3ed2cd355f52d7ae28b336bdbc59c5ebad5b9>
11. <https://github.com/lifting-bits/mcsema/releases/tag/v3.0.26>
12. <https://github.com/lifting-bits/mcsema/releases/tag/v3.0.24>

## 同分区更多条目：原生二进制

- [retoolkit 逆向工程工具集安装程序](https://awesomerea.org/zh/resources/retoolkit/index.md) · 工具
- [D-810 ng IDA 反混淆插件](https://awesomerea.org/zh/resources/d810-ng/index.md) · 工具
- [Anvill 机器码到 LLVM bitcode 提升器](https://awesomerea.org/zh/resources/anvill/index.md) · 工具
- [XRefer 二进制导航插件](https://awesomerea.org/zh/resources/xrefer/index.md) · 工具
- [dsdump（paradiseduo 封装版）Mach-O 类信息导出工具](https://awesomerea.org/zh/resources/paradiseduo-dsdump/index.md) · 工具
- [Dr. Memory](https://awesomerea.org/zh/resources/dr-memory/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
