Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Radare2 (также известный как r2 ) - это полный фреймворк для обратного проектирования и анализа двоичных файлов; состоит из набора небольших утилит, которые можно использовать вместе или независимо от командной строки . Построенный на основе дизассемблера для компьютерного программного обеспечения, который генерирует исходный код на языке ассемблера из машинно-исполняемого кода, он поддерживает множество исполняемых форматов для различных архитектур процессоров и операционных систем .

История [ править ]

Radare2 был создан в феврале 2006 года [3] с целью предоставить бесплатный и простой интерфейс командной строки для шестнадцатеричного редактора, поддерживающего 64-битные смещения для поиска и восстановления данных с жестких дисков в криминалистических целях. С тех пор проект расширился, и его цель изменилась, чтобы предоставить полную основу для анализа двоичных файлов, придерживаясь нескольких принципов философии Unix . [4]

В 2009 году было принято решение полностью переписать его, чтобы обойти ограничения первоначального дизайна. С тех пор проект продолжал расти [5] и привлек нескольких постоянных разработчиков.

В 2016 году первая r2con состоялась в Барселоне , [6] [7] собрать более 100 участников, показывая различные переговоры о различных функций и улучшений в рамках.

Radare2 был в центре внимания многочисленных презентаций на нескольких громких конференциях по безопасности, таких как recon , [8] hack.lu , [9] 33c3 . [3]

Radare2 был раздвоенный в декабре 2020 года , как Rizin некоторыми членами radare2 и Cutter команды разработчиков ядра , которые стремятся «внимание на удобство, стабильность и рабочих функций, которая стремится обеспечить благоприятную среду для разработчиков и пользователей.» [10]

Особенности и использование [ править ]

Radare2 требует сложного обучения, поскольку у него нет графического интерфейса . Первоначально построенный на основе шестнадцатеричного редактора, теперь он имеет множество инструментов и функций, а также привязки для нескольких языков. [11] Между тем у него есть WebUI [12] и внешний Qt GUI под названием Cutter (ранее назывался Iaito). [13]

Статический анализ [ править ]

Radare2 может собирать и дизассемблировать множество программ, в основном исполняемых файлов, но он также может выполнять двоичное сравнение с графиками, [14] извлекать информацию, такую ​​как символы перемещений , и различные другие типы данных. Внутри он использует базу данных NoSQL с именем sdb для отслеживания аналитической информации, которая может быть выведена radare2 или добавлена ​​пользователем вручную. Поскольку он может работать с искаженными двоичными файлами, он также использовался исследователями безопасности программного обеспечения для целей анализа. [15] [16] [17]

Динамический анализ [ править ]

Radare2 имеет встроенный отладчик более низкого уровня, чем GDB . Он также может взаимодействовать с GDB и WineDBG [18] для отладки двоичных файлов Windows в других системах. Кроме того, его также можно использовать в качестве отладчика ядра с VMWare .

Эксплуатация программного обеспечения [ править ]

Благодаря наличию дизассемблера и низкоуровневого отладчика, radare2 может быть полезен разработчикам эксплойтов . Программное обеспечение имеет функции, которые помогают в разработке эксплойтов, такие как поисковая машина ROP-гаджетов и обнаружение смягчения . Из-за гибкости программного обеспечения и поддержки многих форматов файлов оно часто используется командами захвата флагов [19] [20] и другим персоналом, ориентированным на безопасность. [21] radare2 также может помочь в создании шелл-код с его инструментом «ragg2», похожий на Metasploit .

Резак [ править ]

Cutter был первым официальным графическим пользовательским интерфейсом (GUI) для radare2. Он в основном нацелен «на тех, кто [se] еще не является пользователем radare2 из-за кривой обучения, потому что им не нравятся приложения CLI или из-за сложности / нестабильности radare2». Это был преемник ранее известного проекта Iaito, который пострадал от слишком малого обслуживания после того, как стал открытым исходным кодом на GitHub . Позже Iaito был разветвлен и сильно переписан, снова на C ++ и Qt в качестве основы. Эти варианты дизайна позволяют ему быть кроссплатформенным приложением, ориентированным на Linux, MacOS, а также Windows.. Тогда же он был переименован в Cutter. Цель Cutter - экспортировать обширную функциональность radare2 в современный удобный графический интерфейс, который может конкурировать с другими основными структурами статического и динамического анализа, такими как Hex-Rays Interactive Disassembler или Binary Ninja .

В 2020 году основная команда Cutter, которая также была частью основной команды radare2, покинула radare2 и стала соучредителем Rizin. После этого Cutter переключился с radare2 на Rizin в качестве бэкэнда. [22] В настоящее время Iaito является форком Cutter с последним работающим коммитом с radare2.

