【发布时间】:2013-10-03 09:17:07
【问题描述】:
我是在 Lua 中编写解析器的新手,我有两个简单的问题。我有一个数据包,它的 TCP 选项为 MSS、TCP SACK、TimeStamps、NOP、Window Scale、Unknown。我基本上是在尝试剖析 TCP 选项字段中的未知部分。我知道我将不得不使用链式解剖器。
第一个问题是在使用链式解析器解析 TCP 选项时,我是否必须从头开始解析所有选项。例如,我需要解析 MSS、TCP SACK、....然后最后解析 Unknown 部分,或者有什么直接的方法可以让我跳转到 Unknown 部分。
我的第二个问题是我已经看过许多自定义协议解析器的代码,如果我需要解析遵循(例如)TCP 的协议,那么我必须包括以下内容:
-- load the tcp.port table
tcp_table = DissectorTable.get("tcp.port")
-- register our protocol to handle tcp port
tcp_table:add(port,myproto_tcp_proto)
我的问题是,我是否可以跳到协议的中间。例如,在我的情况下,我想解析 TCP 选项。我可以直接调用 tcp.options 解析器将从选项开始的位置开始剖析吗?
【问题讨论】:
标签: tcp lua wireshark wireshark-dissector