PAGES
← all tools
◆ Reverse Engineering

Rizin

v0.9.0 open-source

UNIX-like reverse engineering framework and command-line toolset.

Summary

Rizin is an open-source reverse-engineering framework, free to use, run from the command line on Linux, Windows, macOS and several other operating systems. It lets a user disassemble and analyze binaries, debug running programs, and work as a scriptable hex editor, across architectures from x86 and ARMARMA family of RISC processor architectures designed by Arm Holdings and licensed to chip makers worldwide; tools target it to run natively on mobile, embedded, and increasingly server and desktop hardware. to less common targets like MIPSMIPSA RISC processor architecture originally developed at Stanford and commercialized by MIPS Technologies, widely used in embedded and network devices; cyber tools target it to analyze or exploit routers, cameras, and similar hardware., RISC-V and 6502, which makes it a fit for malware analysts, exploit developers and forensic examiners rather than casual users. It began as a fork of radare2 and keeps a similar command style while aiming for cleaner internals and documentation, so it sits alongside radare2 and other disassembly frameworks in the reverse-engineering space. Started in 2009, it now has over 1,100 contributors and more than 1,700 commits in the past year, with a release only 53 days old, so development is active.

UNIX-like reverse engineering framework and command-line toolset.

How Rizin helps

What architecture and instruction set is this unlabeled binary actually written in?

disassembles the code across a wide range of processors from common ones like x86 and ARM to obscure targets like 6502 and Z80, so a file with no metadata can still be read

Is there embedded key material or credentials hiding in this file?

scans the binary for patterns that match cryptographic material and reports where each match sits, without needing the analyst to know what to grep for

Which strings and byte patterns in this sample point to what it does?

runs a unified search across the file for text and byte sequences, covering multiple encodings and Unicode variants, and lists every hit with its location

Where in memory does this process behave differently from the static file on disk?

attaches to the running program and steps or runs it under control, stopping at calls or at a chosen address so state can be compared at that point

Are there regions of this file worth a closer look even without knowing what they contain?

measures entropy across the binary and flags the regions that stand out, which is often where packed or encrypted data lives

Which strings in this binary are actually reachable from other parts of the code, versus just sitting unused in the data section?

lists strings together with the locations in the binary that reference them, separating what the program actually uses from incidental text

all 36 features, with the evidence for each →

Languages

Not documented

Features

36 capabilities · 5 backed by code, an API document or a real run

Built from Rizin's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What Rizin offers you

  • Command-line interface15
  • JSON data export1
  • Plugin system1
  • Scripting language support1
  • User-defined detection rules1
All capabilities 36 capabilities
FLIRT signature management shipped Creates, loads, and manages FLIRT signature files to assist in binary analysis and function identification. 7 releases · 1 other source · first seen Jun 2022

Also counts toward: Command-line interface

release 7 total

  • Adds m family of commands (e.g., m, ml, mc) to create, list, color, and name marks (named locations) in the binary v0.9.0 · Jun 2026 · source · release history
  • Adds /J, /C subcommands to list and search for Jump-Oriented (JOP) and Call-Oriented (COP) gadgets alongside existing ROP search v0.9.0 · Jun 2026 · source · release history
  • New architectures: Renesas RX, Renesas RL78, Renesas RH850 v0.7.0 · Feb 2024 · source · release history
  • Support for SM3, SM4 hash/encryption algorithms v0.7.0 · Feb 2024 · source · release history
  • FLIRT signatures are automatically applied when placed in the installation prefix's sigdb directory or via e flirt.sigdb.path=<path> config key v0.4.0 · Jun 2022 · source · release history
  • zfc Rizin command creates FLIRT signature files (.sig, .pat) during analysis sessions v0.4.0 · Jun 2022 · source · release history

example

  • Generate FLIRT signatures from a debug binary and save them as .pat for use in other sessions. $ rz-sign -aa -o /tmp/curl.pat curl-example-dbg v0.4.0 · Jun 2022 · source
