0xdad0/PAPIMonitor

GitHub: 0xdad0/PAPIMonitor

基于 Frida 的 Android 应用 API 调用监控工具,支持运行时追踪敏感 API 并记录完整调用上下文。

Stars: 87 | Forks: 11

![Logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/53585c8035112705.png) [![Python 版本](https://img.shields.io/badge/Python-3.5%2B-green.svg?logo=python&logoColor=white)](https://www.python.org/downloads/) [![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Dado1513/AndroidApiMonitoring/blob/master/LICENSE) **PAPIMonitor** (用于 Android 应用的 **P**ython **API** **Monitor**) 是一个基于 [Frida](https://frida.re/docs/android/) 的 Python 工具,用于在应用执行期间监控用户选择的 API。 该应用应安装在已通过 ADB 连接到主机 PC 的模拟器中。 用户可以选择监控预定义的 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" } ``` :warning: **关于 Google 模拟器的警告** | Google 模拟器 | Ubuntu | Windows | MacOS | |:----------------------:|:------------------------:|:------------------------:|:------------------------:| | **7.x x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **8.x x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **9.0 x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **10.0 x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **11.0 x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | **12.0 x86** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :warning: Frida 在 Android 11-12 (x86_64) (Google Emulator) 上似乎存在问题。 - [issue-1917](https://github.com/frida/frida/issues/1917) - [issue-1977](https://github.com/frida/frida/issues/1977) - [issue-1982](https://github.com/frida/frida/issues/1982) ## 安装 常规要求: ``` sudo apt-get install libjpeg-dev zlib1g-dev ``` ### 使用 pyenv 和 virtualenv 安装 - 安装 [pyenv](https://github.com/pyenv/pyenv) 和 [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) ``` pyenv install 3.8.0 pyenv virtualenv 3.8.0 papi-monitor pyenv activate 3.8.0/envs/papi-monitor pip3 install -r requirements ``` ### 使用 virtualenv 安装 - 安装 virtualenv ``` sudo apt-get install python3-virtualenv ``` - 激活 virtualenv ``` virtualenv env source env/bin/activate ``` - 安装依赖 ``` pip install -r requirements ``` - 下载 frida-server 到 `resources/frida-server/` 目录 ## 安装后步骤 - adb 在 PATH 环境变量中 - 模拟器/设备已运行并连接 ## 使用方法 ``` 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 ``` ### 预定义类别 - Device Data - Device Info - SMS - System Manager - Base64 encode/decode - Dex Class Loader - Network - Crypto - Crypto - Hash - Binder - IPC - Database - SharedPreferences - WebView - Java Native Interface - Command - Process - FileSytem - Java ### Frida 脚本 许多用于 Android 的 Frida 脚本可以在[这里](https://github.com/Dado1513/frida-script-android)找到。
标签:ADB, Android安全, API监控, Docker支持, Frida, Homebrew安装, Hook技术, Python, SSH蜜罐, URL抓取, 云资产清单, 安卓模拟器, 应用行为分析, 数据抓取, 无后门, 目录枚举, 移动安全, 自定义脚本, 自定义脚本, 进程注入, 逆向工具, 逆向工程, 隐私合规检测