Wireshark自定义Lua dissector字段值可见但字段名不显示求助
Wireshark 2.4.5 Lua插件新增字段名显示异常修复方案
问题根源
Wireshark 2.4.5的Lua API要求所有自定义ProtoField必须注册到对应协议的字段集合中,否则会默认使用通用文本字段类型(_ws.lua.text)展示,导致自定义字段名失效。
修复步骤
注册字段到协议
找到你的协议定义对象(例如aprint_proto = Proto("aprint", "Aprint Protocol")),将新增字段加入协议的fields表:-- 直接定义字段集合 aprint_proto.fields = { f_aprint_type, -- 已有2字节字段 f_apr_msg_type_txt -- 新增的文本字段 }若需在已有字段后追加,可使用:
table.insert(aprint_proto.fields, f_apr_msg_type_txt)规范字段创建写法
明确指定字段编码类型,避免API解析歧义:f_apr_msg_type_txt = ProtoField.string("aprint.typetxt", "aprint_type_text", base.NONE)若字符串为ASCII编码,可替换
base.NONE为base.ASCII。确认子树添加逻辑
确保添加子字段时传入的是自定义ProtoField对象,而非字符串:subtree:add(f_apr_msg_type_txt, msg_type_string)
验证结果
重新加载插件后,新增字段将显示自定义名称aprint.typetxt,字段值保持正常展示。
内容的提问来源于stack exchange,提问作者Srikanth Chilivery
相关产品推荐
相关产品推荐