Поддерживаемые архитектуры / форматы [ править ]

  • Распознаваемые форматы файлов
    • COFF и производные, включая Win32 / 64 / generic PE
    • ELF и производные
    • Mach-O ( Мах ) и производные
    • Картриджи для Game Boy и Game Boy Advance
    • MZ ( MS-DOS )
    • Класс Java
    • Байт-код Lua 5.1 и Python
    • дамп кеш-памяти dyld [23]
    • Декс ( Dalvik EXecutable)
    • Формат Xbox xbe [24]
    • Бинарные файлы Plan9
    • Виртуальная машина WinRAR [25]
    • Файловая система, такая как семейство ext , ReiserFS , HFS + , NTFS , FAT , ...
    • Форматы файлов DWARF и PDB для хранения дополнительной отладочной информации
    • Необработанный двоичный файл
  • Наборы инструкций
    • Семейство Intel x86
    • ARM архитектура
    • Серия Atmel AVR
    • Brainfuck
    • Motorola 68k и H8
    • Ricoh 5A22
    • MOS 6502
    • Виртуальная машина Smartcard PSOS
    • Виртуальная машина Java
    • MIPS : mipsb / mipsl / mipsr / mipsrl / r5900b / r5900l
    • PowerPC
    • Семья SPARC
    • Серия TMS320Cxxx
    • Ядро Argonaut RISC
    • Intel 51 серии: 8051 / 80251b / 80251s / 80930b / 80930s
    • Зилог Z80
    • CR16
    • Кембриджское силиконовое радио (CSR)
    • AndroidVM Dalvik
    • DCPU-16
    • Байт-код EFI
    • Game Boy (в стиле z80)
    • Байт-код Java
    • Мальболге
    • MSIL / CIL
    • Ниос II
    • SuperH
    • Spc700
    • Systemz
    • TMS320
    • V850
    • Пробел
    • XCore

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

  1. ^ "Релизы · radareorg / radare2" . github.com . Проверено 26 апреля 2021 .
  2. ^ Репозиторий Git
  3. ^ a b "Радара демистифицирована" . Медиа-сайт компьютерного клуба «Хаос» . CCC. 2016-12-29 . Проверено 29 декабря 2016 .
  4. ^ «Я написал более 300 000 строк кода для Radare» . www.cigtr.info . Архивировано из оригинала на 2018-11-03 . Проверено 21 января 2017 .
  5. ^ CCC, радар демистифицирован , получено 21 января 2017 г.
  6. ^ "r2con 2016" . Группа НКЦ . Проверено 21 января 2017 .
  7. ^ Баккен, Сэм (2016-08-09). «Хакер, стоящий за инструментом обратного проектирования Radare с открытым исходным кодом ...» NowSecure . Проверено 21 января 2017 .
  8. ^ «Расписание разведки на 2015 год» . recon.cx . Проверено 21 января 2017 .
  9. ^ "Talks at Hack.lu 2015" . Hack.lu 2015 . Проверено 21 января 2017 .
  10. ^ Анонсируем Ризин!
  11. ^ Репозиторий Git для привязок radare2
  12. ^ Новый веб-интерфейс
  13. ^ Резак
  14. ^ Визуализация "Binary Diffing" в Linux с Radare2
  15. ^ AlienVault - OSX / Leverage.a Анализ
  16. ^ Крейг Хеффнер - Обнаружение и устранение бэкдоров в потребительских прошивках
  17. ^ PHDays IV, 21 мая 2014 года 'Антон Кочков', Применение radare2 иллюстрируется Шейлок / Caphaw.D и анализа Snakso.A
  18. ^ Архив Gmane о поддержке WinDBG в radare2
  19. ^ Сектор Dragon
  20. ^ LSE
  21. ^ Phrack - ручное бинарное искажение с помощью радара
  22. ^ Ризин (2020-12-05). «Часто задаваемые вопросы» . Ризин . Проверено 26 апреля 2021 .
  23. ^ Кеш Dydl - iphonedevwiki.net
  24. ^ .XBE Формат файла 1.1
  25. ^ Тэвис Орманди - Развлечение с ограниченным программированием

Дальнейшее чтение [ править ]

  • Майджин (2016). Книга radare2 . Проверено 20 марта 2016 года .
  • моноисточник (2016). Radare2 Исследования . Проверено 19 января 2017 года .
  • блин (2008). Оригинальная радиолокационная книга (PDF) . п. 152.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Блог Radare2
  • radare2 репозиторий Git
  • Репозиторий Cutter Git