1

我正在为我必须使用的协议编写解析器。该协议运行在 TCP 之上并且是有状态的。

为了正确剖析这些字段,我需要确定哪个端点打开了 TCP 连接(客户端)。

有没有办法从 tcp 解析器获取这些信息?我必须写一个水龙头吗?我不太清楚如何在lua中做到这一点。

交叉张贴在此处的 Wireshark 堆栈站点上。

4

1 回答 1

1

要在 Lua 中编写有状态协议解析器,您可以使用闭包来存储状态信息。如果您分析给定 TCP 流#(由 TCP 解析器生成)的第一个数据包的标志 SYN/SYN+ACK,您可以轻松破译哪个端点开始对话。

要完成这项工作,您应该安装一个 post dissector 并检查“tcp.stream”字段。

您可以在我的小型Lua wireshark 解析器的来源中查看该技术以捕获 HTTP 状态信息

于 2011-11-09T08:53:57.423 回答