我正在为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"
所以,这两个问题是:
-o
选项覆盖首选项值?感谢。
答案 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