【问题标题】:Lua unable to find moduleLua找不到模块
【发布时间】:2016-07-13 01:00:07
【问题描述】:

我正在尝试为wireshark 开发解剖器。由于我所有的解析器都使用相同的端口号,我计划按照here 的建议添加一个额外的解析器层。 我已经着手创建一个通用解析器来验证数据包的类型,并在此基础上将数据包数据传递给相关的解析器。我为不同的解剖器创建了不同的模块,我计划将它们包含在我的通用解剖器中。 在我的通用解析器中,我使用 require 命令声明模块。 模块名称 = 要求(“模块名称”)。 但是,这样做后,当我运行 Wireshark 时,我收到以下错误: Lua:加载时出错: C:\XXXX\generic_dissector.lua:1: 模块 'module_name' 未找到。

这很令人惊讶,因为我的模块和我的通用解析器都位于同一个目录中。请让我知道在这种情况下可以做些什么。

谢谢

【问题讨论】:

    标签: lua wireshark wireshark-dissector


    【解决方案1】:

    您的模块文件是否放在个人插件文件夹中?您可以从中查找文件夹路径

    Help -> About Wireshark -> Folders -> Personal Plugins

    对于 OS X

    Wireshark -> About Wireshark -> Folders -> Personal Plugins)

    如果不在该文件夹中,请尝试将模块移到那里并再次重新运行解析器。

    【讨论】:

    • 您好,感谢您的帮助。显然,将模块移动到 -- Program Files \ Wireshark 目录后问题得到了解决。但现在我有另一个关于解剖器的问题。基本上我有在相同端口号捕获的不同类型的数据包。我尝试创建多个 lua 解析器并添加它们 init.lua 但这样做时,某些或其他解析器不起作用。我现在正在尝试创建一个通用解析器来验证数据包的类型,然后将数据包发送到相应的解析器,但是我不知道该怎么做。谢谢。
    • 具体来说,我不确定如何将数据包数据传递给特定的解析器并返回其结果以表示它是通用解析器的结果。另外我相信,如果我创建一个通用解析器,那么我将无法根据特定解析器的某些属性的特定值应用过滤器。请让我知道是否有任何解决方法。谢谢。