无需模式即可读取Protobuf数据

时间:2019-12-20 02:04:26

标签: protocol-buffers

一个是原始数据,另一个是由网络分析仪转换的数据。如何使用C#将数据转换为Web分析器?我没有模特。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

如果没有架构,坦率地说,您需要对一个架构进行反向工程。或追逐数据源并获得现有数据,这通常要容易得多。

Protobuf是一种不明确的格式,如果要解码许多“电线类型”,则没有一种正确的单向方式。您可以使用protoc(在解码原始模式下)或https://protogen.marcgravell.com/decode之类的工具来尝试对原始数据进行解密,以尝试将模式组合在一起,但这有点乏味并且通常需要一些知识数据应该。例如,在varint步骤之后的“变体”可能是:

  • 一个枚举
  • 二进制补码有符号整数
  • 二进制补码无符号整数
  • Z字形有符号整数

加上最后3个选项,相同的有效负载可以是32位或64位(这不会更改值,但是如果后面的值更大,则可能会改变内容)。

如果您需要帮助,我也许可以看一下-我对protobuf模式进行了多次反向工程。


如果您只想原始访问解释后的流,protobuf-net的ProtoReader类型与XmlReader等类似,可以为您提供帮助。但是上述所有歧义都将保留。