radare2 (r2) — фреймворк для дизассемблирования, отладки, анализа и манипуляции бинарными файлами, набор инструментов (библиотек и консольных утилит) для реверс-инжиниринга.
Реверс-инжиниринг (обратный инжиниринг / обратная разработка) — исследование некоторого готового объекта с целью понять принцип его работы. Обычно применяется если создатель оригинального объекта не предоставил информации о структуре и способе создания/производства объекта (устройства или приложения).
Проект radare начат в 2006 году и изначально задумывался как шестнадцатеричный редактор (Hex-редактор / Hex Editor) с простым консольным интерфейсом, позволявший находить и восстанавливать данные с жестких дисков. В дальнейшем произошло изменение концепции проекта, по словам разработчиков целью проекта стало создание полноценной платформы для анализа бинарных файлов (в частности исполняемых).
В 2010 году произошел "редизайн" фреймворка, после чего проект значительно расширился и пополнился новыми функциями, что позволяет использовать его не только как Hex-редактор, но и как дизассемблер, как анализатор кода и шелл-кодов (двоичный исполняемый код). Особенностью фреймворка является его модульность и расширяемость, поддерживается скриптование (на Vala, Python, Perl, Lua, Ruby, Go, Java и JavaScript).
В состав radare2 входят библиотеки и утилиты:
- radeco - декомпилятор;
- rasm2 - ассемблер/дизассемблер фреймворка, выполнен как отдельное приложение и позволяет дизассемблировать как бинарные, так и отдельные строки;
- rabin2 - утилита для работы с различными исполняемыми файлами (ELF, PE, Java class, Mach-O), используется для получения различной информации о файле: импортируемые функции, экспортируемые символы, секции, подключаемые библиотеки и прочее;
- rahash2 - утилита для получения хеш-значений во многих форматах как от бинарных файлов, так и от определенных частей данных;
- radiff2 - утилита для сравнения бинарных файлов;
- rafind2 - утилита для поиска как строк с помощью и без регулярных выражений, так и данных в шестнадцатеричном формате или по бинарному шаблону;
- ragg2 - экспериментальная утилита для компиляции небольших приложений для x86/x64 и ARM-архитектур;
- rax2 - утилита для конвертации данных в различных форматах;
- rarun2 - позволяет запускать программу с различными параметрами среды, аргументами, правами и директориями;
radare2 кроме консольного интерфейса имеет визуальный режим и веб-интерфейс (WebUI), имеется и неофициальный графический интерфейс Bokken (Python/GTK).
Лицензия: GNU Lesser General Public License v3.0
Вы можете войти под своим логином или зарегистрироваться на сайте.