Отладка приложений с помощью IDA

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

Динамическая отладка

Включение режима отладки

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

Динамическая отладка

Установка сервера отладки IDA

Прежде чем продолжить, вам необходимо загрузить на устройство сервер отладки для Android, поставляемый с IDA. Вы можете найти android_server и android_server64 в каталоге dbgsrv вашей установки IDA. Если целевое приложение использует 32-битные библиотеки, используйте android_server, в противном случае — android_server64. Перетащите нужный файл или используйте команду adb push, чтобы загрузить его на устройство Android, а затем предоставьте права на выполнение.

chmod 755 android_server*

После предоставления прав на выполнение необходимо запустить службу android_server. Вы можете запустить этот исполняемый файл через adb (требуются root-права) или через терминал удаленного рабочего стола. В системах более новых версий (>=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-соединение. Убедитесь, что ваше устройство подключено к компьютеру и авторизация adb выполнена, затем выполните следующую команду.

adb forward tcp:23946 tcp:23946

Примечание

23946 — это порт прослушивания по умолчанию для `android_server` в IDA. Если вы изменили этот порт при запуске `android_server`, укажите правильный порт.

Начало отладки приложения

Мы не стали усложнять процесс и просто создали для вас скрипт-обертку, который автоматически выполнит большинство последующих действий. Просто следуйте инструкциям, выводимым скриптом. Вы можете найти скрипт ida.py в каталоге tools проекта и запустить его следующей командой.

python3 ida.py -d 192.168.0.2 -a com.android.settings

Динамическая отладка

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

Динамическая отладка

Динамическая отладка

Динамическая отладка

Динамическая отладка

Отлично, все шаги выполнены. Вернитесь в командную строку, где запущен ida.py, и нажмите клавишу Enter. Теперь вы можете продолжать отладку.