radare2 README

The project's README from github.com/radareorg/radare2. As one markdown file: README.md.

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.2.3, next release will be 6.2.4.

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

Nix

radare2 provides Nix packaging under dist/nix.

Source Build

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.

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

radare2 (radareorg/radare2)

debugger
Searching Database…

25.1K ·GitHub
What is this?r2 (radare2) is a libre reverse engineering framework for Unix-like systems: a set of libraries, tools and plugins for analyzing, disassembling, emulating, debugging and modifying binaries.
So is it a library I link against, or a tool I run?Both, but the center of it is a full-featured low-level command-line tool. The project began as a simple command-line hexadecimal editor focused on forensics.
What do I need to have installed first?Just a build toolchain on a Unix-like system: make, or meson/ninja (muon/samu works too). On Windows builds require meson and msvc or mingw as compilers.
Is there a GUI, or is it all terminal?Out of the box r2 is terminal-only; the graphical way in is iaito, the official Qt interface, which you install as a plugin.
What does it run on?Almost everything: Windows (XP or newer, x86/x64/arm64), Linux, macOS and iOS, Android, the BSDs, QNX, Solaris, Haiku and more — a classic cross-platform Unix tool.
Is the license straightforward?Mostly: the core is LGPLv3, but each plugin can ship under a different license — check r2 -Lj for the details before bundling anything.
Is there a decompiler?Yes, several: r2ghidra exposes the native Ghidra decompiler via the pdg command, r2dec is a JS-based decompiler on pdd, and decai is an AI-based decompiler.
Can I script it from other languages?Yes — r2pipe lets you drive r2 from any programming language, r2papi adds a high-level API on top of it, and r2 itself embeds a JavaScript interpreter.
Which CPU architectures can it disassemble?Dozens: x86, ARM, MIPS, RISC-V, PowerPC, SPARC and m68k alongside embedded and vintage chips like AVR, Z80, 6502 and 8051, plus Java/Dalvik bytecode, WebAssembly and MSIL.
What file formats can it open?ELF, PE/PE+, Mach-O and COFF binaries, DEX and Java class files, WASM, BIOS/UEFI images, kernel caches, Windows minidumps, plus console formats like GB/GBA, NDS and PSX.
Creator
radareorg
Size
206.1 MB
Stars
25.1K
Age
14y
Commits · 90 Days