iOS 抓包
在 iPhone / iPad 上抓包,向来是最麻烦的一件事,别的工具往往要么得越狱,要么只能架代理(还得装描述文件、装证书,碰上证书绑定的 App 又抓不到)。iOS 抓包提供三种非越狱方式,从「零配置看系统请求」到「整机全量」再到「单个 App 完整明文」,总有一种拿下你的目标。
一、通用准备
Section titled “一、通用准备”- 连接设备:用数据线把 iPhone / iPad 连上电脑,设备上点 信任。
- 无需越狱:三种方式都面向非越狱设备。
- 兼容新系统:较新的 iOS(含 iOS 17 及以上)换用了新的设备通道,这里依然能正常连接与抓包。
- 同一设备若也在同网络出现,按 USB / 网络 选那条。
二、三种方式怎么选
Section titled “二、三种方式怎么选”| 你的需求 | 用哪种 | 能看到什么 | 要不要装证书 / 重签 |
|---|---|---|---|
| 快速看系统发出了哪些 HTTPS 请求(地址 / 状态 / 头) | 系统级抓包 | 普通 App 也能用(普通 App 看不到 Body) | 都不用,只装一个诊断描述文件 |
| 整机全部流量(含非 HTTP、握手 / SNI) | 网卡抓包 | 全量数据(默认密文,可定点解密) | 看密文不用;解密某 App 才需重签 |
| 某个 App 的完整明文收发(含 Body) | 应用层抓包 | 单 App 完整明文 | 目标 App 需开发证书重签名 |
三种都不越狱。系统级抓包尤其省心:普通 App、App Store 应用也能看到它请求了哪些 HTTPS 地址,这是很多工具在非越狱 iPhone 上做不到的。
三、系统级抓包,最省心,普通 App 也能用
Section titled “三、系统级抓包,最省心,普通 App 也能用”想快速看清「这台 iPhone 都发出了哪些 HTTPS 请求」,又不想装证书、设代理、处理证书绑定,这是最省心的方式。
- 列出系统发出的 HTTP(S) 事务:请求方法、完整 URL(HTTPS 也是明文地址)、状态码、请求头与响应头。
- 无需装 CA 证书、无需设代理、无需处理证书绑定。
- 能看到多少,受系统诊断日志本身的限制:
- 普通 App、App Store 应用:通常只能看到请求地址与请求头。
- 开发证书签名的 App:可看到完整的请求 / 响应 Body。
前提:需安装配套的设备诊断描述文件(一次即可)。
四、网卡抓包,看这台设备的一切
Section titled “四、网卡抓包,看这台设备的一切”抓设备整台的全部网络流量,不限 App、不限协议,连非 HTTP 的 QUIC、自定义协议都在。
- 默认看到什么:默认是密文包 + 元数据(目标地址、端口,以及 TLS 握手里的 SNI 主机名),足以看清「这台设备连了哪些地方、用什么协议」。
- 想看明文:对目标 App 用「解密此程序」勾选即可解出其明文;前提是该 App 已用开发证书重签名。
五、应用层抓包,单个 App 的完整明文
Section titled “五、应用层抓包,单个 App 的完整明文”针对单个 App,直接获取它收发的完整明文(含 Body),证书绑定也拦不住,因为它从 App 内部取。
- 重启目标程序:可先关掉再重新启动 App,把它启动初期的流量也抓到。
- 解不出明文时开「socket 流量」兜底:遇到静态链接 / 自研库、常规方式取不到明文的 App,打开这个开关换一条更底层的路取数据。
- App 列表里只有开发证书重签名的 App 可选,其余会置灰。
前提:目标 App 需用开发证书重签名,App Store 与系统 App 需先重签才能作为目标。
六、也可以用代理抓包
Section titled “六、也可以用代理抓包”除了以上三种,iPhone / iPad 还能用代理抓包:把设备的 Wi‑Fi 代理指向本机、装上根证书,即可像电脑一样抓 HTTPS 明文,并使用改写、重放等完整能力。适合调试走系统代理的 App、或需要对移动端请求做规则改写 / 重放的场景。
七、什么时候用 iOS 抓包
Section titled “七、什么时候用 iOS 抓包”- 快速排查「App 请求了哪些接口、返回什么」,系统级抓包最省事,连普通 App 都能用。
- 要看整机所有流量(含非 HTTP),用网卡抓包。
- 能重签目标 App、要它完整明文 Body,用应用层抓包。
- 想边看边改(改写 / 重放移动端请求),用代理抓包。