No description
Find a file
2026-06-22 12:54:24 +02:00
.github Bump actions/checkout from 6 to 7 2026-06-22 12:54:24 +02:00
binr Open self with api instead of commands in r2preload ##debug 2026-06-17 18:10:43 +02:00
dist Add FTAB extractor plugin ##bin 2026-06-12 10:17:25 +02:00
doc Port the r2preload thing to Windows ##windows 2026-06-17 17:53:25 +02:00
libr Autoresolve anal.gp for ppc32 via small-data ##bin 2026-06-21 00:26:52 +02:00
man Unify ESIL constructors behind an REsilOptions struct ##esil 2026-06-15 12:25:05 +02:00
mk Fix the wasm build 2026-05-14 22:52:34 +02:00
pkgcfg Add i386 static linking ci jobs and fix all the related build issues 2026-03-12 15:13:25 +01:00
scripts Add pebble script for stub scans ##analysis 2026-06-12 06:44:51 +02:00
shlr Fix GDB register cache bounds and ownership checks ##debug 2026-06-09 16:49:27 +02:00
subprojects Use #ifdef CS_VERSION_PRE_RELEASE instead of CS_NEXT_VERSION version guard for riscv_cs capstone mode ##build 2026-06-20 19:07:02 +02:00
sys Improve and document REQUIRE in r2r ##tests 2026-06-07 11:17:11 +02:00
test Autoresolve anal.gp for ppc32 via small-data ##bin 2026-06-21 00:26:52 +02:00
.gitignore Add Nix flake and dev shell support ##build 2026-06-22 12:18:07 +02:00
AGENTS.md Add r_json_parsedup that owns and frees the input string ##util 2026-03-30 12:21:19 +02:00
autogen.sh Add install-debs.sh for ci oneliners 2026-03-08 09:31:26 +01:00
COMMUNITY.md Improve wording of COMMUNITY.md 2022-05-30 19:35:37 +02:00
config-user.mk.acr Add opt-in Zydis x86 arch plugin ##arch 2026-05-07 08:44:34 +02:00
configure Detect system zydis without pkgconfig + ppc fixes ##build 2026-06-05 07:39:00 +02:00
configure-plugins Add opt-in Zydis x86 arch plugin ##arch 2026-05-07 08:44:34 +02:00
configure.acr Detect system zydis without pkgconfig + ppc fixes ##build 2026-06-05 07:39:00 +02:00
configure.bat Fix preconfigure.bat for some setups ##build 2025-08-20 01:05:08 +02:00
configure.hook Add opt-in Zydis x86 arch plugin ##arch 2026-05-07 08:44:34 +02:00
CONTRIBUTING.md Update merging style in CONTRIBUTING.md (#21467) 2023-03-12 18:40:28 +01:00
COPYING.md Fix the license checks for all the crypto/hash ##muta 2026-02-17 00:12:48 +01:00
DEVELOPERS.md Remove shlr/capstone leftovers ##build 2026-03-17 10:12:10 +01:00
env.sh env.sh: Don't add trailing colons to paths 2024-05-23 11:58:49 +02:00
flake.lock Add Nix flake and dev shell support ##build 2026-06-22 12:18:07 +02:00
flake.nix Add Nix flake and dev shell support ##build 2026-06-22 12:18:07 +02:00
global.mk Add more panel layouts by default ##visual 2025-06-16 11:44:12 +02:00
INSTALL.md Fix uaf in core.free 2025-08-04 21:09:04 +02:00
make.bat Fix preconfigure.bat for some setups ##build 2025-08-20 01:05:08 +02:00
Makefile Fix Windows (mingw) installs failing on r2sdb install 2026-04-12 08:21:16 +02:00
meson.build Add ldmap.r2.js script to load sourceline from ldscript map files ##bin 2026-06-07 19:53:13 +02:00
meson_options.txt Add opt-in Zydis x86 arch plugin ##arch 2026-05-07 08:44:34 +02:00
package.nix update zydis subproject url for nix ##build 2026-06-22 16:17:54 +05:30
preconfigure Remove shlr/capstone leftovers ##build 2026-03-17 10:12:10 +01:00
preconfigure.bat In the preoconfigure add the windows debugger toolkit in the PATH ##windows 2025-11-22 12:36:13 +01:00
README.md Add Nix flake and dev shell support ##build 2026-06-22 12:18:07 +02:00
SECURITY.md Rewrite user-facing documentation (#19543) 2022-01-01 06:11:46 -06:00
shell.nix Add Nix flake and dev shell support ##build 2026-06-22 12:18:07 +02:00
USAGE.md Few more cleanups for rahash2 and add the strhash crypto plugin 2024-03-21 11:16:16 +01:00
vsfix.bat Update sdb to remove double include paths ##build 2022-11-19 01:05:18 +01:00

screenshot

Radare2: Libre Reversing Framework for Unix Geeks

Latest packaged version Tests Status build tcc CII Best Practices Build Status Discord

Current git master branch is 6.1.7, next release will be 6.1.8.

Description

r2 is a complete rewrite of radare. It provides a set of libraries, tools and plugins to ease reverse engineering tasks. Distributed under LGPLv3, despite each plugin can have different licenses (see r2 -Lj for details)

The radare project started as a simple command-line hexadecimal editor focused on forensics. Today, r2 is a full-featured low-level command-line tool with support for scripting with the embedded Javascript interpreter or via r2pipe.

r2 can edit files on local hard drives, view kernel memory, and debug programs locally or via a remote gdb/windbg servers. r2's wide architecture support allows you to analyze, emulate, debug, modify, and disassemble any binary.

screenshot

Installation

Download the last released binaries.

The recommended way to install radare2 is from Git repository source:

git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
  • Run sys/install.sh for the default acr+make+symlink installation
  • meson/ninja (muon/samu also works) and make builds are supported.

Nix

radare2 provides a Nix flake for reproducible builds and development shells:

nix run github:radareorg/radare2     # run radare2
nix shell github:radareorg/radare2   # shell with r2 in PATH
nix build github:radareorg/radare2   # build the package

For development, clone the repo and use the dev shell:

git clone https://github.com/radareorg/radare2
cd radare2
nix develop   # enter dev shell with all build dependencies
nix build     # build from local source

Source Build

  • r2 can be installed from git or via pip using r2env.
  • Windows builds require meson and msvc or mingw as compilers
  • To uninstall the current build of r2 run make uninstall
  • To uninstall ALL the system installations of r2 do: sudo make purge

On Windows use the .bat scripts and msvc:

preconfigure.bat       REM setup python, meson, ninja
configure.bat          REM run meson b + vs project
make.bat               REM run ninja -C b
prefix\bin\radare2.exe

Using the r2pm tool you can browse and install many plugins and tools that use radare2.

  • iaito: The official Qt graphical interface
  • keystone Assembler instructions using the Keystone library
  • decai Decompiler based on AI
  • r2ai Run a Language Model in localhost with Llama inside r2!
  • r2dec: A decompiler based on r2 written in JS, accessed with the pdd command
  • r2diaphora: Diaphora's binary diffing engine on top of radare2
  • r2frida: The frida io plugin. Start r2 with r2 frida://0 to use it
  • r2ghidra: The standalone native ghidra decompiler accessible with pdg
  • r4ghidra: Feel the radare joy inside your Ghidra
  • r2papi High level api on top of r2pipe
  • r2pipe Script radare2 from any programming language
  • r2poke Integration with GNU/Poke for extended binary parsing capabilities
  • goresym: Import GoReSym symbol as flags
  • r2yara Run Yara from r2 or use r2 primitives from Yara
  • radius2: A fast symbolic execution engine based on boolector and esil
  • r2sarif import/extend/export SARIF documents
  • r2hermes Disassembler and analyzer for React Native Hermes bytecode
  • r2renef Renef IO Plugin for Radare2 - Dynamic Android Instrumentation
  • warrp Native radare2 plugin for the binary ninja's WARP format

Usage

These are the first steps to use r2, read the book or find tutorials for more details

$ r2 /bin/ls   # open file in read-only
> aaa          # analyse the program (r2 -A)
> afl          # list all functions (try aflt, aflm)
> px 32        # print 32 byte hexdump current block
> s sym.main   # seek to main (using flag name)
> f~foo        # filter flags matching 'foo' (internal |grep)
> iS;is        # list sections and symbols (rabin2 -Ss)
> pdf; agf     # disassembly and ascii-art function graph
> oo+;w hello  # reopen in read-write and write a string
> ?*~...       # interactive filter in all command help
> q            # quit

Many plugins are included in r2 by default. But you can extend its capabilities by using the r2pm package manager.

r2pm -s <word>  # search packages matching a word
r2pm -Uci <pkg> # update database and clean install a package
r2pm -u <pkg>   # uninstall the given package
r2pm -l <pkg>   # list installed packages

Resources

Documentation

Learn more about r2 watching youtube talks from r2con. There are also many blogposts, slidedecks and the official radare2 book, but it's always a good idea to join any of the official chats and drop your questions or feedback there.

Community

Supported Platforms

Operating Systems

Windows (since XP for x86/x64/arm64), Linux, Darwin, GNU/Hurd, Apple's {Mac,i,iPad,watch}OS, Android, Wasmer, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, AIX, Haiku, Vinix, FirefoxOS.

Architectures

i386, x86-64, Alpha, ARM, AVR, BPF, sBPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, PDP11, m680x, V850, CRIS, XAP (CSR), PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, OR1K Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, xcore, NIOS II, Java, Dalvik, Pickle, WebAssembly, MSIL, EBC, TMS320 (c54x, c55x, c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, lm32, MSIL, InfernoDis, UXN, Cosmac, PythonBytecode, Sharp sm5xx MCPus, FreeScale QIQa, MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8, s390x, STM8.

File Formats

ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, XCOFF, OMF, TE, XBE, SEP64, BIOS/UEFI, BFLT, Pebble apps, Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, Java class, Android boot image, Plan9 executables, Amiga HUNK, ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, DotNet, WASM (WebAssembly binary), Commodore VICE emulator, DOL, QNX, WAD, OFF, TIC-80, GB/GBA, PSX, PRG (C64), Apple Classic PEF, NDS, z64, and N3DS ...

FileSystems

Mount in userland several filesystems like NTFS, FAT, HFS+, EXT, APFS, BeosFS, BFS, MINIX, ReiserFS, SFS, ubifs, ufs, jfs, ISO9660, UDF, xfs

Packaging Status

  • Snap package
  • Termux package
  • Alpine Linux 3.23 package Alpine Linux 3.22 package
  • Arch package
  • Fedora 42 Fedora 41
  • Homebrew package MacPorts package
  • Haiku Ports Void Linux