
Monitor de API em tempo de execução baseado em Frida para aplicativos Android que registra APIs invocadas, parâmetros, valores de retorno e origens de chamadas em categorias predefinidas ou personalizadas.

PAPIMonitor (Monitor de API Python para aplicativos Android) é uma ferramenta Python baseada no Frida para monitorar APIs selecionadas pelo usuário durante a execução do aplicativo. O aplicativo deve estar instalado em um emulador já conectado via ADB ao computador host. O usuário pode escolher monitorar uma lista predefinida de APIs dividida em várias categorias (ex.: Dados do Dispositivo, Informações do Dispositivo, SMS) ou uma lista personalizada de APIs passada pela linha de comando para o script. A ferramenta armazena a API invocada, os parâmetros, o valor de retorno e a linha e arquivo de onde foi chamada.
Abaixo está um exemplo de saída:
{
"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"
}
⚠️ Aviso com Emulador Google
| Emulador Google | Ubuntu | Windows | MacOS |
|---|---|---|---|
| 7.x x86 | ✔️ | ✔️ | ✔️ |
| 8.x x86 | ✔️ | ✔️ | ✔️ |
| 9.0 x86 | ✔️ | ✔️ | ✔️ |
| 10.0 x86 | ✔️ | ✔️ | ✔️ |
| 11.0 x86 | ✔️ | ✔️ | ✔️ |
| 12.0 x86 | ✔️ | ✔️ | ✔️ |
⚠️ Frida parece estar quebrada no Android 11-12 (x86_64) (Google Emulatore).
Requisitos gerais:
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
Muitos scripts Frida para Android podem ser encontrados aqui.