用于在网络跟踪(PCAP)中解析文本和二进制协议消息的Google协议缓冲区

时间:2012-09-13 02:12:20

标签: python protocol-buffers pcap

我想使用Google协议缓冲区从网络跟踪中解析应用层协议并重放跟踪(我正在使用python)。我需要建议从网络跟踪自动生成协议消息描述(在.proto文件中)。

1 个答案:

答案 0 :(得分:0)

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

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

其次,您无法仅从消息中重建完整的.proto。您只能获得标签号和类型,而不是名称。此外,您将丢失有关子消息的信息 - 子消息和普通字符串的编码方式相同(您可能会通过观察它们来判断哪个是哪个,但我认为您不能自动执行此操作)。您也永远不会知道从未发送过的可选项。但你可以在没有proto的情况下解析缓冲区并得到一些合理的数据(整数,重复字符串等)。

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