我有许多protobuf文件但没有.proto架构文件!
cat myfile.pbuf | protoc --decode_raw > outputfile.txt
使用上面的命令,我能够将文件解码为稍微可读的protobuf格式(Thanks):
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
}
...
我知道没有架构我无法知道这些值的含义,但我想知道是否还有其他任何东西可以推断出这种奇怪的含义! protobuf documentation似乎表明数字数据以2或4个字节的形式提供,我可以很容易地将其转换为整数或浮点数。
我的数据不适合这种格式,但我知道它是数字数据!我从未见过使用十六进制x
表示法的protobuf文件,并且有16个字节(单个数字太多了!)。
这可能是什么数据类型,是否可以进行解码,并且没有架构,1, 2, 3, 4
是否有用或重要?
答案 0 :(得分:0)
这些十六进制值实际上是8个字节,而不是16.所以这些值可以想象为int64s,uint64s或double。 1,2,3和4似乎是重复消息中的字段编号。除了手动检查数据并尝试猜测其含义之外,没有简单的方法可以进一步解码。