RzIL intermediate language support shipped Provides RzIL lifting capabilities for architectures like ARM and AVR to enable semantic analysis. 6 releases · 1 other source · first seen Jun 2022

Also counts toward: Command-line interface

release

  • Adds RzIL uplifting support for MIPS, PIC, MSP430, Xtensa, and Hexagon architectures; improves Tricore to cover all floating-point instructions. v0.8.0 · Apr 2025 · source · release history
  • RzIL uplifting support for Infineon Tricore, NEC V810, NEC(Renesas) V850, GameBoy, and x86 floating point (experimental) v0.7.0 · Feb 2024 · source · release history
  • plf command to list all RzIL instructions in the current function v0.7.0 · Feb 2024 · source · release history
  • pfn command to define, list, or print definitions of named formats v0.7.0 · Feb 2024 · source · release history
  • Adds agI command to show RzIL in graph form v0.6.0 · Aug 2023 · source · release history
  • RzIL intermediate language is now available, enabling ARM32, ARM64, AVR, and 6502 code lifting via rz-asm -I v0.4.0 · Jun 2022 · source · release history

example

  • Lift ARM assembly to the new RzIL intermediate language for semantic analysis or SMT solving. $ rz-asm -a arm -b 32 -I 1233a0e1 v0.4.0 · Jun 2022 · source
Indirect call analysis shipped Configures the analyzer to follow indirect call targets during analysis. 5 releases · 1 other source · first seen Jan 2021

release

  • Adds support for TMS320C54x disassembly, classic BPF (cBPF), SuperH-3 (asm.cpu), M680X CPUs, MCS96 ISA, and C166/MIL-STD-1750 architectures v0.9.0 · Jun 2026 · source · release history
  • New /cm command searches for cryptographic material in binaries. v0.8.0 · Apr 2025 · source · release history
  • Adds aoi command to show RzIL in text form v0.6.0 · Aug 2023 · source · release history
  • Adds aaC command to run classes analysis v0.6.0 · Aug 2023 · source · release history
  • Adds asm.hint.call.indirect config variable to make indirect calls follow the target address. v0.1.0 · Jan 2021 · source · release history

example

  • Run entropy search across a firmware image to locate compressed or encrypted regions. rizin -qc '/ce' <firmware.bin> v0.8.0 · Apr 2025 · source
JSON output verified Emits results in JSON format for programmatic consumption. 2 releases · 2 other sources · first seen Jan 2021

Also counts toward: Command-line interface, JSON data export

release

  • Adds cfg.json.* variables for JSON encoding settings. v0.1.0 · Jan 2021 · source · release history
  • Adds om.j command variant for JSON output of map information at the current offset. v0.1.0 · Jan 2021 · source · release history

docs

  • Reverse engineering framework for analyzing binaries, disassembling code, debugging programs, and hex editing, forked from radare2.

command line

Parallel dependency checking verified Checks dependencies using a configurable number of parallel workers to control throughput. 1 release · 3 other sources · first seen Apr 2025

Also counts toward: Command-line interface

release

  • Search commands (strings, bytes, cryptographic material) now dispatch work across threads, improving performance on large files. v0.8.0 · Apr 2025 · source · release history

command line

example

  • Launch the Rizin interactive shell rizin
Zignature matching configuration shipped Configures pattern matching parameters for zignatures using a consolidated key structure. 3 releases · 1 other source · first seen Jan 2021

release

  • Adds p=C, p=I, p=M, p=S (vertical) and p==C, p==I, p==M, p==S (horizontal with minimap) to render χ², index of coincidence, min-entropy, and serial-correlation histograms v0.9.0 · Jun 2026 · source · release history
  • zignatures are removed; use F[al] instead of aaF[l] and F[sdc] instead of zf[sdc] v0.5.0 · Feb 2023 · source · release history
  • Adds zign.match.* configuration variables, replacing previous zign.{graph,bytes,offset,refs,hash,types} keys. v0.1.0 · Jan 2021 · source · release history

