在用wireshark lua编写自己的协议解析器dissector时,是可以在包字节面板(Packet Bytes pane)上加入自己的tab的,就像HTTP跨越多个TCP包时,会加上一个Reassembled TCP面板到字节面板里,用于显示整个完整的HTTP消息。
样例代码如下:
代码效果是在wireshark"Packet Bytes" pane面板里添加两个自己的tab,一个用了自己的数据,另一个用协议包本身的数据。
结果如下图所示:其中tab “Frame”和“Reassembled TCP” Wireshark自己生成的;而“tvb1_my_own_data”(自己数据tab)和“tvb2_copy_packet_data”是自己添加的tab。
编程中需要注意的是,wireshark lua API手册中关于从ByteArray类型转换为TVB类型的接口Tvb.new_real(bytearray, name) 是错了,看wireshark相关源代码后得知,应该是bytearray:tvb( name)才对(其中name为tab的显示字串)。

Reference: 更多wireshark lua介绍请参考《如何在wireshark里用lua脚本编写dissector解析HTTP BODY (after TCP reassembled)》(http://blog.youkuaiyun.com/jasonhwang/archive/2010/04/25/5526383.aspx)

本文详细介绍了如何利用wiresharklua编写自定义协议解析器,通过创建新的面板来展示特定的数据字段,以增强wireshark的解析能力。示例代码展示了如何在包字节面板上加入自定义面板,并正确处理转换类型错误。

被折叠的 条评论
为什么被折叠?



