# http-detect **Repository Path**: lightings/http-detect ## Basic Information - **Project Name**: http-detect - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-20 - **Last Updated**: 2026-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android 网络请求监控工具 一个基于 Python、ADB 和 Frida 的桌面工具。目前支持枚举设备,并在选中设备后执行 `adb root`、上传、授权和后台启动 Frida Server。 ## 运行条件 - Python 3.10 或更高版本(需包含 Tkinter) - Android Platform Tools,且 `adb` 已加入系统 `PATH` - Android 设备已开启“开发者选项”和“USB 调试” ## 启动 ```powershell python main.py ``` 界面启动后会自动执行 `adb devices -l`。也可以点击“刷新设备”重新扫描;只有状态为 `device` 的设备可以确认选择。点击“准备 Frida Server”后,程序会要求设备支持 `adb root`,随后把项目根目录中的服务端上传至 `/data/local/tmp` 并启动。 获得 root shell 后会执行 `setenforce 0`,并通过 `getenforce` 验证设备处于 `Permissive` 或 `Disabled` 状态。切换失败时仅显示警告,仍会继续准备 Frida Server。 如果设备端文件已经存在会跳过上传;如果 Frida Server 已在运行,则直接复用现有进程, 不会重复启动。 服务启动后会自动列出运行进程。选中进程并点击“Attach 进程”(或双击进程)即可建立 并保留 Frida Session,供后续加载监控脚本使用。 Attach 成功后会自动打开实时网络窗口,显示 HTTP/HTTPS、WebView 和 native socket 连接事件,包括时间、请求方法、协议、目标 URL 或 IP:端口以及事件来源。 窗口还会显示 OkHttp 请求头、请求体、响应状态、响应头和常见响应体,并拦截 `SSL_read`/`SSL_write` 的 TLS 明文。TLS 数据会实时写入 `captures/` 下的 PCAP 文件, 可通过“导出 PCAP”另存后使用 Wireshark 打开。 Python 环境需要与服务端匹配的客户端: ```powershell pip install frida==17.6.0 frida-tools ``` ## 打包为独立 EXE 构建环境需要安装 PyInstaller 和 Frida 编译工具。关闭正在运行的监控程序后执行: ```powershell .\build.ps1 ``` 也可以双击 `build.bat`。输出文件为 `dist/AndroidNetworkMonitor.exe`。EXE 已内置 ARM64 Frida Server 和编译后的 Agent,无需目标用户安装 Python、Frida 或 Node.js; 目标电脑仍需提供 `adb`,并将其加入 PATH。抓包和进程历史保存在 `%LOCALAPPDATA%\AndroidNetworkMonitor`。 默认构建为无控制台 GUI:双击不会出现黑色控制台窗口;从 CMD/PowerShell 手动启动时, 程序会尝试连接当前终端并输出资源解压位置、Frida Server 状态和 Agent 加载日志。 使用 `build.ps1 -Console` 可构建始终带控制台的调试版本。持久日志位于 `%LOCALAPPDATA%\AndroidNetworkMonitor\logs\app.log`。单文件 EXE 的 Server 和 Agent 会临时解压至 `%TEMP%\_MEI*`,程序退出后由 PyInstaller 清理。 ## 测试 ```powershell python -m unittest discover -s tests ```