protocol-buffers - 无需 schema 即可读取 Protobuf 数据

标签 protocol-buffers

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

enter image description here enter image description here

最佳答案

如果您没有架构,坦率地说,您需要对其进行逆向工程。或者追查数据来源并获取现有数据,这通常要容易得多。

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

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

另外,对于最后 3 个选项,相同的有效负载可以是 32 位或 64 位(这不会改变该值,但如果以后的值更大,则可能会发生变化)。

如果您需要帮助,我也许可以看一下 - 我已经对 protobuf 架构进行了多次逆向工程。


如果您只想对解释流进行原始访问,protobuf-net 有一个 ProtoReader 类型,它的工作方式与 XmlReader 等类似,并且可能会帮助您。但上述所有含糊之处仍将存在。

关于protocol-buffers - 无需 schema 即可读取 Protobuf 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59419056/

相关文章:

c# - 带有扩展的 Protocol Buffer

c# - 我可以反序列化为 protobuf-net 中接口(interface)的只读属性吗?

c++ - 添加到重复字段的指针会自动删除吗?

c++ - 如何编译Google Protobuf命令行界面编译

java - 在 C++ 的 Java 中失败 ParseFrom 消息

protocol-buffers - 在预构建事件中使用 protogen 从 .proto 文件生成 c# 文件

http - 使用 Protobufs 的批处理技术

c++ - 对 google::protobuf::internal::empty_string_[abi:cxx11] 的 undefined reference

c protobuf数据无法反序列化/解包?

json - 如何使用 jsonpb 将 JSON 解码为包含一个定义的 protobuf?