如何反编译结构未知的protobuff文件

How to decompile protobuff files with unknown structure

我正在尝试从 protobuff 文件中获取原始数据。我找到了一些在线存储库(例如 Protobuff dot net),但它们要求您初始化 class 或结构以将文件反序列化为。在我的例子中,这有点问题,因为 (1) 我不知道结构,并且 (2) 它很可能经常变化。

有什么方法可以在没有已知 structure/class 的情况下尝试反序列化文件?

您可以使用 protoc 工具的 --decode_raw 标志获取有限的信息:

protoc --decode_raw < data.pb

但是,如果没有类型信息,您将只能看到数字标签和对类型的最佳猜测。但是,这是您能做的最好的事情——protobuf 是高效的,因为它避免了在线路上放置太多类型信息,而不是依赖两端已经知道的类型。