iOS App HTTPS 抓包,从系统代理到设备上直接抓包

0 阅读4分钟

在调试 App HTTPS 接口时,最容易走偏的一步,就是一上来就安装证书、配置代理。 但 HTTPS 能不能被抓到,其实是请求是否走到了工具的位置

所以在真正抓包之前,我会先做一件看起来无关、但非常关键的事情,确认 App 的请求是怎么发出去的。


第一步,确认请求是否真实存在

不借助任何抓包工具,也可以先判断请求是否已经发出。

操作方式很简单:

  • 打开 App,进入触发网络请求的页面
  • 关闭 Wi-Fi 或蜂窝网络
  • 重复同样的操作

如果页面状态、错误提示或加载行为发生变化,说明这一步确实涉及网络请求。 如果行为完全一致,抓包之前需要先确认业务逻辑是否真的走到了请求阶段。


第二步,用代理工具验证系统网络路径

当确认请求存在后,可以先使用代理型工具验证最常见的方法检测App 是否走系统代理。

操作流程

  • 在电脑上启动代理工具(如 Charles / Fiddler)
  • iPhone 与电脑连接同一局域网
  • 在 iOS 的 Wi-Fi 设置中填写代理地址与端口
  • 在手机上安装并信任代理证书
  • 打开 Safari 访问一个 HTTPS 网站

如果 Safari 请求能完整显示,说明代理链路与证书配置是有效的。


Safari 能抓到,App 抓不到,说明了什么

当 Safari 的 HTTPS 请求可见,而 App 没有任何数据出现时,可以直接得出该 App 的网络请求没有经过系统代理。

这意味着继续在代理工具中调整设置,不会让 App 的请求突然出现。 此时需要切换抓包方式,而不是继续优化同一条路径。


用底层数据确认请求是否被绕过

在放弃代理之前,可以用网络工具确认请求是否已经离开设备。

观察的不是 HTTPS 内容,而是请求本身:

  • 是否有 DNS 查询
  • 是否建立 TCP 连接
  • 是否出现 TLS ClientHello

如果这些都存在,说明请求已经发出,只是代理工具抓不到


切换到手机 HTTPS 抓包

当确认 App 绕过系统代理后,需要使用不依赖代理的抓包方式。

使用抓包大师(Sniff Master)进行 App HTTPS 抓包

抓包大师提供设备 HTTPS 抓包能力,直接从 iOS 设备获取网络数据。

操作步骤集中且明确:

  • 使用 USB 将 iPhone 连接电脑
  • 保持设备解锁并信任电脑
  • 启动抓包大师并选择对应的 iOS 设备
  • 按提示完成驱动与描述文件安装
  • 进入 HTTPS 暴力抓包相关模式并开始抓包

整个流程不需要在手机上设置 Wi-Fi 代理,也不需要手动信任抓包证书。 进入暴力抓包


通过 App 级筛选减少无关流量

设备级抓包启动后,会同时捕获系统服务与后台进程的请求。

在抓包大师中,可以:

  • 点击「选择 App」
  • 仅勾选目标应用
  • 再次触发业务操作

这样可以在抓包列表中直接看到与当前操作对应的 HTTPS 请求。 筛选app


判断 HTTPS 数据是否完整

在抓包结果中,可以通过一个直观现象判断当前状态:

  • 能看到 URL 和 Header
  • 请求体或响应体为空

这表示 HTTPS 已被捕获,但 App 未使用 iOS 开发证书签名

常见于:

  • App Store 下载的应用
  • 系统自带 App

此时工具本身没有异常,数据缺失来自平台限制。


需要完整请求体时的处理方法

如果调试目标需要查看请求体或响应体,操作方式是:

  • 获取目标 App 的 IPA
  • 使用 iOS 开发证书重新签名
  • 如 IPA 加密,先完成脱壳
  • 安装重签后的 App
  • 重新进行 HTTPS 抓包

完成后,HTTPS 请求与响应内容即可完整展示。


拦截与修改的上限

在 App HTTPS 抓包过程中,需要明确功能上限:

  • 代理抓包模式
    • 可使用请求 / 响应拦截器
    • 可修改 Header、Body、状态码
  • 设备 HTTPS 暴力抓包
    • 只负责采集与解密
    • 不提供拦截或修改能力

在需要验证客户端逻辑分支时,需要明确回到代理路径。


把 App HTTPS 抓包拆来看开

完整的 App HTTPS 抓包流程,可以拆成:

  • 代理工具:验证是否走系统网络
  • 网络层工具:确认请求是否真实存在
  • 设备抓包:获取真实 HTTPS 数据
  • 重签名:解决数据不完整问题

每一步都有明确的判断标准,而不是反复尝试同一配置。

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