
radare2 v6.2.2
UNIX-подобный фреймворк для обратной разработки и набор инструментов командной строки
Radare2: Libre Reversing Framework для Unix-гиков
Текущая ветка master в git — 6.2.2, следующий релиз будет 6.2.4.
Описание
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 настройка python, meson, ninja
configure.bat REM запуск meson b + vs project
make.bat REM запуск ninja -C b
prefix\bin\radare2.exe
Популярные плагины:
С помощью инструмента r2pm вы можете просматривать и устанавливать множество плагинов и инструментов, использующих radare2.
- iaito: Официальный графический интерфейс на Qt
- keystone Ассемблирование инструкций с использованием библиотеки Keystone
- decai Декомпилятор на основе ИИ
- r2ai Запуск языковой модели локально с Llama внутри r2!
- r2dec: Декомпилятор на основе r2, написанный на JS, доступен через команду
pdd - r2diaphora: Движок бинарного диффинга Diaphora поверх 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 Плагин ввода-вывода Renef для Radare2 — динамическая инструментация Android
- r2unity: Инспекция метаданных Unity IL2CPP и нативных бинарных файлов из radare2
- warrp Нативный плагин radare2 для формата WARP от binary ninja
Использование
Это первые шаги для использования r2. Читайте книгу или ищите учебные пособия для получения более подробной информации
$ r2 /bin/ls # открыть файл в режиме только для чтения
> aaa # проанализировать программу (r2 -A)
> afl # список всех функций (попробуйте aflt, aflm)
> px 32 # вывести 32-байтовый hexdump текущего блока
> s sym.main # перейти к main (используя имя флага)
> f~foo # отфильтровать флаги, соответствующие 'foo' (внутренний |grep)
> iS;is # список секций и символов (rabin2 -Ss)
> pdf; agf # дизассемблирование и ascii-art граф функций
> oo+;w hello # переоткрыть в режиме чтения-записи и записать строку
> ?*~... # интерактивный фильтр во всей справке по командам
> q # выход
Многие плагины включены в r2 по умолчанию. Но вы можете расширить его возможности, используя менеджер пакетов r2pm.
r2pm -s <слово> # поиск пакетов, соответствующих слову
r2pm -Uci <pkg> # обновить базу данных и выполнить чистую установку пакета
r2pm -u <pkg> # удалить указанный пакет
r2pm -l <pkg> # список установленных пакетов
Ресурсы
- Официальная книга: Читайте об использовании r2
- COMMUNITY.md: Взаимодействие с сообществом и общие рекомендации
- CONTRIBUTING.md: Информация о сообщении об ошибках и внесении вклада. См. также Вклад
- 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, Apple Dyldcache, Kernelcache, MCLF trustlets, DEX, ART, классы Java, образ загрузки Android, исполняемые файлы Plan9, Amiga HUNK, ZIMG, загрузчик MBN/SBL, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, DotNet, WASM (бинарный WebAssembly), эмулятор Commodore VICE, 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

