在抓包工具刚启动的时候,界面是空的,但只要点开一个 App 或刷新一个页面,很快就会变成这样:
- 几百条请求
- 不断滚动的列表
- 多个域名交错出现
如果没有筛选手段,很难从中找到目标接口。
先手清理一下环境
第一次抓包时,容易忽略的一步就是清空历史记录。
在 Charles、Sniffmaster 或 Proxyman 中:
- 点击清空按钮(Clear Session)
- 确认列表为空
- 暂停 App 操作
接下来只触发一次目标操作,例如点击“登录”按钮
观察变化
此时抓包列表会出现一小批请求,例如:
- 登录接口
- 配套的配置请求
- 少量 CDN 资源
数量明显减少,可以开始分析。
通过域名筛选第一层范围
如果请求仍然较多,可以先按域名筛选。
在 Charles 中:
- 查看左侧域名列表
- 找到与业务相关的域名
- 点击展开
例如:
api.example.com
只看这个域名下的请求,可以去掉:
- 图片资源
- 第三方统计
- CDN 请求
使用过滤器定位接口
代理抓包工具一般提供过滤功能。
例如在 Charles:
- 在 Filter 输入关键字
- 输入接口路径的一部分
例如:
/login
列表会只显示匹配的请求。
观察变化
过滤后可以直接看到:
- 请求方法
- 请求参数
- 返回数据
如果接口路径不确定,可以先观察 URL 结构再调整关键字。
在移动设备抓包中减少干扰
在 iOS 抓包时,流量会更多,因为包含:
- 系统服务请求
- DNS 查询
- Apple 后台服务
如果直接抓包,很难筛选。
使用 SniffMaster 筛选 App
在 SniffMaster(抓包大师) 中,可以直接按 App 过滤。
操作步骤:
- 连接 iPhone(USB)
- 启动 SniffMaster
- 进入抓包界面
- 点击 选择 App
- 勾选目标应用
- 开始抓包
观察变化
抓包列表会只显示该 App 的流量:
- 不再包含系统请求
- 不再包含其他应用流量
此时数据量明显减少。
进一步用请求类型过滤
如果目标接口属于某种类型,可以继续筛选。
例如:
- 只看 POST 请求
- 只看 JSON 数据
在抓包工具中设置过滤条件:
- Method = POST
- Content-Type = application/json
可以快速定位接口调用。
结合排序找关键请求
当请求仍然较多时,可以使用排序功能。
例如:
- 按时间排序
- 按数据大小排序
在一些接口中:
- 登录接口返回数据较大
- 配置接口返回 JSON
通过排序可以更快找到这些请求。
处理持续刷新的流量
有些 App 会持续发请求,例如:
- 心跳包
- 长连接
- 实时数据刷新
这种情况下,可以:
- 先停止抓包
- 清空数据
- 再次开始抓包
- 立即触发目标操作
避免历史流量干扰分析。
在面对“流量太多”的情况时,可以按这个顺序操作:
- 清空抓包记录
- 只触发一次目标操作
- 按域名缩小范围
- 使用关键字过滤
- 必要时按 App 筛选
- 使用时间或排序辅助定位、