gptind826-dotcom/eXcap-Android

GitHub: gptind826-dotcom/eXcap-Android

eXcap 是一款免 root 的 Android 网络抓包诊断应用,通过本地 VPN 接口实现按应用级别的 TCP/UDP/HTTP/TLS 流量捕获与导出。

Stars: 0 | Forks: 0

eXcap — Network visibility, on your device

# eXcap [![Android CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/4d/4dd365ad168253796e3b05f4ff2891bdfa891190d087230cedd76342007aa605.svg)](https://github.com/gptind826-dotcom/eXcap-Android/actions/workflows/debug-build.yml) **eXcap 是一款专业的免 root Android 网络诊断应用。** 它会创建一个本地 Android VPN 接口,将连接归属于已安装的应用,重建网络流,并在设备上处理数据包。 ## 可检查的内容 | 功能 | eXcap 显示的内容 | |---|---| | **按应用抓包** | 捕获单个选定的应用、选定的一组应用或整个设备 | | **TCP/UDP 流** | 源/目标地址、端口、协议、状态、时序、方向和字节数 | | **DNS** | 查询、解析的地址和应用归属 | | **明文 HTTP** | 请求方法、主机、URL、标头、状态、响应元数据和 payload 视图 | | **HTTPS/TLS 元数据** | 远程 endpoint、端口、SNI/服务器名称(如果可用)、TLS 元数据、时序和加密字节数 | | **原始 payload** | 对抓包引擎可见的 payload 字节的文本和十六进制视图 | | **导出** | 面向 Wireshark 或其他分析工具的 PCAP、PCAPNG、CSV 和 HAR | | **实时分析** | 连接列表、应用统计、主机、国家/地区、协议和实时流量总计 | | **高级路由** | 可选的 SOCKS5、远程收集器、UDP 导出器和 root 接口抓包模式 | ### 重要的 HTTPS 限制 正常的 HTTPS 内容是端到端加密的。eXcap **不会绕过 TLS**,默认情况下无法显示加密的请求或响应体。它仍然可以显示连接元数据,例如目标 IP、端口、应用、SNI(如果可观察到)、时序和流量。 针对独立的上游 TLS 插件和用户安装的 CA,存在一条可选的兼容路径。它需要进行显式设置,可能不适用于证书固定(certificate-pinned)的应用,并且只能在获得授权的情况下使用。该功能默认未启用。 ## 产品原则 - **本地优先:** 捕获解析在 Android 设备上进行。 - **明确同意:** Android 会显示其标准的 VPN 授权提示。 - **操作可见:** 在进行抓包时会显示一条持续的通知。 - **无需 root:** 标准引擎使用 Android 的 `VpnService`。 - **不收集凭证:** eXcap 不提供用于提取密码、token 或私钥的自动化功能。 - **用户控制的导出:** 数据仅通过显式选择的导出、收集器或转发功能离开应用。 ## 抓包工作流 1. 打开 **eXcap** 并选择抓包模式。 2. 启用 **目标应用** 并选择一个应用进行针对性检查,或者将其关闭以捕获整个设备的流量。 3. 点击状态环或 **Start**。 4. 批准 Android 的本地 VPN 提示。 5. 使用选定的应用生成流量。 6. 打开 **Connections** 检查其 TCP/UDP 流和 HTTP/TLS 元数据。 7. 在需要时停止抓包并导出 PCAP/PCAPNG、CSV 或 HAR。 ## 架构 ``` Selected Android apps │ ▼ Android VpnService / optional root interface │ ▼ Native capture engine (zdtun + nDPI) │ ├── flow reconstruction and app/UID attribution ├── DNS, HTTP, TLS/SNI and protocol metadata ├── connection and payload model └── PCAP/PCAPNG/CSV/HAR exporters │ ▼ Java + Material Components user interface ``` 有关数据流、信任边界和实现细节,请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。 ## 本地构建 ### 要求 - Linux、macOS 或 Windows - **JDK 21** - Android SDK,包含: - `platforms;android-37.0` - `build-tools;37.0.0` - `ndk;28.2.13676358` - `cmake;3.22.1` - 已初始化 Git 子模块 ### 命令 ``` git clone --recurse-submodules https://github.com/gptind826-dotcom/eXcap-Android.git cd eXcap-Android ./gradlew testStandardDebugUnitTest lintStandardDebug ./gradlew assembleStandardDebug ``` 生成的可安装调试版 APK 位于: ``` app/build/outputs/apk/standard/debug/app-standard-debug.apk ``` 调试版 APK 使用 Android 生成的调试密钥进行签名,适合用于测试。生产环境的分发应使用在代码仓库之外配置的受保护的发布版 keystore。 ## GitHub Actions APK `.github/workflows/debug-build.yml` 会在推送(push)、拉取请求(pull request)、打标签(tag)和手动调度时运行。它会: 1. 检出所有原生子模块; 2. 安装 JDK 21 和指定的 Android/NDK 工具链; 3. 运行单元测试和 Android lint; 4. 构建 `assembleStandardDebug`; 5. 生成 SHA-256 校验和;并且 6. 将 APK、校验和、lint 报告和测试报告作为工作流产物(artifact)上传。 诸如 `v1.0.0` 的标签也会创建一个包含已验证调试版 APK 的 GitHub Release。对于公开发布版本,应将调试签名替换为由代码仓库/环境密钥支持的发布签名任务。 ## 测试 该项目包含针对数据包、连接、过滤、HTTP、DNS、IP、解密列表和实用工具行为的上游单元测试。有关此 eXcap 构建的验证运行记录在 [`docs/TESTING.md`](docs/TESTING.md) 中。 ## 隐私与安全 - 在使用包含个人数据的抓包结果之前,请阅读 [`PRIVACY.md`](PRIVACY.md)。 - 使用 [`SECURITY.md`](SECURITY.md) 报告漏洞。 - 抓包文件可能包含敏感的 URL、标头、DNS 名称和明文 payload。请谨慎存储和分享。 - eXcap 自身的应用 ID 是 `app.excap.network`(调试构建为 `app.excap.network.debug`)。 ## 许可与致谢 本项目是 [PCAPdroid](https://github.com/emanuele-f/PCAPdroid) 的修改版分发,最初由 **Emanuele Faranda** 及其贡献者创建。经过验证的抓包引擎在 **GNU GPL v3 或更高版本** 下被重复使用。我们有意保留了上游的版权、源码头信息、子模块历史和许可声明。 eXcap 的名称、网络节点图标、产品文案、包标识、仪表板、配色系统、隐私文档和 CI 打包均为本项目的修改内容。请参阅 [`NOTICE`](NOTICE) 和 [`COPYING`](COPYING)。
标签:Android, DSL, JS文件枚举, PCAP, UML, VPN接口, 后台面板检测, 域名枚举, 情报分析, 网络抓包, 网络诊断, 防御绕过