2026 最新 iOS 抓包方案实测,Charles vs SniffMaster vs Proxyman

0 阅读4分钟

这次测试的目标很简单:

  • 在同一台 iPhone 上
  • 用同一套网络环境
  • 分别使用 Charles、Proxyman、SniffMaster
  • 观察三种场景下的抓包结果

测试环境:

  • iOS 17.5
  • 一台 Windows 电脑 + 一台 Mac
  • 一个普通 HTTPS App
  • 一个开启证书校验的 App

一、代理抓包路径,Charles 与 Proxyman

1. 建立代理环境

两款工具的第一步都相同:

  • 启动软件
  • 开启系统代理监听
  • iPhone 与电脑同一 Wi-Fi
  • 在 iPhone Wi-Fi 设置中填写代理地址与端口
  • 安装并信任证书

验证方式统一:

  • 打开 Safari
  • 访问 https 网站
  • 确认 HTTPS 被成功解密

Safari 成功显示,说明代理路径没问题。


2. 抓普通 HTTPS App

在代理已经生效的情况下,打开测试 App。

结果:

  • Charles 能看到请求
  • Proxyman 也能看到请求
  • 请求与响应体完整

这说明,在未开启 SSL Pinning 的场景下,三款工具在代理模式下行为一致。


3. 抓开启证书校验的 App

第二个测试 App 内部做了证书校验。

操作步骤保持一致,仅更换测试 App。

现象:

  • Charles 中出现 TLS 握手失败
  • Proxyman 中也显示连接错误
  • App 提示网络异常

代理工具本身没有异常,阻断发生在 App 内部。


二、切换抓包方式,SniffMaster 设备本机抓包

当代理路径被证书校验阻断时,我没有继续调整代理参数,而是切换抓包方式。

1. 使用 SniffMaster 进行设备本机抓包

操作步骤如下:

  • 用 USB 将 iPhone 连接电脑
  • 保持设备解锁
  • 启动 SniffMaster
  • 在设备列表中选择对应 iPhone
  • 按提示安装驱动与描述文件
  • 进入 HTTPS 暴力抓包模式
  • 点击开始

没有配置 Wi-Fi 代理,也没有额外安装代理证书。 暴力抓包


2. 抓普通 HTTPS App

在该模式下打开普通测试 App。

结果:

  • 请求正常出现
  • 响应体完整显示
  • 可按 App 筛选流量

与代理模式下的效果一致。


3. 抓开启证书校验的 App

接着测试开启 SSL 校验的 App。

结果不同于代理工具:

  • 请求仍然可以看到
  • HTTPS 内容可显示
  • 未出现握手失败

这里的区别来自抓包位置不同。

代理工具位于客户端与服务器之间,需要替换证书。 SniffMaster 设备本机抓包不依赖代理替换。


三、当请求体不完整时的现象

在设备级抓包中,如果测试的是 App Store 下载的应用:

  • 可以看到 URL
  • 可以看到 Header
  • Body 为空

这不是工具异常,而是签名限制。

处理步骤如下:

  • 获取 IPA
  • 使用 iOS 开发证书重签
  • 重新安装
  • 再次抓包

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


四、修改请求与响应能力对比

测试修改响应的能力时,只在代理模式下进行。

Charles

  • 支持 Rewrite
  • 支持 Breakpoints
  • 可手动或规则替换

Proxyman

  • 支持 Scripting
  • 支持 Rewrite Rules
  • UI 较为直观

SniffMaster

  • 仅在 HTTPS 代理抓包模式 下提供拦截器
  • 通过 JS 编写 handleRequest / handleResponse
  • 不在设备级模式下提供拦截功能 拦截器

三者的共同点:

  • 都依赖代理路径
  • 都无法在设备级模式下修改数据

五、TCP 层分析对比

在测试网络异常场景时,我导出数据做 TCP 分析。

  • Charles:支持保存为会话文件
  • Proxyman:支持导出
  • SniffMaster:支持导出为 Wireshark 格式

将 SniffMaster 导出的文件导入 Wireshark 后,可以看到:

  • TCP 建连
  • 重传
  • 窗口变化

这一步主要用于分析连接问题。


六、三个工具各自的作用

经过完整流程后,可以把三者分为不同场景:

工具抓包方式是否依赖代理是否支持修改
Charles代理抓包
Proxyman代理抓包
SniffMaster代理 + 设备级代理模式依赖仅代理模式

七、实测结论建立在操作结果上

在这次测试中,可以直接验证的现象包括:

  • Safari 是否可解密
  • App 是否走代理
  • TLS 是否失败
  • 设备级模式是否能看到数据
  • 是否需要重签

每一步都有可观察结果,而不是猜测。


八、什么时候用哪一个

当目标是:

  • 修改接口参数 → 使用代理工具
  • 分析证书校验 → 设备本机抓包
  • 查看 TCP 行为 → 导出到 Wireshark

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