# capstone-engine/capstone

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/capstone-engine-capstone).**

8,858 stars · 1,693 forks · C

## Links

- GitHub: https://github.com/capstone-engine/capstone
- Homepage: http://www.capstone-engine.org
- awesome-repositories: https://awesome-repositories.com/repository/capstone-engine-capstone.md

## Topics

`arm` `arm64` `bpf` `disassembler` `ethereum` `framework` `m0s65xx` `m680x` `m68k` `mips` `powerpc` `reverse-engineering` `riscv` `security` `sparc` `systemz` `tms320c64x` `webassembly` `x86` `x86-64`

## Description

Capstone is a multi-architecture disassembly framework and binary analysis engine. It translates raw machine code from various CPU architectures, such as x86, ARM, and RISC-V, into human-readable assembly instructions.

The engine distinguishes itself by providing instruction semantic decomposition, which lists implicit registers read and written, and the ability to customize instruction mnemonics to meet specific technical analysis standards. It also features resilient stream disassembly, allowing the process to resynchronize and continue after encountering invalid instructions or embedded data.

The framework covers a broad range of binary analysis capabilities, including detailed operand extraction and multi-architecture machine code conversion. To support constrained environments, it allows for the pruning of unused architecture definitions to reduce the final binary memory footprint.

## Tags

### Operating Systems & Systems Programming

- [Binary Disassembly](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-disassembly.md) — Translates raw binary data into readable assembly instructions to analyze program functionality at the lowest level. ([source](https://www.capstone-engine.org/))
- [Binary Analysis Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-analysis-tools.md) — Decomposes machine instructions into granular semantics and extracts detailed operand and register access information.
- [Resilient Disassembly](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-disassembly/resilient-disassembly.md) — Continues processing binary data after skipping invalid instructions or embedded data to recover subsequent code blocks.
- [Stream Resynchronization](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-disassembly/stream-resynchronization.md) — Allows the disassembly engine to resume processing a binary stream after encountering invalid instructions or embedded data. ([source](http://www.capstone-engine.org/documentation.html))
- [Cross-Architecture Binary Analysis](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-architecture-binary-analysis.md) — Transforms binary machine code from various hardware architectures into human-readable assembly instructions. ([source](https://cdn.jsdelivr.net/gh/capstone-engine/capstone@next/README.md))
- [Instruction Semantic Extraction](https://awesome-repositories.com/f/operating-systems-systems-programming/instruction-semantic-extraction.md) — Decomposes instructions into granular semantics and lists implicit registers read and written for deep analysis. ([source](https://cdn.jsdelivr.net/gh/capstone-engine/capstone@next/README.md))
- [Machine Code Converters](https://awesome-repositories.com/f/operating-systems-systems-programming/machine-code-converters.md) — Transforms binary data from various CPU architectures including x86, ARM, and RISC-V into assembly.
- [Operand Decompositions](https://awesome-repositories.com/f/operating-systems-systems-programming/operand-decompositions.md) — Analyzes machine code fields to determine specific memory addresses or registers targeted by instructions.
- [Mnemonic Customization](https://awesome-repositories.com/f/operating-systems-systems-programming/instruction-analysis-tools/mnemonic-customization.md) — Allows the modification of assembly instruction names to match specific technical requirements or analysis standards. ([source](http://www.capstone-engine.org/documentation.html))

### Software Engineering & Architecture

- [Disassembler Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-frameworks/disassembler-frameworks.md) — Provides a comprehensive framework for translating raw binary machine code from multiple CPU architectures into human-readable assembly.
- [Architecture Pruning](https://awesome-repositories.com/f/software-engineering-architecture/build-time-configuration/dependency-pruning/architecture-pruning.md) — Provides a mechanism to exclude unused architecture definitions to reduce the engine's memory footprint.
- [Binary Footprint Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/application-performance-tuning/application-performance-optimization/binary-footprint-optimizers.md) — Supports the removal of unused architectures and non-critical data to reduce the memory footprint. ([source](http://www.capstone-engine.org/documentation.html))

### Part of an Awesome List

- [Multi-Architecture Engines](https://awesome-repositories.com/f/awesome-lists/devtools/disassemblers/multi-architecture-engines.md) — Supports a wide range of processor architectures in a single framework for analyzing different hardware binaries.
- [Binary and Reverse Engineering](https://awesome-repositories.com/f/awesome-lists/devtools/binary-and-reverse-engineering.md) — Facilitates reverse engineering by decomposing instructions into granular semantics and extracting operand details.
- [Firmware Analysis Tools](https://awesome-repositories.com/f/awesome-lists/security/firmware-analysis-tools.md) — Processes binary streams containing mixed data and invalid instructions to recover code from firmware dumps.

### Development Tools & Productivity

- [Compiled Code Analysis](https://awesome-repositories.com/f/development-tools-productivity/compiled-code-analysis.md) — Translates raw machine code from various hardware architectures into readable assembly to understand program functions.
- [Mnemonic Mappings](https://awesome-repositories.com/f/development-tools-productivity/code-translation-mappings/opcode-mappings/mnemonic-mappings.md) — Implements dynamic mapping of internal opcode identifiers to customizable human-readable assembly strings.

### Programming Languages & Runtimes

- [Hardware Dispatchers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-internals-foundations/runtime-architecture/hardware-dispatchers.md) — Maps raw binary streams to specific hardware instruction decoders based on the selected target.
