【发布时间】:2011-10-30 03:20:39
【问题描述】:
我正在为我必须使用的协议编写解析器。该协议运行在 TCP 之上并且是有状态的。
为了正确剖析字段,我需要确定哪个端点打开了 TCP 连接(客户端)。
有没有办法从 tcp 解析器获取这些信息?我必须写一个水龙头吗?我不太清楚如何在 lua 中执行此操作。
交叉发布在 Wireshark 堆栈站点 here。
【问题讨论】:
标签: lua wireshark wireshark-dissector
我正在为我必须使用的协议编写解析器。该协议运行在 TCP 之上并且是有状态的。
为了正确剖析字段,我需要确定哪个端点打开了 TCP 连接(客户端)。
有没有办法从 tcp 解析器获取这些信息?我必须写一个水龙头吗?我不太清楚如何在 lua 中执行此操作。
交叉发布在 Wireshark 堆栈站点 here。
【问题讨论】:
标签: lua wireshark wireshark-dissector
要在 Lua 中编写有状态协议解析器,您可以使用闭包来存储状态信息。 如果您分析给定 TCP 流#(由 TCP 解析器生成)的第一个数据包的标志 SYN/SYN+ACK,您可以轻松破译哪个端点开始对话。
要完成这项工作,您应该安装一个 post dissector 并检查“tcp.stream”字段。
您可以在我的小号Lua wireshark dissector to capture HTTP state information 的来源中查看该技术
【讨论】: