iOS 抓包工具推荐,从代理抓包到数据线直连 iPhone 抓包的实际选择

0 阅读4分钟

在移动开发或接口调试中,抓包几乎是最常见的操作之一。

一个典型的调试场景是这样的:

  • App 登录失败
  • 后端接口返回异常
  • 需要确认客户端实际发送了什么请求

这时最直接的办法就是把网络请求抓出来。

但是当开始操作时,会遇到一个问题,不同抓包工具能看到的数据并不完全一样。

下面逐步介绍几种常见 iOS 抓包工具以及它们的使用方式。


一、代理抓包:最容易建立的抓包环境

在多数情况下,第一步会选择代理抓包工具。

比较常见的工具包括:

  • Charles
  • Proxyman
  • Fiddler
  • Sniffmaster

这些工具的工作方式一致:

iPhone 的网络请求先发送到代理工具,再由代理转发给服务器。

只要建立这个路径,HTTPS 请求就可以被记录。


代理抓包的配置步骤

准备一台电脑,然后执行以下步骤:

  1. 启动代理工具(例如 Charles)
  2. 查看代理监听端口,例如 8888
  3. 让 iPhone 与电脑连接同一 Wi-Fi
  4. 打开 iPhone 设置 → Wi-Fi
  5. 点击当前网络
  6. 将 HTTP 代理改为 手动
  7. 输入电脑 IP 与端口

保存后返回桌面。 配置代理


安装 HTTPS 证书

如果 App 使用 HTTPS,需要安装代理证书。

操作方式:

  1. 在 Safari 中访问代理工具提供的证书地址
  2. 下载描述文件
  3. 安装证书
  4. 在 iOS 设置中开启证书信任

完成后,代理工具可以解密 HTTPS 数据。


验证代理是否成功

打开 Safari 访问任意 HTTPS 网站。

如果代理工具中出现请求,并且可以查看响应内容,说明抓包环境已经建立。

接下来可以打开目标 App。


二、当代理抓不到请求时

有些 App 的请求不会出现在代理工具中。

此时可以观察一个现象:

  • Safari 请求可以抓到
  • App 请求完全没有记录

这说明 App 的网络请求没有经过系统代理。

尝试重复安装证书或调整端口都不行,这时候就需要换一种抓包方式。


三、数据线直连 iPhone 抓包工具

当代理抓不到数据时,可以使用数据线直连 iPhone 抓包抓包。

这种方式直接从设备侧读取网络数据,不依赖 Wi-Fi 代理。

这里可以使用 SniffMaster(抓包大师)


使用 SniffMaster 抓取 iOS 网络请求

SniffMaster 支持通过 USB 直接抓取 iOS 设备的网络数据。

操作步骤如下:

  1. 用 USB 将 iPhone 连接电脑
  2. 保持设备解锁
  3. 在手机上点击“信任此电脑”
  4. 启动 SniffMaster
  5. 在设备列表中选择对应 iPhone
  6. 按提示安装 iOS 驱动
  7. 安装描述文件
  8. 进入 HTTPS 抓包模式
  9. 点击开始

然后在手机上触发网络请求。

抓包界面会出现对应的请求记录。 选择暴力抓包


只抓某个 App 的流量

设备级抓包会包含系统网络数据,例如:

  • DNS 查询
  • 系统服务通信

为了减少干扰,可以在 SniffMaster 中:

  1. 点击 选择 App
  2. 选择目标应用
  3. 再触发请求

抓包记录会只显示该 App 的网络数据。 选取app


四、当 HTTPS 请求体为空

在设备级抓包中,可能会出现一种情况:

  • 可以看到请求地址
  • 可以看到 Header
  • 请求体为空

这通常与 App 签名有关。

如果需要查看完整请求体,可以:

  1. 获取 App 的 IPA 文件
  2. 使用 iOS 开发证书重新签名
  3. 重新安装 App
  4. 再次抓包

完成后,请求体与响应体可以正常显示。 暴力抓包


五、修改请求与响应

如果调试目标是:

  • 修改请求参数
  • 重定向接口地址
  • 模拟服务器返回

需要使用代理抓包工具。

在 Charles 或 Proxyman 中可以使用 Rewrite 或 Script 功能。

SniffMaster 也提供拦截器功能,但仅在 HTTPS 代理抓包模式下可用。

数据线直连 iPhone 抓包模式只负责观察数据,不会修改请求。 拦截器


建立一个稳定的抓包方案

在实际调试中,可以按顺序使用这些工具:

  1. 代理抓包(Charles / Proxyman)
  2. 如果代理抓不到 → 使用数据线直连 iPhone 抓包
  3. 如果需要分析 TCP → 导出数据到 Wireshark

这种方式可以覆盖大多数 iOS 抓包场景。

参考链接:www.sniffmaster.net/tutorial/zh…