Tool
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.
- Targets
- Binary
- Category
- Native analysis tools
- Relationship
- Foundation tool
- Sources reviewed
- Stars
- 2.8k
- Last commit
- 2022-04-26
- Language
- C++
- License (GitHub)
- AGPL-3.0
- Status
- Archived
GitHub data as of 2026-11-09
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.
Cite
BibTeX
@misc{mcsema,
title = {{McSema}},
howpublished = {\url{https://github.com/lifting-bits/mcsema}},
url = {https://github.com/lifting-bits/mcsema},
urldate = {2026-10-27},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/mcsema/}}
}Plain text
McSema. https://github.com/lifting-bits/mcsema (accessed 2026-10-27). Awesome REA entry: https://awesomerea.org/resources/mcsema/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · lifting-bits/mcsema · Revision 2636805
- docs/Limitations.md GitHub · lifting-bits/mcsema · Revision 2636805
- docs/McSemaWalkthrough.md GitHub · lifting-bits/mcsema · Revision 2636805
- docs/CommandLineReference.md GitHub · lifting-bits/mcsema · Revision 2636805
- tests/MakingTests.md GitHub · lifting-bits/mcsema · Revision 2636805
- examples/Maze GitHub · lifting-bits/mcsema · Revision 2636805
- tests/test_suite_generator/generated/prebuilt_cfg GitHub · lifting-bits/mcsema · Revision 2636805
- .github/workflows/vcpkg_ci.yml GitHub · lifting-bits/mcsema · Revision 2636805
- LICENSE GitHub · lifting-bits/mcsema · Revision 2636805
- 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
More in Native binaries
- retoolkit · Tool
- D-810 ng · Tool
- Anvill · Tool
- XRefer · Tool
- dsdump (paradiseduo wrapper) · Tool
- Dr. Memory · Tool