
Android 앱용 Frida 기반 런타임 API 모니터로, 사전 정의된 또는 사용자 정의 카테고리에서 호출된 API, 매개변수, 반환 값 및 호출 출처를 기록합니다.

PAPIMonitor (Python API Monitor for Android apps)는 Frida를 기반으로 한 Python 도구로, 앱 실행 중 사용자가 선택한 API를 모니터링합니다. 앱은 이미 ADB를 통해 PC 호스트에 연결된 에뮬레이터 내에 설치되어 있어야 합니다. 사용자는 여러 카테고리(예: Device Data, Device Info, SMS)로 나뉜 미리 정의된 API 목록을 모니터링하거나 명령줄을 통해 스크립트에 전달된 사용자 정의 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 Emulator 주의사항
| 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/에 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
Android용 Frida 스크립트는 여기에서 많이 찾을 수 있습니다.