
radare2 v6.2.0
UNIX-подобный фреймворк для обратной разработки и набор инструментов командной строки
Radare2: Libre Reversing Framework for Unix Geeks
Текущая ветка git master — 6.2.0, следующий релиз будет 6.2.1.
Описание
r2 — это полная переработка radare. Он предоставляет набор библиотек, инструментов и
плагинов для упрощения задач реверс-инжиниринга. Распространяется под лицензией LGPLv3, хотя
каждый плагин может иметь собственную лицензию (подробности см. в r2 -Lj).
Проект radare начинался как простой шестнадцатеричный редактор командной строки, ориентированный на форензику. Сегодня r2 — это полнофункциональный низкоуровневый инструмент командной строки с поддержкой скриптинга на встроенном интерпретаторе Javascript или через r2pipe.
r2 может редактировать файлы на локальных жёстких дисках, просматривать память ядра и отлаживать программы локально или через удалённые gdb/windbg-серверы. Широкая поддержка архитектур в r2 позволяет вам анализировать, эмулировать, отлаживать, модифицировать и дизассемблировать любые бинарные файлы.
Установка
Скачайте последние выпущенные бинарные файлы.
Рекомендуемый способ установки radare2 — из исходников Git-репозитория:
git clone https://github.com/radareorg/radare2
radare2/sys/install.sh
- Запустите
sys/install.shдля стандартной установки acr+make+symlink - Поддерживаются сборки meson/ninja (также работают muon/samu) и make.
Nix
radare2 предоставляет Nix-пакеты в dist/nix.
Сборка из исходников
- r2 можно установить из
gitили черезpipс помощьюr2env. - Для сборки в Windows требуются meson и msvc или mingw в качестве компиляторов.
- Чтобы удалить текущую сборку r2, выполните
make uninstall - Чтобы удалить ВСЕ системные установки r2, выполните:
sudo make purge
В Windows используйте .bat-скрипты и 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
Популярные плагины:
С помощью инструмента r2pm вы можете просматривать и устанавливать множество плагинов и инструментов, использующих radare2.
- iaito: официальный графический интерфейс на Qt
- keystone: ассемблирование инструкций с использованием библиотеки Keystone
- decai: декомпилятор на основе ИИ
- r2ai: запуск языковой модели локально через Llama внутри r2!
- r2dec: декомпилятор на основе r2, написанный на JS, доступен по команде
pdd - r2diaphora: Diaphora's binary diffing engine on top of radare2
- r2flutter: анализ AOT-снимков Dart/Flutter для Android и iOS-приложений
- r2frida: frida-плагин ввода-вывода. Запустите r2 с
r2 frida://0, чтобы использовать его - r2ghidra: автономный нативный декомпилятор ghidra, доступный по команде
pdg - r4ghidra: ощутите радость radare внутри вашей Ghidra
- r2papi: высокоуровневый API поверх r2pipe
- r2pipe: скриптинг radare2 с любого языка программирования
- r2poke: интеграция с GNU/Poke для расширенных возможностей анализа бинарных файлов
- goresym: импорт символов GoReSym в качестве флагов
- r2yara: запуск Yara из r2 или использование примитивов r2 из Yara
- radius2: быстрый движок символьного выполнения на основе boolector и esil
- r2sarif: импорт/расширение/экспорт SARIF-документов
- r2hermes: дизассемблер и анализатор байткода React Native Hermes
- r2renef: IO-плагин Renef для Radare2 — динамическая инструментация Android
- r2unity: просмотр метаданных Unity IL2CPP и нативных бинарных файлов из radare2
- warrp: нативный плагин radare2 для формата WARP от binary ninja
Использование
Ниже приведены первые шаги по использованию r2. Для более подробной информации читайте книгу или найдите обучающие материалы.
$ 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
Многие плагины включены в r2 по умолчанию. Но вы можете расширить его возможности, используя менеджер пакетов r2pm.
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
Ресурсы
- Официальная книга: читайте об использовании r2
- COMMUNITY.md: взаимодействие с сообществом и общие рекомендации
- CONTRIBUTING.md: информация о сообщении об ошибках и участии в разработке. См. также Contributing
- DEVELOPERS.md: рекомендации по разработке для r2
- SECURITY.md: инструкции по сообщению об уязвимостях
- USAGE.md: несколько примеров команд
- INSTALL.md: инструкции по установке с помощью make или meson
Документация
Узнайте больше о r2, посмотрев выступления на YouTube с r2con. Также есть множество записей в блогах, слайдов и официальная книга radare2, но всегда полезно зайти в любой из официальных чатов и задать там свои вопросы или оставить отзыв.
Сообщество
- Веб-сайт: https://www.radare.org/
- Discord: Сервер
- Mastodon: @radareorg
- Telegram: каналы Основной и Дополнительный
- irc.libera.chat:
#radare,#radare_side - Matrix:
#radare:matrix.org
Поддерживаемые платформы
Операционные системы
Windows (начиная с XP для x86/x64/arm64), Linux, Darwin, GNU/Hurd, Apple {Mac,i,iPad,watch}OS, Android, Wasmer, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, AIX, Haiku, Vinix, FirefoxOS.
Архитектуры
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.
Форматы файлов
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, и N3DS ...
Файловые системы
Монтирование в пользовательском пространстве различных файловых систем, таких как NTFS, FAT, HFS+, EXT, APFS, BeosFS, BFS, MINIX, ReiserFS, SFS, ubifs, ufs, jfs, ISO9660, UDF, xfs

