PAGES
← all tools
◆ Reverse Engineering

distorm3

open-source

diStorm3 is a binary stream disassembler library for x86/AMD64 that decomposes instructions into binary structures for code analysis.

Summary

distorm3 is an open-source disassembler library for x86 and AMD64 binaries, licensed under BSD, that decomposes machine code into structured instruction data rather than static disassembly text. It is used as a library, installable via pip, with a single API and a small footprint, and also ships a command-line interface for decoding raw binary streams at a given offset with selectable modes (80286, IA-32, or AMD64). This makes it a fit for reverse engineers and binary-analysis tooling authors who need instruction decoding as a building block rather than a full disassembler application. Its README points to a separate project, distormx, for hooking use cases, suggesting distorm3 itself stays focused on decomposition. First committed in 2010 with 18 contributors, it has had no commits in the past year, so treat it as stable but no longer actively maintained.

diStorm3 is a binary stream disassembler library for x86/AMD64 that decomposes instructions into binary structures for code analysis.

How distorm3 helps

What instruction is actually at this offset in a raw binary stream, byte by byte?

decodes the stream starting at that offset and returns a structured description of the instruction — mnemonic, operands, length — rather than a line of disassembly text, so downstream code can inspect fields directly

Is this blob of code 32-bit or 64-bit machine code?

decodes the same bytes under a selectable mode — 80286, IA-32, or AMD64 — so the reader can compare how the instruction stream resolves under each and confirm which one produces valid instructions

How long is the instruction sitting at this address, so I know where the next one starts?

returns the decoded length of each instruction as part of its structured output, letting the reader walk a buffer instruction by instruction without guessing boundaries

What are the actual operands and mnemonic of an instruction, without parsing a disassembly string myself?

hands back the instruction as a binary structure with mnemonic and operand fields already separated, so the caller reads values directly instead of pattern-matching text

Can I inspect a raw binary stream from the command line without writing any code first?

ships a command-line interface that takes a file and offset and decodes it in the chosen mode, printing the structured result for a quick look before wiring the library into a larger tool

Languages

Not documented

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for distorm3, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail distorm3 puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Nothing shipped since we started watching. Releases and docs updates land here as they happen.

last release Apr 3, 2021 · watching since Jun 24, 2026

Project health

Issue, contributor and maintainer activity in gdabah/distorm, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

  1. Contributors 0 ±0 vs prior 12 months
  2. Maintainers 0 +0 joined · −0 left, last 12 months
  3. Bus factor 0 committers behind half the commits
  4. Community-filed not measured of issues opened, last 12 months
  5. Median time to close not measured issues closed, last 12 months
  6. Open backlog 10 of 152 issues ever filed
  1. Issues opened / month 0 · 0 communitymaintainers
  2. Open backlog 10
  3. Contributors / month 0
  4. Commits / month 0
  5. Stars 1,341
Issue themes, last 12 months not measured

Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

Add the badge to your README

Maintain this project? The badge links readers straight to this page, so they can follow every release here.

Tracked by Cyber Toolchain Choose a badge style and copy the code →
browse all tools → score card for your toolchain →