{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/Limitations.md",
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/McSemaWalkthrough.md",
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/docs/CommandLineReference.md",
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/tests/MakingTests.md",
    "https://github.com/lifting-bits/mcsema/tree/26368053f761be05dab708bc28fb97090c64b2be/examples/Maze",
    "https://github.com/lifting-bits/mcsema/tree/26368053f761be05dab708bc28fb97090c64b2be/tests/test_suite_generator/generated/prebuilt_cfg",
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/.github/workflows/vcpkg_ci.yml",
    "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/LICENSE",
    "https://github.com/lifting-bits/mcsema/commit/1ef3ed2cd355f52d7ae28b336bdbc59c5ebad5b9",
    "https://github.com/lifting-bits/mcsema/releases/tag/v3.0.26",
    "https://github.com/lifting-bits/mcsema/releases/tag/v3.0.24"
  ],
  "category": "native-analysis",
  "description_en": "Archived Trail of Bits executable lifter that translates 32- and 64-bit Linux ELF and Windows PE binaries into LLVM bitcode for analysis or recompilation. Control-flow recovery runs in mcsema-disass, which relies on IDA Pro to write a protobuf CFG, and mcsema-lift then translates instructions through the Remill library; the README lists most x86 and x86-64 integer, x87, MMX, SSE and AVX instructions plus subsets of AArch64, SPARC32 and SPARC64. Lifted bitcode can go through LLVM passes, KLEE or libFuzzer, or be compiled back into a runnable program.",
  "description_zh": "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 处理，也可重新编译成可运行的程序。",
  "entry_url": "https://awesomerea.org/resources/mcsema/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/mcsema/",
  "evidence_url": "https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/README.md",
  "group": "tools",
  "id": "mcsema",
  "json_url": "https://awesomerea.org/resources/mcsema/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/mcsema/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/mcsema/index.md",
  "name": "McSema",
  "name_zh": "McSema 二进制到 LLVM bitcode 提升器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "The archived repository is read-only. The README supports LLVM 9–11; v3.0.24 has prebuilt archives for Ubuntu 18.04 and 20.04 amd64.",
    "Control-flow recovery requires IDA Pro 7.5+. The experimental DynInst frontend is unsupported. Builds need CMake 3.14+, Python 3.8 with protobuf and clang bindings, and pinned Remill and Anvill commits. macOS and Windows builds are experimental or untested.",
    "Inputs are analyst-supplied compiler-generated ELF or PE binaries. Limitations.md excludes packed, encrypted, obfuscated and self-modifying code and raw firmware blobs; it also notes exception and floating-point limitations.",
    "The repository includes Maze examples, prebuilt test CFGs and an encrypted Binary Ninja CI archive.",
    "AGPL-3.0; IDA Pro, Binary Ninja and LLVM retain their own terms."
  ],
  "requirements_zh": [
    "归档仓库为只读。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 保留各自条款。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/lifting-bits/mcsema",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
