iOS 抓包不越狱,代理抓包 和 数据线直连抓包两种实现方式

在 iOS 上做网络调试时,经常会遇到设备不能越狱,这个情况下,抓包方式会受到一些限制,但仍然可以完成大多数调试任务。

下面说明在不越狱的情况下如何抓取 iOS 网络请求。


先从代理抓包开始

第一种方式是代理抓包。

适用场景:

  • App 使用系统网络栈
  • 请求走系统代理
  • 没有额外的证书校验

使用工具:

  • Charles
  • Proxyman
  • Sniffmaster

配置代理环境

操作步骤:

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

保存后返回桌面。


安装 HTTPS 证书

在 iPhone 上:

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

验证代理是否成功

打开 Safari 访问 HTTPS 网站。

观察 Charles:

  • 可以看到请求
  • 可以查看响应

说明代理环境已经生效。


尝试抓取 App 请求

在代理环境下打开目标 App。

触发网络操作,例如登录和请求数据,观察抓包工具。


两种结果

可以抓到请求

说明App 走系统代理,可以直接分析 HTTPS 数据


抓不到请求

说明App 没有使用系统代理,或存在证书校验机制


切换到数据线直连抓包

在不越狱的情况下,如果代理无法抓到请求,可以使用数据线连接手机直接抓包,比如使用 SniffMaster(抓包大师)

这种方式不依赖代理,也不需要手动安装证书用于解密。


使用 SniffMaster 抓包

操作步骤:

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

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


观察结果

在抓包界面中可以看到请求域名、请求路径、Header 信息

即使 App 没有走代理,也可以看到请求。


针对单个 App 进行筛选

解密抓包会包含系统流量。

为了减少干扰,可以只抓某个 App。

操作步骤:

  1. 点击 选择 App
  2. 勾选目标应用
  3. 开始抓包

此时抓包列表只包含该应用的请求。


当数据不完整时的处理

在抓包过程中,可能会出现 URL 可见、Header 可见、Body 为空

这说明 HTTPS 已经被捕获、但 App 未使用开发证书签名

处理步骤:

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

完成后可以查看完整请求数据。


需要修改请求时的选择

在调试接口时,有时需要修改请求或响应。

这种情况下需要使用代理抓包工具:

  • Charles
  • Proxyman
  • Sniffmaster

可以通过:

  • Breakpoints
  • Rewrite
  • 拦截器

修改请求内容。


结合 Wireshark 分析连接问题

如果需要分析网络连接,例如:

  • 请求超时
  • 数据丢失

可以:

  1. 使用 SniffMaster 抓取数据流
  2. 导出到 Wireshark

在 Wireshark 中可以查看:

  • TCP 三次握手
  • 数据传输过程
  • 连接关闭原因

参考链接:https://www.sniffmaster.net/blog/135

相关推荐
萝卜er4 分钟前
ContentProvider 与跨进程数据访问-《Android深水区(八)》
android
萝卜er5 分钟前
Service、前台服务与后台限制-《Android深水区(六)》
android
萝卜er13 分钟前
Android 存储体系与分区存储-《Android深水区(十二)》
android
会编程的吕洞宾23 分钟前
DeepAgents In Action学习(Second)
android·java·学习
梦梦代码精36 分钟前
基于UniApp+Vue3+ThinkPHP 8,这套知识付费系统的架构设计有点东西
java·低代码·docker·uni-app·开源·php
太子釢1 小时前
用 AI 完整实现 Github 客户端:基于 KMP + SwiftUI + Compose
android·人工智能·ios
汪海游龙1 小时前
本地源码还是 Maven 版本?Gradle composite build 双轨依赖的正确接法
android·ci/cd·kotlin
k3x1n1 小时前
三星安卓系统BUG排查记录:云闪付、铁路12306、个人所得税、中国移动等App,长期闪退的根本原因分析
android·逆向
我是谁的程序员3 小时前
Windows / Linux / Mac 上不用 Xcode 把 IPA 上传到 App Store,upload 命令详解
后端·ios
iFlyCai3 小时前
iOS中的单例模式详解
ios·单例模式·objective-c·多线程·swift