1

我正在为wireshark-1.9.2 编写一个插件。我们在服务器上没有 GUI,所以我们使用 tshark。我的问题是如何使用 tshark 添加和应用新的首选项?

我的 $HOME/.wireshark/preferences 文件只包含一行:

ls_payload_display_len: 20

当我运行 tshark 时,我收到一个警告:

Syntax error in preference ls_payload_display_len (applying your preferences once should remove this warning)

我可以使用函数访问解析器代码中的首选项值prefs_register_uint_preference(...)。但是我不能-o在启动 tshark 时用选项覆盖它:

tshark: Invalid -o flag "ls_payload_display_len:80"

所以,这两个问题是:

  1. 如何使用 tshark 应用我的首选项文件,以便不再显示语法错误警告?
  2. 如何使用-otshark 选项覆盖首选项值?

谢谢。

4

1 回答 1

1

似乎对于设置不存在的首选项的尝试,Wireshark 和 TShark 不会将其报告为不存在的首选项,而是在首选项文件中将其报告为“首选项中的语法错误”和“无效 - o 标志”在命令行上。

prefs_register_uint_preference()将指向 a 的指针作为其第一个参数,module_t因此您必须引用了一个首选项模块。该prefs_register_module()调用带有一个name参数,因此模块有一个名称;您的首选项的全名包括模块名称,因此,如果您的首选项模块的名称是“my_protocol”,那么您的首选项名称将是“my_protocol.ls_payload_display_len”,您必须首选项文件和命令行,例如

my_protocol.ls_payload_display_len: 20

tshark -o my_protocol.ls_payload_display_len:80
于 2013-07-20T18:39:24.770 回答