2012-09-13 85 views

回答

0

所以你想重建什么.proto消息通过应用层协议传递?

这并不像听起来那么容易。首先,.proto消息不能通过线路原始发送,因为接收者需要知道它们有多长。它们需要以某种方式进行封装,可能是在HTTP POST中,或者预先加上了4字节的原始大小。我不知道你的应用会是什么,但你需要处理。

其次,你不能从消息中重建完整的.proto。您只能获得标签号码和类型,而不是名称。此外,你将失去有关子消息的信息 - 子消息和纯字符串的编码是相同的(你可以通过目测确定哪些是通过它们进行编码的,但我认为你不能自动完成)。你也永远不会知道从未发送过的可选项目。但是你可以在没有原型的情况下解析缓冲区,并获得一些合理的数据(整数,重复字符串等)。

第三,您需要从pcap日志中重建应用程序字节流。我不知道该怎么做,但我怀疑有些工具会为你做。