如何在Wireshark中解析protobuf数据包

B. *_*Nir 5 python lua wireshark tshark lua-table

我的目标是拥有一个插件/解析器,可以解析基于 protobuf (UDP) 的协议。
我在网上找到了一个用于协议缓冲区消息的自动生成 Wireshark/Ethereal 解剖器插件:https : //code.google.com/archive/p/protobuf-wireshark/
当我按照自述文件我跳过“第 1:安装Wireshark from source”,因为我已经安装了它(版本 1.12.3)。

第 2 步:准备协议缓冲区-

这一步我不明白,我如何安装libprotobuf以及在哪里?

第 3 步:更新wireshark 配置文件-

我不确定什么是“wireshark_src_dir”

我创建了一个带有wireshark.conf文件:
wireshark_src_dir :C:\ Program Files文件(x86)的\ Wireshark的
wireshark_install_dir:C:\ Program Files文件(x86)的\ Wireshark的
wireshark_version :1.12.3

第 4 步:运行 make_wireshark_plugin.py - 对于这一步,我下载并安装了 python-3.6.0-amd64.exe。

当我运行它时,我得到一个错误:回溯(最近一次调用最后一次):文件“C:\ProtoBuff\protobuff\make_wireshark_plugin.py”,第 91 行,在 f=open("configure.in","r") FileNotFoundError: [Errno 2] 没有这样的文件或目录:'configure.in'。

这个文件在我从 github 下载的包中确实不存在。我从哪里得到这个文件?我需要创建这样的吗?这个 make_wireshark_plugin.py 生成什么?

第 5 步:创建 proto 配置文件- 所有 proto 配置文件都需要在 /usr/share/wireshark/protobuf 或 $HOME/.wireshark/protobuf 中。

我在wireshark安装路径中没有共享文件夹和protobuf文件夹。我可以简单地将 proto 配置文件放在 plugins 文件夹中吗?

小智 8

从 3.2.0 版开始,Wireshark 中添加了有关 Protobuf 和 gRPC 解析器的新功能:

  • 现在可以配置 Protobuf 文件 (*.proto) 以更精确地解析序列化的 Protobuf 数据(例如 gRPC)。
  • 现在可以通过支持 HTTP2 流模式重组功能来解析流 gRPC 方法的消息。
  • 用户可以在 Protobuf 协议首选项中指定 protobuf 搜索路径(其中包含 *.proto 文件),以及到 protobuf 消息类型映射的 UDP 端口。
  • 如果你自己的解剖器需要调用protobuf解剖器,你可以通过数据参数(在C中)或pinfo->private_table["pb_msg_type"](在lua中为pinfo.private["pb_msg_type"])将消息类型传递给Protobuf解剖器。

另外两个新特性将在 3.3.0 或 3.4.0 中发布:

  • Protobuf 字段可以解析为wireshark(标题)字段,允许用户在过滤器工具栏中输入 Protobuf 字段或消息的全名进行搜索。
  • 基于 Protobuf 的解析器可以将自己注册到一个新的“protobuf_field”解析器表中,该表以字段的全名为键,用于进一步解析 BYETS 或 STRING 类型的字段。

参考:


had*_*iel 4

您可以使用这个,它不需要编译任何东西:https ://github.com/128technology/protobuf_dissector