
radare2 v6.2.0
UNIX-подобный фреймворк для обратной разработки и набор инструментов командной строки
Radare2: Свободный фреймворк для реверс-инжиниринга для Unix-гиков
Текущая ветка git master — 6.2.3, следующий релиз будет 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 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 Запустите языковую модель на localhost с 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 # 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

