Открыть главное меню

Radare2 (также известный как r2) — свободный кроссплатформенный фреймворк для реверс-инжиниринга, написанный на Си, который включает дизассемблер, шестнадцатеричный редактор, анализатор кода и т. д[3]. Используется при реверсе и отладке вредоносного ПО и прошивок[4][5].

Radare2
Radare2.svg
Radare2 webui.png
Веб-интерфейс Radare2
Тип Дизассемблер и фреймворк для реверс-инжиниринга
Автор pancake
Разработчик pancake
Написана на Си
Интерфейс командная строка, графический, веб-интерфейс
Операционная система Linux, BSD, OS X, Windows, Solaris, Android, iOS, Firefox OS, MeeGo, QNX, Haiku
Языки интерфейса английский
Первый выпуск февраль 2006
Аппаратная платформа Cross-platform
Последняя версия
Состояние Активное
Лицензия LGPL
Сайт radare.org

История и разработкаПравить

Проект radare[6] начал разрабатывать хакер с ником pancake в 2006 году, и долгое время, по сути, он был единственным разработчиком. Изначально проект задумывался как шестнадцатеричный редактор с простым консольным интерфейсом, позволявший находить и восстанавливать данные с жестких дисков. Поэтому его называли «инструментом для компьютерной криминалистической экспертизы». В дальнейшем, по сообщению авторов, произошло изменение концепции проекта, и целью разработчиков стало создание полноценной платформы, предназначенной для анализа бинарных файлов, в частности — исполняемых[7].

В 2010 году произошел «редизайн» фреймворка, после чего проект стал разрастаться и пополняться новыми функциями, что позволило его использовать не только как редактор, но и как дизассемблер и анализатор как кода, так и шелл-кодов.

Состав radare2Править

Фреймфорк radare2 доступен в виде библиотек и утилит:

  • Rasm2 — ассемблер/дизассемблер фреймворка, выполнен как отдельное приложение и позволяет дизассемблировать как файлы, так и отдельные строки.
  • Rabin2 — утилита для работы с различными исполняемыми файлами (ELF, PE, Java class, Mach-O). Используется для получения различной информации о файле: импортируемых функций, экспортируемых символов, секций, подключаемых библиотек и прочего.
  • Rahash2 — утилита для получения хеш-значений во многих форматах как от файлов, так и от определённых частей данных.
  • Radiff2 — утилита для сравнения двоичных файлов.
  • Rafind2 — утилита для поиска как строк с помощью и без регулярных выражений, так и данных в шестнадцатеричном формате или по двоичному шаблону.
  • Ragg2 — экспериментальная утилита для компиляции небольших программ для архитектур x86/x64 и ARM.
  • Rax2 — утилита для конвертации данных в различных форматах.
  • Rarun2 — позволяет запускать программу с различными параметрами среды, аргументами, правами и каталогами.
  • Radeco[8] — декомпилятор.

BokkenПравить

Bokken[9] — графический интерфейс на PyGtk для radare2.

Поддерживаемые архитектуры/форматы файловПравить

Поддерживаемые архитектуры Поддерживаемые форматы файлов

История версийПравить

Цвет Значение
Красный Старая версия
Зелёный Текущая версия
Версия radare2 Дата выпуска Особенности
0.9.2 2 октября 2012
  • Поддержка новых CPU: Z80, dcpu16, m68k и arc.
  • Добавлена поддержка следующих платформ: dalvik, mips, arm.
  • Добавлена обработка zip:// и apk://.
  • Улучшен анализатор 16-битного x86-кода.
  • Добавлено множество команд, таких как ?i, ?I, ?k, b+, b- и т. д.
  • Теперь требуется valabind 0.7.2.
  • Исправлена ошибка при декодировании опкода FF25 в архитектуре x86_64.
  • Начата реализация поддержки DWARF.
  • Добавлена поддержка jmp [(rip+)0xoffset] и call [(rip+)0xoffset].
0.9.6 11 ноября 2013
  • Поддержка цветовых схем и вывода стрелок/рамок символами юникода.
  • Расположение конфигурационных файлов приведено в соответствии со спецификациями XDG.
  • Поддержка платформ AArch64, Texas Instruments C55x+, 8051, ARCompact.
  • Автоматическое распознавание и загрузка исполняемых файлов TE (Terse Executable), образов BIOS/UEFI.
  • Поддержка классов Java 7.
  • Поддержка объявления типов структур и множеств, например командой 'td'.
  • Python-биндинги переписаны с использованием ctypes, вместо swig.
  • Поддержка биндингов на Java JNI и D.
  • Для упрощения работы в r2 добавлена базовая поддержка команд 'clear', 'ls', 'cat', 'cd', 'pwd'.
  • Все команды могут быть соединены через пайпы '|' как и в обычном POSIX shell.
  • Начат рефакторинг и переход ядра на SDB (простая база данных «ключ-значение») для хранения метаинформации (функции, метки, комментарии и многое другое).
0.9.9 5 июня 2015
1.0[10] 6 ноября 2016 Добавлено автодополнение команд, цветовые темы, форматы menuetOS, KolibriOS, DOS4GW, улучшены парсеры PE, MACH0, ELF, COFF символов, улучшена поддержка Android
1.0.2[10] 8 ноября 2016

См. такжеПравить

ПримечанияПравить

  1. Release 3.9.0 — 2019.
  2. Release 3.9.0 — 2019.
  3. Joshua J. Drake, Zach Lanier, Collin Mulliner, Pau Oliva Fora, Stephen A. Ridley. Android Hacker's Handbook. — John Wiley & Sons, 2014. — С. 495. — 576 с. — ISBN 9781118922255.
  4. Workshop «Реверсинг и отладка вредоносного ПО и прошивок с помощью фреймворка radare2»
  5. Ken Dunham, Shane Hartman, Manu Quintans, Jose Andre Morales, Tim Strazzere. Android Malware and Analysis. — CRC Press, 2014-10-24. — С. 146. — 246 с. — ISBN 9781482252194.
  6. Репозиторий Git radare (англ.)
  7. Radare documentation, Chapter 1: Introduction, 1.1 History (англ.)
  8. Репозиторий Git radeco (англ.).
  9. Домашняя страница Bokken (англ.)
  10. 1 2 Releases · radare/radare2 · GitHub

ЛитератураПравить

На английском языке

СсылкиПравить