Types 推导Protobuf模式和数据类型

Types 推导Protobuf模式和数据类型,types,schema,protocol-buffers,decode,protobuf-c,Types,Schema,Protocol Buffers,Decode,Protobuf C,我有很多protobuf文件,但没有.proto模式文件 cat myfile.pbuf | protoc--decode_raw>outputfile.txt 使用上面的命令,我能够将文件解码成某种可读的protobuf格式(): 我知道,如果没有这个模式,我就无法知道这些值的含义,但我想知道,我是否还能做些什么来推断这种奇怪的现象是什么!这似乎表明数字数据是以2或4字节块的形式提供的,我可以很容易地将其转换为int或float 我的数据不适合这种格式,但我知道它是数字数据!我从未见过使用十六

我有很多protobuf文件,但没有.proto模式文件

cat myfile.pbuf | protoc--decode_raw>outputfile.txt

使用上面的命令,我能够将文件解码成某种可读的protobuf格式():

我知道,如果没有这个模式,我就无法知道这些值的含义,但我想知道,我是否还能做些什么来推断这种奇怪的现象是什么!这似乎表明数字数据是以2或4字节块的形式提供的,我可以很容易地将其转换为int或float

我的数据不适合这种格式,但我知道它是数字数据!我从未见过使用十六进制
x
表示法的protobuf文件,它有16个字节(对于单个数字来说太多了!)


这可能是什么数据类型,是否可以在没有模式的情况下解码和进一步解码,以及
1、2、3、4
是否有用或重要?

这些十六进制值实际上是8字节,而不是16字节。因此,这些值可能是int64s、uint64s或double。1、2、3和4似乎是重复消息中的字段号。除了手动检查数据并尝试猜测其含义之外,没有其他简单的方法可以进一步解码

1: 1
2: ""
2 {
  1: 0x40133f7ced916873
  2: 0x3ff70e5604189375
  3: 0xbfd23d70a3d70a3d
  4: 0x3fb999999999999a
}
2 {
  1: 0x4022e7ef9db22d0e
  2: 0x4006ed916872b021
  3: 0xbfe1cac083126e98
  4: 0x3fc999999999999a
}
2 {
  1: 0x402bdcac083126e9
  2: 0x40111374bc6a7efa
  3: 0xbfe9fbe76c8b4396
  4: 0x3fd3333333333333
}
2 {
  1: 0x40324147ae147ae1
  2: 0x401696872b020c4a
  3: 0xbff0e147ae147ae1
  4: 0x3fd999999999999a
}
...