FREEDOM251

Freedom251 › Reverse Engineering Tools

Miasm

Free plan LinuxMacWindows

Visit Miasm Alternatives

Miasm's own site

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

Look at these too