iOS 抓包时流量太多,无法找到需要请求怎么办?

0 阅读3分钟

在抓包工具刚启动的时候,界面是空的,但只要点开一个 App 或刷新一个页面,很快就会变成这样:

  • 几百条请求
  • 不断滚动的列表
  • 多个域名交错出现

如果没有筛选手段,很难从中找到目标接口。


先手清理一下环境

第一次抓包时,容易忽略的一步就是清空历史记录

在 Charles、Sniffmaster 或 Proxyman 中:

  1. 点击清空按钮(Clear Session)
  2. 确认列表为空
  3. 暂停 App 操作

接下来只触发一次目标操作,例如点击“登录”按钮


观察变化

此时抓包列表会出现一小批请求,例如:

  • 登录接口
  • 配套的配置请求
  • 少量 CDN 资源

数量明显减少,可以开始分析。


通过域名筛选第一层范围

如果请求仍然较多,可以先按域名筛选。

在 Charles 中:

  1. 查看左侧域名列表
  2. 找到与业务相关的域名
  3. 点击展开

例如:

api.example.com

只看这个域名下的请求,可以去掉:

  • 图片资源
  • 第三方统计
  • CDN 请求

使用过滤器定位接口

代理抓包工具一般提供过滤功能。

例如在 Charles:

  1. 在 Filter 输入关键字
  2. 输入接口路径的一部分

例如:

/login

列表会只显示匹配的请求。


观察变化

过滤后可以直接看到:

  • 请求方法
  • 请求参数
  • 返回数据

如果接口路径不确定,可以先观察 URL 结构再调整关键字。


在移动设备抓包中减少干扰

在 iOS 抓包时,流量会更多,因为包含:

  • 系统服务请求
  • DNS 查询
  • Apple 后台服务

如果直接抓包,很难筛选。


使用 SniffMaster 筛选 App

SniffMaster(抓包大师) 中,可以直接按 App 过滤。

操作步骤:

  1. 连接 iPhone(USB)
  2. 启动 SniffMaster
  3. 进入抓包界面
  4. 点击 选择 App
  5. 勾选目标应用
  6. 开始抓包 选择应用

观察变化

抓包列表会只显示该 App 的流量:

  • 不再包含系统请求
  • 不再包含其他应用流量

此时数据量明显减少。


进一步用请求类型过滤

如果目标接口属于某种类型,可以继续筛选。

例如:

  • 只看 POST 请求
  • 只看 JSON 数据

在抓包工具中设置过滤条件:

  • Method = POST
  • Content-Type = application/json

可以快速定位接口调用。 过滤


结合排序找关键请求

当请求仍然较多时,可以使用排序功能。

例如:

  • 按时间排序
  • 按数据大小排序

在一些接口中:

  • 登录接口返回数据较大
  • 配置接口返回 JSON

通过排序可以更快找到这些请求。


处理持续刷新的流量

有些 App 会持续发请求,例如:

  • 心跳包
  • 长连接
  • 实时数据刷新

这种情况下,可以:

  1. 先停止抓包
  2. 清空数据
  3. 再次开始抓包
  4. 立即触发目标操作

避免历史流量干扰分析。


在面对“流量太多”的情况时,可以按这个顺序操作:

  1. 清空抓包记录
  2. 只触发一次目标操作
  3. 按域名缩小范围
  4. 使用关键字过滤
  5. 必要时按 App 筛选
  6. 使用时间或排序辅助定位、

参考链接:www.sniffmaster.net/blog/132