You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将浏览器调试工具中获取的非可读Websocket消息转为可读格式?

WebSocket二进制消息可读化解法

1. 消息无法直接阅读的原因

大部分业务场景下WebSocket不会用明文JSON传输,会采用体积更小、性能更高的二进制序列化方案(最常见为Protobuf、MessagePack),所以浏览器调试工具只会展示原始十六进制/二进制内容,不会自动转为可读文本。

2. 已获取Hex内容的解码方法

你提供的样例Hex已经包含可识别的明文片段,符合Protobuf序列化特征,可按以下步骤解码:

  • 第一步先把Hex字符串转为原始二进制流,可通过Python快速实现:
raw_bytes = bytes.fromhex("08f8 cac4 0212 380a 0930 2e30 2e30 2d64 6576 122b 4265 6172 6572 2066 6438 3866 6661 642d 3231 6633".replace(" ", ""))
  • 第二步解码Protobuf内容:
    • 如果你有对应业务的.proto接口定义文件:直接用protoc工具或对应语言的Protobuf库,将二进制流传入对应消息结构体反序列化,即可得到带字段名的完整可读内容。
    • 如果没有.proto定义:可以用Protobuf原生的盲解功能,执行命令echo 二进制流内容 | protoc --decode_raw即可得到字段编号与对应值的映射关系,你提供的样例盲解后已经可以识别出3个字段:整数字段1值为72131832、字符串字段2值为0.0.0-dev、字符串字段3值为Bearer fd88ffad-21f3。

3. Wireshark无法过滤到WebSocket包的解决方法

  • 确认抓包网卡选择正确:如果是本地调试的服务,需要选择Loopback环回网卡,默认选择以太网/无线网卡会抓不到本地回环请求。
  • 如果是wss加密WebSocket请求:Wireshark默认抓到的是加密TLS包,无法识别为WebSocket。你可以先配置浏览器导出SSLKEYLOGFILE日志,再在Wireshark「编辑-首选项-Protocols-TLS」中导入该日志文件,即可解密TLS流量,后续用websocket过滤就能搜到对应包,且能直接查看解密后的payload。
  • 临时测试可以将站点改为ws非加密模式访问,Wireshark可直接识别WebSocket流量,无需额外配置密钥。

内容的提问来源于stack exchange,提问作者FromScratch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:06