Skip to content

iPhone 抓包后解密 AES 加密的接口数据

有些 App 在 HTTPS 之上又对接口 Body 做了一层加密。在 HTTPS Capture 里添加 AES 解密规则并填入密钥和 IV,就能在 iPhone 上直接看到明文。

2 分钟阅读HTTPS Capture

HTTPS 已经解密了,响应 Body 却还是一堆看不懂的二进制?这通常说明 App 在 HTTPS 连接里又加了 一层自己的加密,最常见的是 AES。如果你在调试自己的 App,或者有授权的测试项目,手里本来就有密钥,这时可以用 HTTPS Capture 在请求详情里直接解密这些 Body。

AES 解密功能做什么

AES 解密规则告诉 HTTPS Capture 哪些 URL 的 Body 是加密的、应该怎么解。查看匹配的请求时,会出现一个 AES 解密 开关,打开就能看到明文。

解密只影响 你看到的内容,App 和服务器之间传输的数据不会被修改。

第一步:添加 AES 规则

  1. 在抓包页点 规则 → AES 解密。
  2. 打开 启用 AES 解密,点 +。
  3. URL 匹配模式:Body 被加密的接口路径,选 包含 或 正则表达式。
  4. 应用到:请求 Body、响应 Body,或者两者都解。
  5. 密钥长度:128-bit、192-bit 或 256-bit。
  6. 密钥:直接输入文本;二进制密钥可以加 base64: 前缀粘贴,比如 base64:q83vEjRWeJA=。
  7. 模式:CBC 需要填写 IV(同样支持文本或 base64:),ECB 不需要 IV。
  8. 填充:绝大多数情况选 PKCS7;只有数据本身已经按 16 字节对齐时才选 None。
  9. 保存。

第二步:查看解密后的 Body

  1. 在抓包列表里打开一条匹配的请求。
  2. 点 数据 区域里的 Body,打开完整预览。
  3. 打开顶部的 AES 解密 开关。

现在 Preview、Raw、Hex 视图显示的都是解密后的数据,JSON 会自动格式化。如果解出来的不是有效文本,会显示一条简短提示,这时检查一下密钥、IV、模式和填充是否正确。

前提和限制

  • Body 必须是 原始的加密字节。如果接口把密文转成 Base64 文本返回,或者放在某个 JSON 字段里,这条规则没法直接解。
  • 只支持 CBC 和 ECB 模式的 AES,不支持 GCM、CTR 等模式。
  • 密钥或 IV 太短会补零,太长会按所选长度截断。这和很多 App 的实现一致,但如果结果不对,先仔细核对密钥。
  • 对同一个 URL 和方向,只使用第一条匹配的已启用规则。

合规使用

只解密你自己开发、或明确获得授权测试的 App 的流量。填写的密钥会随规则保存在手机上,不再需要的规则请及时删除。

相关阅读:查看 WebSocket 和 Protobuf 消息 · 用 JavaScript 修改流量

HTTPS Capture

Capture and decrypt HTTPS traffic on iPhone

App Store

准备好试试了吗?

HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone

App Store 免费下载