iOS App 抓包看不到内容,从有请求没数据一步步排查

在抓包工具里看到请求,但点进去之后发现Body 是空的,Response 显示为加密数据,或者根本没有响应内容

这种情况比抓不到包更容易让人烦,因为请求确实存在,只是内容看不到 被加密了。


先确认是哪一种看不到内容

打开 Charles、Sniffmaster 或 Proxyman,点击一条请求,重点看三个位置:

  • Request Body
  • Response Body
  • Status Code

三种常见表现

表现 1:Response 是乱码或不可读

说明 HTTPS 已经接收了,但没有被解密

表现 2:Body 完全为空

说明请求结构被抓到,但数据未被还原

表现 3:请求正常但返回 0 字节

说明请求可能被中断或未完成

不同表现,对应不同处理方式。


验证 HTTPS 解密是否正常

先用浏览器做一个对照。

在同一设备上:

  1. 打开 Safari
  2. 访问 HTTPS 网站
  3. 查看抓包工具

对比结果

如果 Safari 也看不到内容

说明证书未生效

需要重新操作:

  1. 删除旧证书
  2. 重新安装
  3. 在证书信任设置中开启信任
  4. 重新打开浏览器测试

如果 Safari 正常,App 不正常

说明 App 内部做了额外处理(例如证书校验)

继续看下一步。


确认请求是否被代理拦截

在 Charles 中观察请求的连接方式。

如果请求没有出现在代理工具里,而是后来通过其他方式抓到,说明 App 可能没有走系统代理


验证方法

关闭 Wi-Fi,重新触发请求:

  • 如果 App 报错 → 请求确实存在
  • 如果代理工具没有记录 → 没走代理

此时需要换抓包方式。


对设备直接抓包确认真实数据

使用 SniffMaster(抓包大师) 进行对手机直接抓包。


操作步骤

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

然后触发 App 请求。


观察结果

如果在这里可以看到:

  • URL
  • Header

说明请求确实存在。


定位Body 看不到的原因

如果在 SniffMaster 中仍然:

  • Body 为空
  • Response 不完整

可以直接判断与证书无关,而是应用本身限制


处理方式:重新签名

操作流程:

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

变化观察

重新签名后:

  • Request Body 出现
  • Response 内容可见

这是一个可以直接验证的变化。


另一种情况:数据被编码

有时抓到的数据不是空,而是:

  • Base64
  • 压缩数据

在 SniffMaster 中可以看到字段:

  • IsBase64Body = true

处理方式

需要:

  1. 解码 Base64
  2. 或在工具中查看解码后的内容

如果是二进制协议,需要结合协议解析。


避免误判为空数据的一个技巧

在抓包界面中:

  1. 查看 Content-Length
  2. 查看响应大小

判断方法

  • Content-Length > 0 → 数据存在
  • 显示为空 → 可能是编码或未解析

可以通过导出数据进一步分析。

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

相关推荐
小码哥06827 分钟前
从三甲综合医院到连锁诊所:医院管理小程序的场景化突围逻辑(陪诊系统-陪诊APP-陪诊小程序)
小程序·医院管理系统·陪诊小程序·陪诊系统·陪诊app
齊家治國平天下28 分钟前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
Xzaveir1 小时前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能
2501_916007471 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
黄林晴2 小时前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
游戏开发爱好者82 小时前
iOS开发IDE有哪些 Xcode 和 快蝎 轻量替代方案
ide·vscode·ios·个人开发·xcode·swift·敏捷流程
恋猫de小郭2 小时前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
正在走向自律2 小时前
用豆包Seed Evolving打造全功能【AI智能记账】小程序,开源可落地
人工智能·小程序·开源·智能记账
HLC++15 小时前
Linux的进程间通信
android·linux·服务器
爱笑鱼18 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android