
Монитор API времени выполнения на основе Frida для приложений Android, который регистрирует вызываемые API, параметры, возвращаемые значения и источники вызовов по предопределенным или пользовательским категориям.

PAPIMonitor (Python API Monitor для Android-приложений) — это Python-инструмент на основе Frida для мониторинга выбранных пользователем API во время выполнения приложения. Приложение должно быть установлено в эмуляторе, уже подключенном через ADB к хосту ПК. Пользователь может выбрать мониторинг предопределенного списка API, разделенного на несколько категорий (например, Device Data, Device Info, SMS), или пользовательского списка API, переданного через командную строку скрипту. Инструмент сохраняет вызванный API, параметры, возвращаемое значение, а также строку и файл, из которого он был вызван.
Ниже приведен пример вывода:
{
"category": "Custom",
"class": "com.dave.popupre.MainActivity",
"method": "getText",
"args": [],
"calledFrom": "com.dave.popupre.MainActivity$1.onClick(MainActivity.java:26)",
"returnValue": "Hello Toast!",
"time": "03/09/2021, 14:43:06"
}
⚠️ Предупреждение для эмулятора Google
| Google Emulator | Ubuntu | Windows | MacOS |
|---|---|---|---|
| 7.x x86 | ✔️ | ✔️ | ✔️ |
| 8.x x86 | ✔️ | ✔️ | ✔️ |
| 9.0 x86 | ✔️ | ✔️ | ✔️ |
| 10.0 x86 | ✔️ | ✔️ | ✔️ |
| 11.0 x86 | ✔️ | ✔️ | ✔️ |
| 12.0 x86 | ✔️ | ✔️ | ✔️ |
⚠️ Frida, похоже, не работает на Android 11-12 (x86_64) (Google Emulatore).
Общие требования:
sudo apt-get install libjpeg-dev zlib1g-dev
pyenv install 3.8.0
pyenv virtualenv 3.8.0 papi-monitor
pyenv activate 3.8.0/envs/papi-monitor
pip3 install -r requirements
sudo apt-get install python3-virtualenv
virtualenv env
source env/bin/activate
pip install -r requirements
resources/frida-server/python papi_monitor.py --package-name com.package.name --filter "Crypto"
python papi_monitor.py --file-apk app.apk --api-monitor api_personalized.json
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json
python papi_monitor.py --package-name com.package.name --filter "ALL"
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json --store-script True --filter "Crypto" "Crypto - Hash"
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json --pinning-bypass --antiroot-bypass
Множество Frida-скриптов для Android можно найти здесь.