====== Radare2 ====== **Radare2** (часто сокращается как **r2**) — это мощный, кроссплатформенный набор инструментов с открытым исходным кодом для анализа, дизассемблирования, отладки и реверс-инжиниринга исполняемых файлов. В отличие от IDA или x64dbg, Radare2 изначально проектировался как CLI-инструмент, что делает его особенно гибким, скриптуемым и пригодным для автоматизации задач. ===== Основные возможности ===== * Поддержка множества архитектур и форматов (ELF, PE, Mach-O, raw, firmware) * Дизассемблирование и ассемблирование (через встроенные движки) * Отладка в режиме реального времени (локально и удалённо) * Поддержка анализа бинарных файлов, секций, функций, строк, сигнатур * Гибкая система меток, комментариев, типов и символов * Графический режим (`Visual Mode`) и граф вызовов (CFG) * Расширенные возможности автоматизации: скрипты на r2pipe (Python, JS, Go и др.) * Возможность редактирования, патчинга и сохранения изменений * Совместим с **Cutter** — GUI-интерфейсом на основе Radare2 * Поддержка консольного UI, curses-графики и даже веб-интерфейса ===== Поддерживаемые форматы и архитектуры ===== * **Форматы файлов**: ELF, PE, Mach-O, raw, BIOS, firmware, .dex, .apk и др. * **Архитектуры**: - x86 / x64 - ARM / ARM64 - MIPS / PowerPC - RISC-V - MSP430, AVR, SPARC и многие другие ===== Платформы ===== * Windows * Linux * macOS * Android (через Termux) * BSD, Solaris, и др. ===== Компоненты и интерфейсы ===== * **CLI-интерфейс** (основной) * **Visual Mode** (графический TUI) * **Cutter** — графическая оболочка с декомпилятором * **WebUI** — веб-интерфейс на базе r2web * **r2pipe** — взаимодействие с r2 через скриптовые языки (Python, Node.js, Go, Ruby, Rust) ===== Расширение и автоматизация ===== * Сотни команд с префиксами (`af`, `pdf`, `aa`, `s`, `VV`, `V!`, и др.) * Скрипты на r2pipe (интерфейс к API radare2 из внешних языков) * Плагины: дизассемблеры, отладчики, анализаторы * Возможность написания своих плагинов (C, Python, V) ===== Применение ===== * Реверс-инжиниринг программ и прошивок * Анализ вредоносного ПО * Изучение неизвестных форматов и бинарей * Отладка локальных и удалённых процессов * Патчинг и модификация кода * Исследовательские и CTF-задачи ===== Cutter — графическая оболочка ===== * Современный интерфейс (Qt) * Построен поверх Radare2, полностью совместим * Поддерживает дизассемблирование, CFG-графы, редактирование памяти, псевдокод * Интеграция с **Decompiler RetDec** и другими средствами ===== Сравнение с аналогами ===== ^ Инструмент ^ Архитектуры ^ Декомпиляция ^ Отладка ^ Интерфейс ^ Расширяемость ^ Цена ^ | Radare2 | Многоархитектурный| Да (ограничено) | Да | CLI / TUI / Web | Да (r2pipe) | Бесплатно | | Ghidra | Многоархитектурный| Да | Да | GUI | Да | Бесплатно | | x64dbg | x86 / x64 | Частично | Да | GUI | Да | Бесплатно | | IDA Free | x86 / x64 | Нет | Да | GUI | Да | Бесплатно | | IDA Pro | Многоархитектурный| Да | Да | GUI | Да | $$$ | ===== Установка ===== * Windows: через MSYS2, Chocolatey, Winget или официальный архив * Linux: пакетный менеджер (`apt`, `pacman`, `dnf`) или компиляция из исходников * macOS: `brew install radare2` * Docker: `docker pull radareorg/radare2` ===== Полезные команды (CLI) ===== * `aa` — анализ всех функций * `pdf @ main` — показать дизассемблированную функцию * `VV` — граф вызовов * `s ` — перейти к адресу * `wx ` — записать байты * `db ` — установить breakpoint * `dc` — продолжить исполнение * `?` — помощь и поиск по командам ===== Лицензия и распространение ===== * Лицензия: GNU LGPL * Открытый исходный код * Поддержка и разработка: [https://rada.re/](https://rada.re/) * GitHub: [https://github.com/radareorg/radare2](https://github.com/radareorg/radare2) ===== Заключение ===== **Radare2** — мощная система для реверс-инжиниринга, гибкая и удобная для автоматизации, но требующая времени на освоение. В сочетании с Cutter предоставляет как CLI-, так и GUI-интерфейс, охватывая весь спектр задач анализа бинарных файлов. Отлично подходит для CTF, прошивок, исследования неизвестных архитектур и продвинутого использования в терминале. Рекомендуется для опытных пользователей, специалистов по безопасности и энтузиастов низкоуровневого анализа.