news 2026/7/13 3:51:18

HTTPS 抓包乱码这件事,通常不是编码问题那么简单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTTPS 抓包乱码这件事,通常不是编码问题那么简单

第一次遇到 HTTPS 抓包乱码,大多数人的反应都很直接:是不是字符集不对?是不是 gzip?是不是工具显示有问题?

我以前也是这么想的。但在真正排查过几次之后,会发现“乱码”只是结果,背后原因往往并不在显示层,而是在你到底抓到了什么

一次看似普通的乱码场景

事情起因很简单:
一个 iOS App 在真机环境下抓包,HTTPS 请求能看到,但 body 全是不可读的内容。Header 看起来正常,状态码也是 200,但响应体像是随机字节。

同样的接口,在测试环境、模拟器、甚至服务端日志里都是正常 JSON。

这个时候,如果直接下结论说“抓包工具不行”,往往会走偏。


先确认:抓到的是不是“解密后的 HTTPS”

HTTPS 抓包乱码,最常见的情况其实是:
你看到的内容并不是解密后的数据,而是 TLS 层之上的加密结果。

代理抓包工具在这一步非常有价值。
它们的优势不在于“万能”,而在于能快速验证一件事:

这个请求,在理想条件下能不能被正确解密?

在可控网络环境下,如果代理抓包能看到清晰的请求和响应,说明接口本身没有额外加密,乱码问题更可能出现在真机或安全机制上。


HTTPS Pinning 出现时,乱码就变成了信号

回到这个案例,代理抓包在模拟器里一切正常,真机却全部是乱码。
这时基本可以确定:不是编码问题,而是 HTTPS 校验策略在起作用

很多 App 在真机环境下启用了 HTTPS pinning,甚至是双向校验。这种情况下,代理工具往往只能看到连接存在,却无法完成真正的解密,于是就留下了一堆“看起来像乱码”的数据。

这里的关键不是“怎么显示”,而是你有没有权限看到明文


设备侧抓包,才能确认“真实通信内容”

在需要确认真实 HTTPS 内容时,我后来改用了抓包大师(Sniff Master)这类从设备侧抓取数据的工具。

它在这个流程里的作用很明确:
不是替代代理工具,而是验证一个假设——

这个 App 在真机上,到底发了什么、收了什么?

由于不依赖系统代理,也不需要改 App 或越狱,它更接近用户真实环境。
在同一个接口上,用 Sniff Master 抓到的数据已经是可读的结构化内容,这一步基本就可以确认:之前看到的“乱码”,并不是数据本身的问题。


并不是所有“可读内容”都是业务数据

不过事情并没有到此结束。

在进一步分析时发现,某些响应虽然不再是乱码,但内容依然不像业务 JSON。
这时就需要再往下看一层:是不是应用层又做了一次加密?

这一点很容易被忽略。
HTTPS 解决的是传输安全,不等于业务一定是明文。有些 SDK 会在 HTTPS 之上再包一层自定义加密,这时候即便 HTTPS 解密成功,内容依然“看不懂”。


数据流视角,帮忙判断“是不是二次加密”

判断是否存在二次加密,单看 HTTP 视图并不够。
我后来抓了一段 TCP 数据流,对比请求和响应长度、结构变化,发现数据具有明显的固定头和校验特征。

这类分析更偏数据流层,而不是接口层。
抓包大师支持直接抓 TCP / UDP 数据流,并导出给 Wireshark 做进一步分析,这一步的意义在于确认:

  • 这是不是一个稳定结构的数据包
  • 是否存在明显的协议格式
  • 是否需要再用业务逻辑去解码

一旦确认是二次加密,乱码就不再是“问题”,而只是“正常现象”。


乱码排查中,拦截和修改也有价值

在某些情况下,我会直接修改响应内容,观察客户端行为。
比如返回空数据、非法格式,或者替换部分字段,看看 App 是否能正常处理。

这类操作不一定是为了“破解”,而是为了确认客户端对数据的依赖程度
抓包大师支持通过拦截器和脚本修改请求和响应,这在验证假设时很方便。


HTTPS 抓包乱码,本质是视角问题

回头看这类问题,真正有用的不是“某个工具多强”,而是你是否清楚自己现在站在哪一层:

  • 代理抓包:验证接口逻辑
  • 设备抓包:还原真实 HTTPS 内容
  • 数据流抓包:判断是否存在额外协议或加密
  • 拦截修改:验证客户端处理逻辑

乱码只是一个表象,它提醒你:现在看到的,很可能还不是你真正要看的东西。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 11:33:38

Visual Studio中的 var 和 dynamic

目录 一、var 1.基础介绍 2.语法模板 二、dynamic 1.基础介绍 2.语法模板 三、两者关键区别--示例 四、核心特点对比 五、注意事项 var的注意事项 dynamic的注意事项 六、选择情况 一、var 1.基础介绍 var:隐式类型局部变量 定义:编译时由…

作者头像 李华
网站建设 2026/7/12 19:21:21

ONLYOFFICE 协作空间 3.6.1 发布:安全补丁与多项优化

我们很高兴地宣布 ONLYOFFICE 协作空间 3.6.1 正式发布。本次更新重点聚焦于安全漏洞修复和功能优化,在提升系统安全性的同时,进一步增强了 AI 智能体的使用体验。 关于 ONLYOFFICE 协作空间 ONLYOFFICE 协作空间是一款以 “房间”为核心概念的在线文档…

作者头像 李华
网站建设 2026/7/13 6:24:27

SPFA算法

在图论的世界里,“最短路径” 是个高频需求 —— 比如从家到公司的最优路线、网络中数据传输的最短延迟。我们知道 Dijkstra 算法很经典,但它怕负权边;Bellman-Ford 算法能处理负权边,却慢得让人着急。今天要讲的 SPFA 算法&#…

作者头像 李华
网站建设 2026/7/13 2:19:28

高频Jmeter软件测试面试题

近期,有很多粉丝在催更关于Jmeter的面试题,索性抽空整理了一波,以下是一些高频Jmeter面试题,拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样,它收集来自目标服务器的响应以及其他统…

作者头像 李华
网站建设 2026/7/12 9:46:17

aliexpress 逆向分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分python代码n231 cp.call(get231, …

作者头像 李华
网站建设 2026/7/13 8:53:39

腾讯滑块 collect分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分python代码pow_cfg data["dat…

作者头像 李华