苹果手机抓包全流程,稳定抓取完整操作教程

文章介绍了苹果手机抓包的完整流程,包括使用 Charles、Proxyman 进行代理抓包,以及通过 SniffMaster 实现手机底层 HTTPS 抓包,并结合不同场景说明了如何筛选 App 流量、处理数据不完整问题以及选择合适的抓包方式,帮助开发者建立稳定可执行的 iPhone 抓包方法。

第一次在 iPhone 上抓包,很容易遇到打开工具之后,证书已经安装好了,App 正在请求网络,但是抓包界面却没有任何数据

这种情况并不少见,而且原因不止一个,下面通过一次操作过程,逐步把抓包环境搭建起来,并说明每一步应该看到什么结果。


先用浏览器验证抓包环境

在 iPhone 上直接抓 App 之前,可以先用浏览器验证环境。

准备工具:

  • Mac 或 Windows 电脑
  • Charles、Sniffmaster 或 Proxyman

配置代理

在电脑上启动 Charles 或 Sniffmaster,然后执行:

  1. 查看代理端口(例如 8888)
  2. 确认电脑 IP 地址
  3. iPhone 连接同一 Wi-Fi
  4. 打开 iPhone 设置 → Wi-Fi
  5. 点击当前网络
  6. 在 HTTP 代理中选择“手动”
  7. 输入 IP 与端口

保存后返回桌面。
端口


安装 HTTPS 证书

在 iPhone 上:

  1. 使用 Safari 打开证书下载地址
  2. 下载描述文件
  3. 安装证书
  4. 在“证书信任设置”中开启信任

证书


验证结果

打开 Safari 访问一个 HTTPS 网站。

观察 Charles 或 Sniffmaster:

  • 出现请求记录
  • 可以查看响应内容

这说明代理和证书已经生效


开始抓取 App 请求

在同样的环境下,打开目标 App。

触发一个操作,例如:

  • 登录
  • 获取数据

然后观察抓包工具。


两种可能情况

情况 1:可以看到请求

说明:

  • App 使用系统代理
  • 可以直接分析请求

此时可以查看:

  • 请求参数
  • Header
  • 返回数据

情况 2:没有任何请求

说明 App 没有走系统代理

此时需要换抓包方式。


切换到直接对设备进行抓包

当代理抓不到数据时,可以使用手机底层抓包工具,例如 SniffMaster(抓包大师)

这种方式不依赖 Wi-Fi 代理。


使用 SniffMaster 抓包

操作步骤:

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

然后在手机上触发请求。
暴力抓包


观察结果

在抓包界面中可以看到:

  • 请求域名
  • 请求路径
  • Header 信息

如果 App 请求存在,这里一定可以看到数据。


只抓某一个 App 的流量

设备级抓包会包含系统流量,例如:

  • DNS
  • Apple 服务

为了减少干扰,可以筛选 App。

操作步骤:

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

抓包列表只显示该 App 的数据。
选择app


当 HTTPS 数据不完整

如果抓包结果中:

  • 可以看到 URL
  • 但 Body 为空

说明:

  • HTTPS 已捕获
  • 但 App 未使用开发证书签名

处理方式:

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

完成后可以看到完整请求与响应。


需要修改请求时的做法

如果调试过程中需要:

  • 修改请求参数
  • 模拟接口返回

需要使用代理抓包工具。

例如在 Charles 或 Proxyman 中:

  • 开启 Breakpoints
  • 修改请求内容
  • 再发送请求

关于拦截器

SniffMaster 也支持拦截器,但需要注意拦截器功能只在代理模式下可用

设备级抓包模式不修改数据。
拦截器


分析网络连接问题

如果问题不是数据内容,而是连接问题,例如:

  • 请求超时
  • 接口偶尔失败

可以使用数据流抓包,并导出到 Wireshark。
数据流抓包

在 Wireshark 中可以查看:

  • TCP 建连过程
  • 数据重传
  • 连接断开原因

在 iPhone 抓包时,可以按下面方式来抓包:

  1. 用 Safari 验证代理与证书
  2. 尝试代理抓包
  3. 如果抓不到,切换手机底层抓包
  4. 如果数据不完整,处理签名问题
  5. 如果需要修改请求,使用代理模式