
UNIX-подобный фреймворк для обратной разработки и набор инструментов командной строки
<a href="https://radare.org/"><img border=0 src="https://assets.kitploit.com/production/public/readmes/3006/3a698148c5a0a1bc714cb3ac4439316f08cf2349b8cd75366bc1b9d2bf7f9c22.png" alt="screenshot" align="left" width="128px"></a>
## Radare2: свободный фреймворк для реверс-инжиниринга для Unix-гиков
[](https://github.com/radareorg/radare2/actions/workflows/ci.yml?query=branch%3Amaster) [](https://github.com/radareorg/radare2/actions/workflows/build.yml?query=branch%3Amaster) [](https://github.com/radareorg/radare2/actions/workflows/tcc.yml)
[](https://bestpractices.coreinfrastructure.org/projects/741) [](https://scan.coverity.com/projects/416) [](https://discord.gg/YBey7CR9jf)
Текущая ветка git `master` — `6.2.5`, следующий релиз будет `6.2.6`.
### Описание
r2 — это полная переработка radare. Он предоставляет набор библиотек, инструментов и
плагинов для упрощения задач реверс-инжиниринга. Распространяется под лицензией LGPLv3, хотя
каждый плагин может иметь свою лицензию (подробности см. в `r2 -Lj`)
Проект **radare** начинался как простой командный шестнадцатеричный редактор,
ориентированный на форензику. Сегодня r2 — это полнофункциональный низкоуровневый командный инструмент
с поддержкой написания скриптов на встроенном интерпретаторе Javascript или через r2pipe.
r2 может редактировать файлы на локальных жёстких дисках, просматривать память ядра и отлаживать программы
локально или через удалённые серверы gdb/windbg. Широкая поддержка архитектур в r2 позволяет
анализировать, эмулировать, отлаживать, модифицировать и дизассемблировать любой бинарный файл.
<p align="center">
<a href="https://www.radare.org/"><img src="https://assets.kitploit.com/production/public/readmes/3006/c19b136adc5b00ffa9e295f2624beea0f7fb78e36cfa8081c31116b9a5723a85.png" alt="screenshot" align="center" border=0 width="600px"></a>
</p>
## Установка
Скачайте последние [выпущенные](https://github.com/radareorg/radare2/releases) бинарные файлы.
Рекомендуемый способ установки radare2 — из исходников Git-репозитория:
```sh
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`](https://github.com/radareorg/radare2/blob/master/dist/nix/README.md).
### Сборка из исходников
* r2 можно установить из `git` или через `pip` с помощью `r2env`.
* Сборки для Windows требуют meson и msvc или mingw в качестве компиляторов
* Чтобы удалить текущую сборку r2, выполните `make uninstall`
* Чтобы удалить ВСЕ системные установки r2, выполните: `sudo make purge`
В Windows используйте .bat-скрипты и msvc:
```bat
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](https://github.com/radareorg/iaito): Официальный графический интерфейс на Qt
* [keystone](https://github.com/radareorg/radare2-extras/tree/master/keystone) Инструкции ассемблера с использованием библиотеки Keystone
* [decai](https://github.com/radareorg/r2ai) Декомпилятор на основе ИИ
* [r2ai](https://github.com/radareorg/r2ai) Запустите языковую модель на localhost с Llama внутри r2!
* [r2dec](https://github.com/wargio/r2dec-js): Декомпилятор на основе r2, написанный на JS, доступный через команду `pdd`
* [r2diaphora](https://github.com/FernandoDoming/r2diaphora): Движок бинарного диффинга [Diaphora](https://github.com/joxeankoret/diaphora) поверх radare2
* [r2flutter](https://github.com/trufae/r2flutter): Анализ AOT-снимков Dart/Flutter для приложений Android и iOS
* [r2frida](https://github.com/nowsecure/r2frida): Плагин ввода-вывода frida. Запустите r2 с `r2 frida://0`, чтобы использовать его
* [r2ghidra](https://github.com/radareorg/r2ghidra): Автономный нативный декомпилятор ghidra, доступный через `pdg`
* [r4ghidra](https://github.com/radareorg/r4ghidra): Почувствуйте радость radare внутри вашей Ghidra
* [r2papi](https://github.com/radareorg/radare2-r2papi) Высокоуровневый API поверх r2pipe
* [r2pipe](https://github.com/radareorg/radare2-r2pipe) Скриптинг radare2 из любого языка программирования
* [r2poke](https://github.com/radareorg/radare2-extras/tree/master/r2poke) Интеграция с GNU/Poke для расширенных возможностей разбора бинарных файлов
* [goresym](https://github.com/hanemile/radare2-GoReSym): Импорт символов GoReSym в виде флагов
* [r2yara](https://github.com/radareorg/r2yara) Запуск Yara из r2 или использование примитивов r2 из Yara
* [radius2](https://github.com/radareorg/radius2): Быстрый движок символьного исполнения на основе boolector и esil
* [r2sarif](https://github.com/radareorg/r2sarif) импорт/расширение/экспорт документов SARIF
* [r2hermes](https://github.com/radareorg/r2hermes) Дизассемблер и анализатор байт-кода React Native Hermes
* [r2renef](https://github.com/Ahmeth4n/r2renef) Плагин ввода-вывода Renef для Radare2 — динамическая инструментация Android
* [r2unity](https://github.com/radareorg/r2unity): Инспекция метаданных Unity IL2CPP и нативных бинарных файлов из radare2
* [warrp](https://github.com/radareorg/warrp) Нативный плагин radare2 для формата WARP из binary ninja
## Использование
Это первые шаги по использованию r2; читайте книгу или ищите руководства для получения дополнительных сведений
```sh
$ 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](https://github.com/radareorg/radare2-pm).
```sh
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
```
## Ресурсы
* [Официальная книга](https://book.rada.re): Читайте об использовании r2
* [COMMUNITY.md](https://github.com/radareorg/radare2/blob/master/COMMUNITY.md): Взаимодействие с сообществом и неформальные рекомендации
* [CONTRIBUTING.md](https://github.com/radareorg/radare2/blob/master/CONTRIBUTING.md): Информация о сообщении о проблемах и
внесении вклада. См. также [Внесение вклада](#contributing)
* [DEVELOPERS.md](https://github.com/radareorg/radare2/blob/master/DEVELOPERS.md): Рекомендации по разработке для r2
* [SECURITY.md](https://github.com/radareorg/radare2/blob/master/SECURITY.md): Инструкции по сообщению об уязвимостях
* [USAGE.md](https://github.com/radareorg/radare2/blob/master/USAGE.md): Некоторые примеры команд
* [INSTALL.md](https://github.com/radareorg/radare2/blob/master/INSTALL.md): Инструкции по установке с помощью make или meson
## Документация
Узнайте больше о r2, посмотрев [выступления на youtube](https://www.youtube.com/c/r2con) с [r2con](https://rada.re/con). Также есть множество блог-постов, слайдов и [официальная книга radare2](https://book.rada.re), но всегда хорошая идея — присоединиться к любому из официальных чатов и задать там свои вопросы или оставить отзыв.
## Сообщество
* Веб-сайт: [https://www.radare.org/](https://www.radare.org/)
* Discord: [Сервер](https://discord.gg/YBey7CR9jf)
* Mastodon: [@radareorg](https://infosec.exchange/@radareorg)
* Telegram: [Основной](https://t.me/radare) и [Дополнительный](https://t.me/radare_side) каналы
* [irc.libera.chat](https://libera.chat): `#radare`, `#radare_side`
* [Matrix](https://matrix.to/#/#radare:matrix.org): `#radare:matrix.org`
# Поддерживаемые платформы
## Операционные системы
Windows (начиная с XP для 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.
## Архитектуры
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
## Статус упаковки
* [](https://snapcraft.io/radare2)
* [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)
* [](https://repology.org/project/radare2/versions) [](https://repology.org/project/radare2/versions)