# McSema

> 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.

- Type: Tool
- Targets: Binary
- Category: Native analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/lifting-bits/mcsema>
- Primary source: <https://github.com/lifting-bits/mcsema/blob/26368053f761be05dab708bc28fb97090c64b2be/README.md>
- Catalog page: <https://awesomerea.org/resources/mcsema/>
- Record JSON: <https://awesomerea.org/resources/mcsema/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/mcsema/index.md)

## Requirements & limits

- 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.

## Primary sources

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>

## More in Native binaries

- [retoolkit](https://awesomerea.org/resources/retoolkit/index.md) · Tool
- [D-810 ng](https://awesomerea.org/resources/d810-ng/index.md) · Tool
- [Anvill](https://awesomerea.org/resources/anvill/index.md) · Tool
- [XRefer](https://awesomerea.org/resources/xrefer/index.md) · Tool
- [dsdump (paradiseduo wrapper)](https://awesomerea.org/resources/paradiseduo-dsdump/index.md) · Tool
- [Dr. Memory](https://awesomerea.org/resources/dr-memory/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