example

  • Analyze data distribution using statistical indicators beyond simple entropy to identify encryption or compression boundaries. p==Mv v0.9.0 · Jun 2026 · source
Emulation control shipped Allows reversing instruction execution flow, including backward stepping in ESIL mode. 4 releases · first seen Jan 2021

Also counts toward: Command-line interface

release

  • New rz-bin -dd flag to download DWARF from a debuginfod server v0.7.0 · Feb 2024 · source · release history
  • Implement add r#, K in the x86 assembler v0.6.3 · Oct 2023 · source · release history
  • asm.stackptr variable enables visualization of absolute stack pointer value and instruction delta in disassembly v0.5.0 · Feb 2023 · source · release history
  • Adds aecb command to continue backwards in ESIL emulation mode. v0.1.0 · Jan 2021 · source · release history
String search configuration shipped Manages string search parameters including buffer size, encoding, minimum length, and threading. 4 releases · first seen Feb 2024

release

ANSI color control verified Allows ANSI color codes in terminal output to be disabled. 1 release · 2 other sources · first seen Feb 2023

release

command line

example

  • Switch to the new Nord color theme for analysis sessions rizin <binary> -c 'eco nord' v0.5.0 · Feb 2023 · source
Rizin project auto-detection verified Accepts a rizin checkout or its subprojects directory as input, and auto-detects the correct path when none is supplied. 2 releases · 1 other source · first seen Jan 2021

release

  • Rizin starts without opening a file by default; = opens a malloc-ed file in memory. v0.3.0 · Sep 2021 · source · release history
  • Introduces Projects implementation for saving and loading reverse engineering context. v0.1.0 · Jan 2021 · source · release history

command line

  • path — rizin checkout or its subprojects/ dir (auto-detected if omitted) v0.9.0 · Jun 2026 · command-line history
Python bytecode support shipped Enables analysis of Python compiled bytecode files. 3 releases · first seen Apr 2021

Also counts toward: Command-line interface, Scripting language support

release

Reverse engineering context persistence shipped Saves and loads reverse engineering session state for project continuity. 2 releases · 1 other source · first seen Jan 2021

release

  • Adds %$ command to handle Rizin $varname variables v0.6.1 · Aug 2023 · source · release history
  • Introduces Projects implementation for saving and loading reverse engineering context. v0.1.0 · Jan 2021 · source · release history

example

  • Manage local state in a Rizin session using variable references. %$ var1=42 %$ var2=var1 + 10 v0.6.1 · Aug 2023 · source
File sequence navigation shipped Provides commands to open the next or previous file within a loaded project context. 3 releases · first seen Jan 2021

Also counts toward: Command-line interface

release

  • Adds interactive variants of p== commands by appending the v suffix v0.6.0 · Aug 2023 · source · release history
  • tl commands and typelinks are removed; use avg global variables instead. v0.6.0 · Aug 2023 · source · release history
  • Adds opr, opn, and opp commands to open next and previous files in a project sequence. v0.1.0 · Jan 2021 · source · release history
Hexadecimal diff view shipped Enables hexadecimal visualization in the rz-diff tool. 2 releases · 1 other source · first seen Sep 2021

release

example

  • Pass a specific config variable to rz-diff without modifying global defaults rz-diff -e analysis.jmp.cref=1 bin1 bin2 v0.3.3 · Jan 2022 · source
Control flow graph visualization shipped Generates and prints control flow graphs (CFG) and interprocedural CFGs for functions. 1 release · 1 other source · first seen Feb 2024

Also counts toward: Command-line interface

release

  • agF and agCi commands to print control flow graphs (CFG and interprocedural CFG) v0.7.0 · Feb 2024 · source · release history

example

  • Constrain the range of a local variable to aid control-flow graph analysis. afvcs var0 ">0,<=9" v0.9.0 · Jun 2026 · source
Gadget-oriented programming search shipped Searches for JOP, COP, and ROP gadgets to aid in exploit development by bypassing traditional detection mechanisms. 1 release · 1 other source · first seen Jun 2026

