如何使用tshark应用和覆盖首选项?

时间:2013-07-20 01:10:28

标签: linux wireshark packet-capture tshark wireshark-dissector

我正在为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(...)在解剖器代码中访问首选项的值。但是,当启动tshark:

时,我无法使用-o选项覆盖它
tshark: Invalid -o flag "ls_payload_display_len:80"

所以,这两个问题是:

  1. 如何将我的首选项文件与tshark一起应用,以便语法错误警告不再显示?
  2. 如何使用tshark的-o选项覆盖首选项值?
  3. 感谢。

1 个答案:

答案 0 :(得分:1)

似乎尝试设置不存在的首选项,Wireshark和TShark不会将其报告为不存在的首选项,它们会在首选项文件中将其报告为“首选的语法错误”,并将其作为命令行上的“Invalid -o flag”。

prefs_register_uint_preference()作为第一个参数,指向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