Freedom251 › Reverse Engineering Tools
Miasm

What Miasm is
Miasm is a free, open-source reverse-engineering framework for analyzing, modifying, and generating binary programs. It handles 32-bit and 64-bit PE and ELF files in little-endian and big-endian forms. The framework assembles and disassembles x86, ARM, MIPS, SH4, and MSP430 instructions, representing assembly semantics in an intermediate language. Analysis features include emulation, symbolic execution, dynamic symbolic execution examples, and expression simplification for automatic de-obfuscation. JIT backends can use LLVM, GCC, Clang, or Python, with Python callbacks able to interact with execution. Optional components add C parsing, Z3 translation and analysis, LLVM JIT support, Graphviz export, and Windows API cryptography and hash emulation. Installation is available from the Git repository or Docker images and requires Python 3.10 or newer. Miasm is distributed under GPLv2 and supports Linux, macOS, and Windows. Documentation includes examples, notebooks, blog posts, and cheatsheets.
Who it suits
Miasm suits reverse-engineering practitioners working with binary formats, assembly, emulation, symbolic execution, and de-obfuscation. It requires Python 3.10 or newer and supports Linux, macOS, and Windows.
What it does well
- Free and open source
- Handles PE and ELF binaries
- Supports several assembly architectures
- Includes symbolic execution
- Offers multiple JIT backends
What to know first
- Requires Python 3.10 or newer
- JIT features depend on native compilation
- Optional components require extra setup
- No decompiler
Verdict
Miasm provides extensive binary-analysis, emulation, and symbolic-execution capabilities under GPLv2. Its optional components and JIT setup add flexibility, but some features depend on installation configuration.
Facts from Miasm's own pages
- Analysis features
- It represents assembly semantics in an intermediate language and supports emulation, symbolic execution, and expression simplification for automatic de-obfuscation. · github.com, 7 Oct 2026
- Architectures
- It supports assembling and disassembling X86, ARM, MIPS, SH4, and MSP430. · github.com, 7 Oct 2026
- Assembly support
- It assembles and disassembles x86, ARM, MIPS, SH4, and MSP430 instructions. · github.com, 7 Oct 2026
- Binary formats
- It can open, modify, and generate PE and ELF binaries in 32-bit and 64-bit, little-endian and big-endian forms. · github.com, 7 Oct 2026
- Contact and documentation
- The official site lists an email contact and links to pdoc and Doxygen documentation. · miasm.re, 7 Oct 2026
- Deobfuscation
- Expression simplification is listed as a feature for automatic de-obfuscation. · github.com, 7 Oct 2026
- Documentation
- Documentation includes code comments, examples, interactive Jupyter notebooks, blog posts, and cheatsheets. · github.com, 7 Oct 2026
- Emulation
- It uses JIT to emulate shellcode and some or all of binaries, and Python callbacks can interact with execution. · github.com, 7 Oct 2026
- File formats
- It supports opening, modifying, and generating 32-bit and 64-bit PE and ELF files in little-endian and big-endian formats. · github.com, 7 Oct 2026
- IDA support
- The repository documents Windows and IDA plugin use; without a fuller installation, JIT-related features are unavailable in that setup. · github.com, 7 Oct 2026
- Installation
- The project can be installed from its Git repository or Docker images, and requires Python 3.10 or later. · github.com, 7 Oct 2026
- Integrations
- The project lists IDA plugins and tools that use Miasm, including Sibyl, R2M2, CGrex, and ethRE. · github.com, 7 Oct 2026
- Intermediate representation
- It represents assembly semantics using an intermediate language. · github.com, 7 Oct 2026
- JIT backends
- Its JIT can use LLVM, GCC, Clang, or Python to emulate intermediate representations. · github.com, 7 Oct 2026
- JIT limitation
- If native jitter compilation fails, installation continues, but jitter-dependent features are unavailable unless the build is configured to require JIT. · github.com, 7 Oct 2026
- License
- Miasm is distributed under the GPLv2 license. · github.com, 7 Oct 2026
- Optional components
- Optional extras provide C parsing, Z3-based translation and analysis, LLVM JIT support, Graphviz export, and Windows API crypto/hash emulation. · github.com, 7 Oct 2026
- Purpose
- Miasm is a free and open source reverse engineering framework for analyzing, modifying, and generating binary programs. · github.com, 7 Oct 2026
- Requirements
- The listed software requirements are Python 3.10 or newer, future, and pyparsing 2.4.1 or newer. · github.com, 7 Oct 2026
- Symbolic execution
- Miasm includes symbolic execution and dynamic symbolic execution examples for program analysis tasks. · miasm.re, 7 Oct 2026
- Use cases
- The maker’s blog demonstrates dynamic symbolic execution for algorithm recovery, packer reuse, and automatic crackme solving. · miasm.re, 7 Oct 2026
- Windows and IDA
- Most IDA plugins use a subset of Miasm functionality, and the README says all features except JIT-related ones are available with its quick setup instructions. · github.com, 7 Oct 2026
Where Miasm stands on Freedom251
- Reverse Engineering Tools#39 of 73