【问题标题】:How to apply and override preferences with tshark?如何使用 tshark 应用和覆盖首选项?
【发布时间】:2013-07-20 01:10:28
【问题描述】:

我正在为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 选项覆盖首选项值?

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多