首页 > 解决方案 > 动态(基于 prev protofield 值) Protofield valuestring based

问题描述

我正在用 lua 开发一个 wireshark 插件。

我有一个 Protofield,它的 valuestring 表根据前一个字段的值发生变化。我没有在我正在开发的 lua wireshark 插件中看到干净的方法。

例如

parent_type = Protofield.uint8("myProto.myParentField", "Parent", base.HEX, {"1", "2"}, 0xf0, "")
child_type = Protofield.uint8("myProto.myChildField", "Child", base.HEX, {"if parent 1, value 3 else 5", "if parent 1 value 4 else 6"}, 0x0f, "")

现在我希望能够根据 parent_type 的值来决定 child_type 字段的 valuestring。

我能够在dissector:call方法中对 child_type 做一个 append_text ,但它的形式是

.... ...1 = 孩子:(0x01) 3

我正在寻找它的地方(有点迂腐)

.... ...1 = 孩子:3 (0x01)

如果我使用:set_text整个文本".... ...1 = Child: (0x01)"将替换为"3"

我尝试使用字符串库操作,但我也无法让它们工作。

任何帮助是极大的赞赏

标签: luawireshark-dissector

解决方案


推荐阅读