2012-04-19 155 views
1

是否有任何初始设置需要为wireshark配置才能在Mac OSX环境中正确处理lua脚本?如何将Wireshark Lua解剖器脚本移植到Mac OSX?

试图将Lua答案移植到问题“如何找出数据包的HTTP标头长度?” https://stackoverflow.com/a/5794357/1217670

无法让解决方案在Mac上工作。

该解决方案在Windows XP平台上使用Wireshark 1.6.7,Lua 5.1可以正常工作。

使用Wireshark 1.6.5,Lua 5.1在Mac OSX 10.7.3上运行http_extra.lua脚本。 [Header Length(bytes):917]标题字段不会出现。
我在自定义HTTP标头字段中输入了http.hdr_len。

在http.hdr_len上过滤不显示任何内容。

http_extra.lua脚本被放置在 /Applications/Wireshark.app/Contents/Resources/lib/wireshark/plugins目录中。
如果将脚本移动到个人插件文件夹中,结果相同。

这是在Windows XP系统上完美运行的确切脚本文件。

关于Wireshark插件选项卡将http_extra.lua列为类型lua脚本。

测试脚本以创建错误会验证wireshark是否知道该脚本。

我没有看到需要将LUA_PATH设置为全局插件目录的注释。这没有效果。

欣赏任何建议。

回答

1

Wireshark的 - 偏好 - 协议 - HTTP面板必须具有所有四个框检查:跨越

  1. 重新组装的HTTP标头的多个TCP段
  2. 重新组装跨越多个TCP段的HTTP主体
  3. 重新组合e分块传输代码体
  4. 解压实体实体。

Mac环境现在与Windows配置匹配,并且它会得到相同的结果,显示[Header Length(bytes):917]。

相同的结果,而你把插件放在全局或本地插件目录。

Mac OSX Lua插件目录路径位置记录在关于Wireshark面板 - 文件夹选项卡中。

2

在OSX你的个人Wireshark的插件目录是:

~/.config/wireshark/plugins 

对于旧Wireshark的版本中,它可能是:

~/.wireshark/plugins 

在你的情况,把Lua的脚本:

~/.config/wireshark/plugins/http_extra.lua 

有关Lua init路径的更多信息,请参阅以下文章:

+0

我刚试过这个,结果相同。有一件事我只注意到,wireshark过滤器表达式框中的字段名称是:http.header.http.hdr_len - http.hdr_len(标头长度​​以字节为单位)? ?这是错误的?需要重新检查配置。 – phil 2012-04-20 15:32:29

+0

如果显示过滤器文本框显示为红色(而不是绿色),则表示存在语法错误,其中包含无效字段。确认插件实际上正在加载:将打印语句放在您的Lua文件的顶部,从命令行重新启动Wireshark并检查打印输出。 – 2012-04-20 16:10:50

+0

这创建了过滤器表达式是错误的。 “我在自定义HTTP标头字段中输入了http.hdr_len。”删除了自定义http字段条目,并且不正确的值消失。解剖器设置该字段标题。 – phil 2012-04-21 15:15:23