Radare2 (также известный как r2) — свободный кроссплатформенный фреймворк для реверс-инжиниринга, написанный на Си, который включает дизассемблер, шестнадцатеричный редактор, анализатор кода и т. д. Используется при реверсе и отладке вредоносного ПО и прошивок.
История и разработка
Проект radare начал разрабатывать хакер с ником pancake в 2006 году, и долгое время, по сути, он был единственным разработчиком. Изначально проект задумывался как шестнадцатеричный редактор с простым консольным интерфейсом, позволявший находить и восстанавливать данные с жестких дисков. Поэтому его называли «инструментом для компьютерной криминалистической экспертизы». В дальнейшем, по сообщению авторов, произошло изменение концепции проекта, и целью разработчиков стало создание полноценной платформы, предназначенной для анализа бинарных файлов, в частности — исполняемых.
В 2010 году произошел «редизайн» фреймворка, после чего проект стал разрастаться и пополняться новыми функциями, что позволило его использовать не только как редактор, но и как дизассемблер и анализатор как кода, так и шелл-кодов.
Состав radare2
Фреймфорк radare2 доступен в виде библиотек и утилит:
- Rasm2 — ассемблер/дизассемблер фреймворка, выполнен как отдельное приложение и позволяет дизассемблировать как файлы, так и отдельные строки.
- Rabin2 — утилита для работы с различными исполняемыми файлами (ELF, PE, Java class, Mach-O). Используется для получения различной информации о файле: импортируемых функций, экспортируемых символов, секций, подключаемых библиотек и прочего.
- Rahash2 — утилита для получения хеш-значений во многих форматах как от файлов, так и от определённых частей данных.
- Radiff2 — утилита для сравнения двоичных файлов.
- Rafind2 — утилита для поиска как строк с помощью и без регулярных выражений, так и данных в шестнадцатеричном формате или по двоичному шаблону.
- Ragg2 — экспериментальная утилита для компиляции небольших программ для архитектур x86/x64 и ARM.
- Rax2 — утилита для конвертации данных в различных форматах.
- Rarun2 — позволяет запускать программу с различными параметрами среды, аргументами, правами и каталогами.
- Radeco — декомпилятор.
Cutter
Cutter — интерактивный дизассемблер основаный на radare2.