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)

Searching Database…

25.1K ·GitHub
Что это такое?r2 (radare2) — свободный фреймворк для реверс-инжиниринга в Unix-подобных системах: набор библиотек, утилит и плагинов для анализа, дизассемблирования, эмуляции, отладки и изменения бинарных файлов.
Так это библиотека, которую я подключаю к своему коду, или программа, которую я запускаю?И то и другое, но в основе — полнофункциональная низкоуровневая утилита командной строки. Проект начинался как простой консольный hex-редактор, ориентированный на форензику (криминалистический анализ данных).
Что нужно установить заранее?Лишь набор инструментов сборки в Unix-подобной системе: make, либо meson/ninja (подойдёт и muon/samu). В Windows для сборки нужны meson и компилятор msvc или mingw.
Там есть графический интерфейс, или всё только в терминале?Изначально r2 работает только в терминале; графический вход — это iaito, официальная оболочка на Qt, которая ставится как плагин.
На чём он вообще работает?Почти везде: Windows (XP и новее, x86/x64/arm64), Linux, macOS и iOS, Android, BSD-системы, QNX, Solaris, Haiku и другие — классический кроссплатформенный Unix-инструмент.
С лицензией всё просто?В основном да: ядро под LGPLv3, но каждый плагин может распространяться под своей лицензией — перед тем как что-то встраивать в свой продукт, проверьте детали через r2 -Lj.
Там есть декомпилятор?Да, несколько: r2ghidra открывает доступ к родному декомпилятору Ghidra через команду pdg, r2dec — декомпилятор на JavaScript под командой pdd, а decai — декомпилятор на основе ИИ.
Можно ли управлять им из других языков программирования?Да — r2pipe позволяет управлять r2 из любого языка программирования, r2papi добавляет поверх него высокоуровневый API, а внутри самого r2 есть интерпретатор JavaScript.
Какие архитектуры процессоров он умеет дизассемблировать?Десятки: x86, ARM, MIPS, RISC-V, PowerPC, SPARC и m68k, а также встраиваемые и старые чипы вроде AVR, Z80, 6502 и 8051, плюс байткод Java/Dalvik, WebAssembly и MSIL.
Какие форматы файлов он открывает?Бинарники ELF, PE/PE+, Mach-O и COFF, файлы DEX и Java-классов, WASM, образы BIOS/UEFI, кэши ядра, минидампы Windows, а также форматы консолей вроде GB/GBA, NDS и PSX.
Creator
radareorg
Size
207.9 MB
Stars
25.1K
Age
14y
Commits · 90 Days