radare2 |
![]() |
Добавил(а) microsin |
Пакет программ radare2 это бесплатный и свободный тулчейн для упрощения некоторых низкоуровневых исследовательских задач, таких как криминалистика, реверс-инжиниринг ПО, написание эксплойтов, отладки, и т. п. В тулчейн радара входит набор библиотек (которые расширяются плагинами) и программ, которые могут использоваться для исследования бинарников, написанных почти на любом языке программирования. Функциональные возможности radare2: - Режимы: пакетный (batch), командной строки (commandline), визуально-интерактивный, панельный. [Установка] Рекомендуемый способ установки - компиляция из исходников git [2]. Альтернативно можете взять последний релиз (выпускается каждые 6 недель) на Github (см. релизы также на https://radare.mikelloc.com/). Установка выполняется следующим образом: $ git clone https://github.com/radareorg/radare2 $ cd radare2 ; sys/install.sh В случае проблем попробуйте: $ sudo make purge $ rm -rf shlr/capstone $ git clean -xdf $ git reset --hard @~50 $ sys/install.sh [Как использовать radare2] Radare2 может использоваться многими способами, от командной строки и шелл-скриптов до вызова индивидуальных инструментов: $ rasm2 -a arm -b 32 -d `rasm2 -a arm -b 32 nop` $ rabin2 -Ss /bin/ls # list symbols and sections $ rahash2 -a md5 /bin/ls $ rafind2 -x deadbeef bin Все программы также доступны как команды изнутри r2: $ r2 - > pa nop 90 > pad 90 nop Вот несколько общих команд, которые вы можете использовать в повседневной работе: $ r2 /bin/ls > aaa # анализировать все что можно > is # список символов > afl # список найденных функций > pdf # дизассемблирование > s < tab> # seek to address > v # вход в визуальный панельный режим Отладчик. Слой IO, выбранный URI файла, когда файл открывается в r2, может быть любым - локальным, remote r2 shell, полный диск, другой процесс в памяти, и т. д. Для упрощения жизни флаг -d будет использовать dbg://uri, чтобы породить процесс или подключиться к процессу для чтения/записи его памяти, модификации регистров и инспекции потока выполнения кода. Это отладчик низкого уровня. Не волнуйтесь, разработчики не пытаются заменить gdb/lldb. $ r2 -d gdb://127.0.0.1 > ds # step into > dso # step over > dr= # показать регистры столбцами > dbt # show backtrace > dsu entry0 # продолжить до точки входа > dr rax=33 # поменять значение регистра > pxr@rsp # инспекция стека > drr # periscoped-значения регистра Плагины. С помощью интегрированного менеджера пакетов вы можете легко устанавливать внешние плагины из разных источников. Самые интересные это native ghidra decompiler, r2dec decompiler и интеграция frida, но также могут быть и другие. $ r2pm update $ r2pm -i r2ghidra r2dec r2frida Frida. Это популярный отладчик/трассировщик, также доступный внутри r2 после установки плагина r2frida. С его помощью вы можете присоединиться или запустить под отладкой (attach/spawn) локальную или удаленную программу через USB или TCP, и исследовать память процесса путем её чтения и записи. Одно из основных достоинств использования r2frida вместо frida: несмотря на зависимость от Python по факту вы можете вводить короткие команды место ввода нескольких строк Javascript. Основные возможности r2frida: - Доступ к remote файловым системам. $ r2 frida:///bin/ls > :dc # продолжить выполнение > :dd # список дескрипторов файлов > :dm # показать карту памяти процесса > :dmm # показать отображенные модули > :dl foo.so # загрузить shlib > :dt write # трассировка каждого вызова 'write' > :isa read # найти, где находится символ read > :ii # список импортов из текущего модуля > :dxc exit 0 # вызов символа 'exit' с аргументом 0 [Документация] Присоединяйтесь к каналам Telegram / IRC [3] и не стесняйтесь задавать вопросы, читайте документацию [4]. Но также имейте в виду, что в r2 есть встроенная документация (просто добавьте символ '?') или см. man-документацию и результат вывода r2 -h. Usage: r2 [-ACdfjLMnNqStuvwzX] [-P patch] [-p prj] [-a arch] [-b bits] [-c cmd] -- запустить radare2 без открытия какого-либо файла Вы также можете использовать HUD-режим для интерактивного просмотра всех внутренних команд r2 с помощью команды (выход из этого режима через q+Enter): $ r2 -Qc'?*~...' -- [Ссылки] 1. radare2 https://rada.re/n/radare2.html. |