Radare2

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Radare2
Radare2.svg
Radare2 webui.png
Веб-интерфейс Radare2
Тип

Дизассемблер и фреймворк для реверс-инжиниринга

Автор

pancake

Разработчик

pancake

Написана на

Си

Интерфейс

командная строка, графический, веб-интерфейс

Операционная система

Windows, OS X, Linux, BSD, Solaris, Android, iOS, Firefox OS, MeeGo, QNX, Haiku

Языки интерфейса

английский

Первый выпуск

февраль 2006

Аппаратная платформа

Cross-platform

Последняя версия
Состояние

Активное

Лицензия

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] — декомпилятор.

Bokken[править | править вики-текст]

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

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

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

  1. 1 2 https://api.github.com/repos/radare/radare2/releases
  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. 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 (англ.)
  6. Radare documentation, Chapter 1: Introduction, 1.1 History (англ.)
  7. Репозиторий Git radeco (англ.)
  8. Домашняя страница Bokken (англ.)
  9. 1 2 Releases · radare/radare2 · GitHub

Литература[править | править вики-текст]

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

Ссылки[править | править вики-текст]