
Monitor API runtime basato su Frida per app Android che registra le API invocate, i parametri, i valori di ritorno e le origini delle chiamate attraverso categorie predefinite o personalizzate.

PAPIMonitor (Python API Monitor per app Android) è uno strumento Python basato su Frida per il monitoraggio delle API selezionabili dall'utente durante l'esecuzione dell'app. L'app dovrebbe essere installata in un emulatore già connesso tramite ADB al PC host. L'utente può scegliere di monitorare un elenco predefinito di API suddiviso in diverse categorie (es., Dati del dispositivo, Informazioni sul dispositivo, SMS) o un elenco personalizzato di API passate tramite riga di comando allo script. Lo strumento memorizza l'API invocata, i parametri, il valore di ritorno, e la riga e il file da cui è stata chiamata.
Di seguito è riportato un esempio di output:
{
"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"
}
⚠️ Attenzione con l'Emulatore Google
⚠️ Frida sembra non funzionare su Android 11-12 (x86_64) (Emulatore Google).
Requisiti generali:
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
Molti script Frida per Android si possono trovare qui.
| Google Emulator | Ubuntu | Windows | MacOS |
|---|
| 7.x x86 | ✔️ | ✔️ | ✔️ |
| 8.x x86 | ✔️ | ✔️ | ✔️ |
| 9.0 x86 | ✔️ | ✔️ | ✔️ |
| 10.0 x86 | ✔️ | ✔️ | ✔️ |
| 11.0 x86 | ✔️ | ✔️ | ✔️ |
| 12.0 x86 | ✔️ | ✔️ | ✔️ |