Radare2

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

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

История и разработка[править | править код]

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

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

Состав radare2[править | править код]

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

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

Cutter[править | править код]

Cutter[8] — интерактивный дизассемблер основанный на 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[9] 6 ноября 2016 Добавлено автодополнение команд, цветовые темы, форматы menuetOS, KolibriOS, DOS4GW, улучшены парсеры PE, MACH0, ELF, COFF символов, улучшена поддержка Android
1.0.2[9] 8 ноября 2016

См. также[править | править код]

Примечания[править | править код]

  1. Release 5.8.8 — 2023.
  2. 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.
  3. Workshop «Реверсинг и отладка вредоносного ПО и прошивок с помощью фреймворка radare2». Дата обращения: 4 августа 2015. Архивировано 21 июля 2015 года.
  4. Ken Dunham, Shane Hartman, Manu Quintans, Jose Andre Morales, Tim Strazzere. Android Malware and Analysis. — CRC Press, 2014-10-24. — С. 146. — 246 с. — ISBN 9781482252194.
  5. Репозиторий Git radare Архивная копия от 11 июня 2018 на Wayback Machine (англ.)
  6. Radare documentation, Chapter 1: Introduction, 1.1 History Архивная копия от 27 ноября 2015 на Wayback Machine (англ.)
  7. Репозиторий Git radeco Архивная копия от 18 марта 2017 на Wayback Machine (англ.).
  8. Домашняя страница Cutter Архивная копия от 4 марта 2022 на Wayback Machine (англ.)
  9. 1 2 Releases · radare/radare2 · GitHub. Дата обращения: 3 декабря 2016. Архивировано 12 апреля 2017 года.

Литература[править | править код]

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

Ссылки[править | править код]