Skip to content

安卓抓包 ​

安卓网络抓包界面

功能介绍 ​

安卓抓包通过 JVMTI Agent 与 WebView CDP 并行采集 OkHTTP、Cronet、GNet 和 WebView 请求,实时展示请求与响应,并支持 Replace Mock(让匹配的请求直接返回配置的响应,不访问真实服务器)。仅支持 debuggable 应用。

前提条件 ​

  • 设备需通过 USB 连接并启用调试授权
  • 目标应用必须是 debuggable(android:debuggable="true")
  • 支持的网络栈:OkHTTP3、org.chromium.net Cronet、gnet.android:gnet-cronet 3.0.3、启用了调试能力的 Android WebView
  • WebView 通过 Chromium DevTools Protocol 采集,响应体最多保留前 1 MiB;Mock 仅处理 Replace 规则
  • Mock 能力依赖当前抓包 Agent 连接状态,停止抓包或 APP 进程退出后需要重新开始抓包

界面布局 ​

  • 标题栏:进程选择、Mock、开始 / 停止抓包、清空请求、导出
  • 请求列表:搜索过滤、请求 / 响应详情
  • 底部状态栏:进程名 / 包名、等待进程重启状态

界面与按钮说明 ​

开始抓包 ​

  1. 通过 USB 连接 Android 设备,并确认设备已授权调试
  2. 在进程选择框中选择目标 debuggable 应用
  3. 点击「开始抓包」,Hadice 会自动推送并附加 JVMTI Agent
  4. 操作目标 APP 触发网络请求,请求会实时显示在列表中
  5. 如果目标 APP 已经启动但抓不到请求,可杀掉 APP 后重新开始抓包

停止抓包 ​

抓包进行中点击「停止抓包」结束采集。目标进程退出后按钮变为「停止等待」,等待进程重启后自动恢复。

使用 Mock ​

Mock 用于让匹配的请求不访问真实服务器,直接返回你配置的状态码、响应头和响应体。WebView 仅支持 Replace 模式,命中规则后由 CDP 直接返回配置响应。

配置方式:

  • 方式一:点击工具栏的「Mock」按钮,手动新增规则
  • 方式二:在请求列表中右键目标请求,选择「mock该请求」

编辑规则时,确认 URL 匹配规则能匹配完整请求 URL,可在「测试URL」中验证匹配结果。勾选左侧规则启用框后点击「保存配置」,抓包中保存会立即同步到 Android Agent 与 WebView CDP 会话。

请求列表 ​

  • 支持按关键词过滤搜索
  • 点击请求查看请求 / 响应详情(HTTPS 请求可查看明文,响应体最多保留前 1 MiB)
  • 支持清空请求列表,方便开启新一轮观察
  • 支持导出网络请求(单条或批量)

底部状态栏 ​

显示当前进程名 / 包名,以及「等待进程重启」等抓包状态。

使用场景 ​

  • 检查 APP 网络请求的参数、响应与耗时
  • 用 Mock 模拟异常返回(超时、错误码、特定响应体)做异常分支测试
  • WebView 页面请求调试(Replace 模式直接返回配置响应)

FAQ ​

为什么抓不到请求?

请确认:

  • 目标应用是 debuggable 的
  • 请求经过 OkHTTP、Cronet、GNet 或 Android WebView
  • 设备已通过 USB 连接并授权调试
  • 已选择正确的目标进程
  • APP 在开始抓包后重新触发了网络请求
支持 HTTPS 抓包吗?

支持。OkHTTP、Cronet、GNet 在应用层采集,WebView 通过 CDP 采集,都可以查看 HTTPS 的明文请求和响应;响应体最多保留前 1 MiB。

Mock 规则不生效?

请确认:

  • 已勾选对应规则左侧的启用框
  • 已点击「保存配置」
  • 抓包处于开启状态,且 Android Agent 已连接
  • URL 匹配规则能匹配完整请求 URL,可使用「测试URL」验证
  • WebView 规则使用的是 Replace 模式
  • 修改规则后如果 APP 进程已重启,需要重新开始抓包并等待配置推送

Apache-2.0 · 货拉拉出品