【发布时间】:2019-10-24 16:43:18
【问题描述】:
我有一个 protobufs 的序列化 bin 文件,主要用 protobufs-net 编写。 我想反编译一下,看看它的结构。
我使用了一些工具,例如:
https://protogen.marcgravell.com/decode
我也用protoc:
protoc --decode_raw < ~/Downloads/file.bin
这是我得到的结果的一部分:
1 {
1: "4f81b7bb-d8bd-e911-9c1f-06ec640006bb"
2: 0x404105b1663ef93a
3: 0x4049c6158c593f36
4: 0x40400000
5 {
1: "53f8afde-04c6-e811-910e-4622e9d1766e"
2 {
1: "e993fba0-8fc9-e811-9c15-06ec640006bb"
}
2 {
1: "9a7c7210-3aca-e811-9c15-06ec640006bb"
2: 1
}
2 {
1: "2d7d12f1-2bc9-e811-9c15-06ec640006bb"
}
3: 18446744073709551615
}
6: 46
7: 1571059279000
}
我如何反编译它?我想知道其中的结构并更改数据并制作一个新的 bin 文件。
【问题讨论】:
-
好吧,您需要更改哪些字段?最简单的方法是创建自己的 .proto 与上述风格相匹配,并反序列化/变异/序列化
-
好吧,我没有关于这个程序的任何信息,我只有 bin 文件,没有其他信息
-
取决于报告的电线类型(varint vs fixed32 vs fixed64 等),这看起来只是一堆带有重复子消息的 int32/string/etc... 你有实际的 bin ?
-
注意:如果您不能在此处发布文件,但您可以更私密地共享它,请随时通过电子邮件将其发送给我,我可以轻松地从中逆向工程一个可通过的架构。它不会有原始名称,我们不知道某些字段是否是 zig-zag 等,但是:它会往返正常,所以应该在这里工作
-
如果它很小且没有特权:只需在问题中发布十六进制或 base-64。否则再次:电子邮件可能是您的最佳选择(请参阅我的个人资料页面)。
标签: protocol-buffers protobuf-net protobuf-c