【问题标题】:How to dissect UDP msgpack using Wireshark/tshark?如何使用 Wireshark/tshark 剖析 UDP msgpack?
【发布时间】:2019-12-15 11:24:09
【问题描述】:

从 v3.0.0 开始,Wireshark 支持 msgpack。我有一个捕获文件,其中包含我想剖析的封装在 UDP 中的 msgpack 消息。问题是当我跑步时:

tshark -r 1.pcap -d udp.port==60003,msgpack

我收到以下消息:

tshark: Protocol "msgpack" isn't valid for layer type "udp.port"
tshark: Valid protocols for layer type "udp.port" are:

支持的协议列表包含msgpack:

tshark -G protocols | grep msgpack
Message Pack    MsgPack msgpack

这里是示例捕获文件的链接:https://drive.google.com/file/d/1qZO-WKgTValghMjC4kM56B-M1FlYg5C2/view?usp=sharing

【问题讨论】:

  • 如果 msgpack 有一个类似 HTTP 的端口号,那么您将能够使用 -d decode-as 标志。 msgpack 是 JSON 替代品,所以我猜不是。你能提供一个包含协议的数据包捕获的链接吗?
  • 这里是示例捕获文件的链接:drive.google.com/file/d/1qZO-WKgTValghMjC4kM56B-M1FlYg5C2/…
  • 我撒谎了。您应该能够解码为 msgpack。这看起来像一个错误。我将通过 VVV 发布临时解决方案

标签: wireshark tshark msgpack wireshark-dissector


【解决方案1】:

在最新的 3.07 tshark 和 Wireshark 中无法解码为 msgpack(即,这看起来像一个错误)。觉得贤惠的可以file one

你仍然可以访问第 4 层之后的数据层。我们可以使用 shell 魔法来做相当于用你提供的文件解码层:

# Unix-like (Macos/Linux/BSD) systems ship with xxd.
# WSL on Windows will also have it.
bash$ tshark -r msgpack.pcap -T fields -e data | xxd -p -r | msgpack2json && echo
{"message_type":"complete_caching","generation":123992}

我们来了

  • 使用 tshark 将数据字段打印为 ASCII hex
  • 使用 xxd 将 text hex 转换为 bin hex
  • 使用msgpack-tools 中的msgpack2json 将二进制数据转换回JSON。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多