Radare2 |
---|
|
Веб-интерфейс Radare2 |
Тип |
Дизассемблер и фреймворк для реверс-инжиниринга |
Автор |
pancake |
Разработчик |
pancake |
Написана на |
Си |
Интерфейс |
командная строка, графический, веб-интерфейс |
Операционная система |
Linux, BSD, OS X, Windows, 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 | |
Примечания
- ↑ Release 3.0.0 — 2018.
- ↑ 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.
- ↑ Workshop «Реверсинг и отладка вредоносного ПО и прошивок с помощью фреймворка radare2»
- ↑ Ken Dunham, Shane Hartman, Manu Quintans, Jose Andre Morales, Tim Strazzere. Android Malware and Analysis. — CRC Press, 2014-10-24. — С. 146. — 246 с. — ISBN 9781482252194.
- ↑ Репозиторий Git radare (англ.)
- ↑ Radare documentation, Chapter 1: Introduction, 1.1 History (англ.)
- ↑ Репозиторий Git radeco (англ.)
- ↑ Домашняя страница Bokken (англ.)
- 1 2 Releases · radare/radare2 · GitHub
Литература
- На английском языке
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .