
Moniteur d'API runtime basé sur Frida pour les applications Android qui enregistre les API invoquées, les paramètres, les valeurs de retour et les origines des appels à travers des catégories prédéfinies ou personnalisées.

PAPIMonitor (Python API Monitor pour applications Android) est un outil Python basé sur Frida pour surveiller les API sélectionnées par l'utilisateur lors de l'exécution de l'application. L'application doit être installée dans un émulateur déjà connecté via ADB à l'ordinateur hôte. L'utilisateur peut choisir de surveiller une liste prédéfinie d'API divisée en plusieurs catégories (par exemple, Données de l'appareil, Informations sur l'appareil, SMS) ou une liste personnalisée d'API passée via la ligne de commande au script. L'outil enregistre l'API invoquée, les paramètres, la valeur de retour, ainsi que la ligne et le fichier d'où elle a été appelée.
Voici un exemple de sortie :
{
"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"
}
⚠️ Avertissement concernant l'émulateur Google
⚠️ Frida semble cassé sur Android 11-12 (x86_64) (Google Emulator).
Configuration requise :
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
De nombreux scripts Frida pour Android peuvent être trouvés ici.
| Émulateur Google | Ubuntu | Windows | MacOS |
|---|
| 7.x x86 | ✔️ | ✔️ | ✔️ |
| 8.x x86 | ✔️ | ✔️ | ✔️ |
| 9.0 x86 | ✔️ | ✔️ | ✔️ |
| 10.0 x86 | ✔️ | ✔️ | ✔️ |
| 11.0 x86 | ✔️ | ✔️ | ✔️ |
| 12.0 x86 | ✔️ | ✔️ | ✔️ |