Отладка IDA¶
В этом разделе описывается, как быстро отлаживать Android-приложения с помощью FIRERPA, связанных с ним функций и скриптов. Наша демонстрационная среда: Android 10, хост-система Ubuntu 22.04, установлены IDA 7.5 (Wine), ADB, JDB, Python и другие инструменты. Рекомендуется использовать IDA версии не ниже 7.5 и установить последнюю версию серверной части FIRERPA.

Перевод в режим отладки¶
Если ваша система уже находится в режиме отладки, этот шаг можно пропустить. В противном случае откройте удалённый рабочий стол FIRERPA и введите в терминале setdebuggable. После выполнения этой команды телефон выполнит мягкую перезагрузку; не беспокойтесь, примерно через две минуты он полностью восстановится. После этого телефон перейдёт в режим отладки.

Установка службы отладки IDA¶
Перед началом отладки необходимо загрузить на устройство серверную часть отладчика IDA для Android. В каталоге dbgsrv установочной папки IDA находятся файлы android_server и android_server64. Если целевое приложение использует 32-битные динамические библиотеки, используйте android_server; в противном случае используйте android_server64. Перетащите нужный файл или отправьте его на Android-устройство через adb push, после чего задайте права на выполнение:
chmod 755 android_server*
После задания прав на выполнение необходимо запустить службу android_server. Это можно сделать через adb (требуются root-права) или через терминал удалённого рабочего стола. Для Android 10 и более новых версий заранее задайте переменную окружения IDA_LIBC_PATH:
IDA_LIBC_PATH=/apex/com.android.runtime/lib64/bionic/libc.so ./android_server64 -kk
Примечание
Если цель отладки — 32-битное приложение, измените IDA_LIBC_PATH на /apex/com.android.runtime/lib/bionic/libc.so и используйте 32-битную службу отладки android_server.
Проброс службы отладки IDA¶
Для отладки, где важны высокая производительность и отзывчивость, рекомендуется использовать USB-подключение. Убедитесь, что устройство подключено к текущему компьютеру через USB и авторизовано в ADB, затем выполните команду:
adb forward tcp:23946 tcp:23946
Примечание
23946 — порт по умолчанию для android_server IDA. Если вы изменили порт при запуске, укажите фактический номер порта при пробросе.
Начало отладки приложения¶
Мы подготовили для вас скрипт, который автоматически выполнит большую часть последующих операций. Вам достаточно следовать подсказкам в его выводе. Скрипт ida.py находится в каталоге tools проекта; запустите его командой:
python3 ida.py -d 192.168.0.2 -a com.android.settings

Здесь параметр -d — это IP-адрес устройства, то есть IP-адрес, на котором работает сервис FIRERPA; параметр -a — имя пакета целевого приложения. После выполнения команды скрипт предложит вам подключить отладчик к процессу приложения в IDA.



Весь процесс готов. Вернитесь в интерфейс командной строки ida.py, нажмите Enter, после чего можно продолжить отладку.