release

  • Configuration variables rop.* (e.g., rop.cache) are renamed to gadget.* (e.g., gadget.cache) v0.9.0 · Jun 2026 · source · release history

example

  • Search for JOP gadgets to bypass traditional ROP chain detection in exploit development. /J v0.9.0 · Jun 2026 · source
Lua bytecode analysis shipped Provides disassembly and binary analysis plugins for Lua 5.4 bytecode. 2 releases · first seen Apr 2021

Also counts toward: Plugin system

release

  • Adds new binary format parsers for STABS debug info, Lua bytecode (Luac 5.0–5.5, LuaJIT 2.1), CaRT, Amiga hunk, MDT, PEF, and ELF coredumps for multiple architectures v0.9.0 · Jun 2026 · source · release history
  • Implements Lua 5.4 bytecode disassembly/analysis/binary plugins (luac) v0.2.0 · Apr 2021 · source · release history
Raw firmware base address detection shipped Identifies candidate base addresses for raw firmware binaries lacking standard headers using heuristic analysis. 1 release · 1 other source · first seen Jun 2022

release

  • New B command identifies candidate base addresses for raw firmware binaries using pointer and string heuristics v0.4.0 · Jun 2022 · source · release history

example

  • Identify likely base addresses for a raw firmware binary (e.g. STM32) without proper headers. $ rizin -e log.level=3 -qc B stm32f103-dapboot-v1.20-bluepill.bin v0.4.0 · Jun 2022 · source
Core API initialization shipped Provides C API methods for initializing TSLanguage outside the core context and managing new commands. 1 release · 1 other source · first seen Nov 2021

release

  • Adds new rz_core_cmd_new() API for moving TSLanguage initialization v0.3.1 · Nov 2021 · source · release history

example

  • Use the new C API to initialize TSLanguage outside the core context. rz_core_cmd_new() v0.3.1 · Nov 2021 · source
Process execution control shipped Controls process execution parameters such as PID handling in the rz-run utility. 1 release · 1 other source · first seen Nov 2021

Also counts toward: Command-line interface

release

  • Adds pid and pidfile options to rz-run man page, making the pid option a boolean flag v0.3.1 · Nov 2021 · source · release history

example

  • Run a command with rz-run using a boolean pid flag to control process execution. rz-run --pid --pidfile /tmp/rz.pid <your_command> v0.3.1 · Nov 2021 · source
Seek history configuration shipped Controls the maximum size of the seek history and whether seeks are logged to it. 2 releases · first seen Jan 2021

release

  • Introduces cfg.seek.histsize config variable to set the maximum size of the seek history. v0.1.0 · Jan 2021 · source · release history
  • Introduces cfg.seek.silent config variable to prevent seek commands from saving movements in seek history. v0.1.0 · Jan 2021 · source · release history
Built-in self-test verified Runs an offline suite of unit tests to verify the tool is working correctly without requiring network access. 1 other source · first seen Jun 2026

Also counts toward: Command-line interface

command line

  • --self-test — run the built-in unit tests (no network) and exit v0.9.0 · Jun 2026 · command-line history
Command execution on search hits shipped Executes a specified command for each hit found by a search operation, extending basic pattern matching with automation. 1 release · first seen Jun 2026

Also counts toward: Command-line interface

release

  • Adds rz-find -R <cmd> to execute a Rizin command for each search hit, complementing -E's shell execution v0.9.0 · Jun 2026 · source · release history
Heap inspection by allocator namespace shipped Provides commands to inspect heap memory structures organized by allocator namespace. 1 release · first seen Jun 2026

Also counts toward: Command-line interface

release

  • The dmh*, dmw*, and dmx* heap inspection commands are renamed to dmhg*, dmhw*, and dmhj* respectively, organized by allocator namespace v0.9.0 · Jun 2026 · source · release history
RzIL intermediate language output shipped Outputs Unicode-enabled RzIL (intermediate representation) of the current function for semantic analysis. 1 release · first seen Jun 2026

