Android‑устройства с установленным Termux позволяют превратить смартфон в полноценную Linux‑среду. Это открывает возможности для разработки, отладки и статического анализа кода прямо на мобильном устройстве. В статье рассматривается интеграция двух популярных инструментов: radare2 – мощный фреймворк для реверс‑инжиниринга, и Cutter – графический интерфейс к radare2, позволяющий быстро визуализировать результаты анализа.
Подготовка окружения Termux
Перед установкой инструментов необходимо подготовить базовую среду:
pkg update && pkg upgrade -y
pkg install -y git python clang make curl wget tar proot-distro
Для работы графических приложений потребуется X‑сервер. На Android удобно использовать Termux:API и termux-x11 или сторонний VNC‑сервер (например, bVNC).
Установка radare2
Самый простой способ – собрать radare2 из исходников:
git clone https://github.com/radareorg/radare2.git ~/radare2
cd ~/radare2
./sys/install.sh
После установки проверьте работоспособность:
r2 -v
Установка Cutter (GUI)
Cutter требует графического окружения. В Termux можно воспользоваться termux-x11 (X‑сервер) и установить предварительно собранный пакет:
# Установка X‑серверa
pkg install -y termux-x11
# Скачивание последней версии Cutter (ARM64)
wget https://github.com/cutter-re/cutter/releases/download/v2.2.0/cutter-2.2.0-arm64.deb -O cutter.deb
# Установка зависимостей
pkg install -y libqt5gui5 libqt5widgets5 libqt5core5a libqt5network5 libqt5svg5
# Установка самого пакета
dpkg -i cutter.deb || apt --fix-broken install -y
Запуск Cutter через X‑сервер:
termux-x11 :0 &
export DISPLAY=:0
cutter &
Если ваш телефон использует процессор x86_64, замените пакет на соответствующий (cutter-*-x86_64.deb).
Настройка статического анализа в Termux
После установки обеих программ можно приступить к анализу бинарных файлов. Пример анализа ELF‑файла с radare2:
r2 -A /data/data/com.termux/files/home/sample.bin
Команда -A автоматически выполнит базовый анализ (функций, строк, импортов). Для более глубокого анализа используйте скрипты radare2:
aaa # полное автоматическое сканирование
afl # список всех функций
pd 10 # дизассемблировать 10 инструкций
В Cutter результаты отображаются в виде графов, таблиц функций и интерактивного дизассемблера, что упрощает навигацию по коду.
Автоматизация с помощью скриптов
Для повторяющихся задач удобно написать небольшие bash‑скрипты, которые будут запускать radare2 с нужными параметрами и сохранять вывод в файлы:
#!/usr/bin/env bash
BIN=$1
OUT=${BIN}.r2report.txt
r2 -A -c "afl; aaaa; pdf @ main" -qq $BIN > $OUT
echo "Отчёт сохранён в $OUT"
Скрипт сохраняет список функций и дизассемблирование функции main в текстовый файл, который удобно просматривать на мобильном устройстве.
Тонкости и рекомендации
- Память и процессор. Анализ больших бинарных файлов может потребовать более 1 ГБ RAM. При необходимости используйте swap‑файл в Termux:
dd if=/dev/zero of=$HOME/swapfile bs=1M count=1024
mkswap $HOME/swapfile
swapon $HOME/swapfile
cd ~/radare2 && git pull && ./sys/install.sh
proot-distro (например, Debian) внутри Termux, чтобы ограничить доступ к файловой системе Android.Заключение
Интеграция radare2 и Cutter в Termux предоставляет мощный набор средств для статического анализа кода прямо на Android‑устройстве. При правильной настройке вы получаете возможности, сравнимые с настольными Linux‑окружениями, при этом сохраняете мобильность и гибкость.
Если вам требуется профессиональная поддержка в настройке среды анализа, разработка кастомных скриптов или обучение работе с radare2 и Cutter, команда RybinskLab готова помочь. Мы предоставляем консультации, настройку инфраструктуры и обучение по реверс‑инжинирингу под Android.