cea-sec/miasm

Reverse engineering framework in Python

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 12 minutes ago
Added to GitGenius on September 17th, 2026
Created on October 28th, 2014
Open Issues & Pull Requests: 161 (+0)
GitHub issues: Enabled
Number of forks: 489
Total Stargazers: 3,965 (+0)
Total Subscribers: 135 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 33.1 hours
Mean response time: 335.1 days
90th percentile: 1016.9 days
Tracked items: 35

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 13
New in 7 days: 1
Closed in 7 days: 18
Avg open age: 641 days
Stale 30+ days: 9
Stale 90+ days: 9

Recent activity

Opened in 7 days: 1
Closed in 7 days: 18
Comments in 7 days: 6
Events in 7 days: 22

Top labels

  • bug (1)
  • enhancement (1)

Detailed Description

Miasm is a reverse engineering framework in Python that enables analysis, modification, and generation of binary programs.

The framework addresses the need to understand and manipulate compiled code by providing integrated tools for working with binaries at multiple levels of abstraction. It embeds its own disassembler, intermediate language representation, and instruction semantics. The approach works by allowing developers to assemble and disassemble multiple architectures, convert assembly to an intermediate representation that captures instruction semantics, emulate code using JIT compilation with LLVM, GCC, Clang, or Python, and perform symbolic execution to reason about program behavior. Expression simplification enables automatic de-obfuscation of code.

Miasm suits security researchers, malware analysts, and reverse engineers who need programmatic control over binary analysis tasks. It works well for dynamic code analysis, unpacking, and understanding obfuscated binaries. The framework supports PE and ELF binaries in 32 and 64-bit formats with both little and big endian variants, and handles multiple instruction set architectures including X86, ARM, MIPS, SH4, and MSP430. Python callbacks allow interaction with the emulation engine to simulate library function effects or implement custom analysis logic.

The project maintains active development with regular contributions addressing core functionality and architecture support. The codebase shows consistent refinement of the intermediate representation system and emulation capabilities. Testing infrastructure is established and maintained to ensure reliability across supported architectures and binary formats. Documentation is actively curated with Jupyter notebooks demonstrating practical usage patterns alongside auto-generated API references.