Wireshark Dissector VoidString类型

我正在为一个高级项目编写Wireshark解剖器生成器。我已经阅读了一些资料,但对ProtoField Object中的VoidString对象有一个问题。文档对这个特定值或它的用途并不是很清楚。

我们的生成器使用C++,以便在项目完成后我们的客户可以修改它。我在另一个主题中读到了可以传递一个键、值对的表格。这个参数还用于其他结构或信息吗?我们正在努力制定一个数据结构,以包含用户传递的文件的解析,并且我们正在确定如何最好地制作这个对象。是在这里允许传递模板对象更好还是仅使用表格就足够了?

点赞
用户7558007
用户7558007

我不确定是否理解了您的需求,但根据 Wireshark 源代码( wslua_proto_fields.c ), VoidString 参数的定义如下:

#define WSLUA_OPTARG_ProtoField_new_VALUESTRING 4 /* A table containing the text that
    corresponds to the values, or a table containing unit name for the values if base is
    `base.UNIT_STRING`, or one of `frametype.NONE`, `frametype.REQUEST`, `frametype.RESPONSE`,
    `frametype.ACK` or `frametype.DUP_ACK` if field type is ftypes.FRAMENUM. */

因此,该表将根据 type 进行“转换”,并以 base 表示打印。

2019-03-01 10:49:49