release

  • Adds plF print path to output Unicode-enabled RzIL (intermediate representation) of the current function v0.9.0 · Jun 2026 · source · release history
DWARF storage information output shipped Outputs detailed DWARF storage information for variables in extended formats. 1 release · first seen Feb 2024

release

  • afvll and afvlt extensions for afvl to output long and table formats with DWARF storage info v0.7.0 · Feb 2024 · source · release history
Variable reference analysis shipped Provides commands to print references to global variables within the analyzed binary. 1 release · first seen Feb 2024

Also counts toward: Command-line interface

release

Build configuration options shipped Provides build-time flags to customize the toolchain, such as disabling GPL components. 1 release · first seen Jun 2022

release

  • -Duse_gpl=false build option allows disabling GPL code during Rizin compilation v0.4.0 · Jun 2022 · source · release history
Golang binary recovery shipped Automatically recovers Go function names and strings from compiled binaries across multiple architectures. 1 release · first seen Jun 2022

release

  • Automatic golang function and string recovery for x86/x64/PowerPC/MIPS/ARM/RISC-V adds the sym.go.* flag namespace v0.4.0 · Jun 2022 · source · release history
YARA rule integration shipped Enables parsing and creating YARA rules within the core analysis engine. 1 release · first seen Jun 2022

Also counts toward: User-defined detection rules

release

  • rz-libyara is available as a RzCore plugin for parsing and creating YARA rules v0.4.0 · Jun 2022 · source · release history
Multidex APK support shipped Adds initial support for analyzing Android multidex APK files. 1 release · first seen Sep 2021

release

Function basic block deletion shipped Provides commands to delete all basic blocks associated with a function. 1 release · first seen Apr 2021

Also counts toward: Command-line interface

release

  • Adds afb-* command to delete all basic blocks of a function v0.2.0 · Apr 2021 · source · release history
Calling convention analysis shipped Sets the current calling and syscall conventions for accurate function analysis. 1 release · first seen Jan 2021

release

  • Adds analysis.cc and analysis.syscc configuration variables to set current calling and syscall conventions. v0.1.0 · Jan 2021 · source · release history
Debugger console creation shipped Configures the debugger to open a new window for the debugged process upon start. 1 release · first seen Jan 2021

release

  • Adds dbg.create_new_console config variable to create a new console window for the debugee on debug start. v0.1.0 · Jan 2021 · source · release history
Integer/IP address conversion shipped Converts values between LONG integer and IP address formats via CLI utility. 1 release · first seen Jan 2021

release

  • Adds -I option to rz-ax to convert from/to LONG and IP address formats. v0.1.0 · Jan 2021 · source · release history
Parser plugin management shipped Lists available parser plugins via command interface. 1 release · first seen Jan 2021

Also counts toward: Command-line interface

release

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

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 Rizin, 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 Rizin 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

Show

20 entries

  1. June 20261
  2. February 20261
  3. April 20251
  4. December 20241
  5. February 20241
  6. October 20231
  7. August 20233
  8. March 20231
  9. February 20231
  10. September 20222
  11. June 20221
  12. January 20221
  13. December 20211
  14. November 20211
  15. September 20211
  16. April 20211
  17. January 20211
    Show

    20 entries

    Project health

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

    1. Contributors 64 +32 vs prior 12 months
    2. Maintainers 14 +12 joined · −4 left, last 12 months
    3. Bus factor 5 committers behind half the commits
    4. Community-filed 64% of issues opened, last 12 months
    5. Median time to close 402 days first maintainer reply 4.7 days
    6. Open backlog 449 of 1,494 issues ever filed
    1. Issues opened / month 0 · 13 communitymaintainers
    2. Open backlog 449
    3. Contributors / month 13
    4. Commits / month 51
    5. Stars 3,901
    Issue themes, last 12 months
    • bugs 18%
    • features 17%
    • questions 1%
    • docs 2%
    • other 62%

    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

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    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 →