如何设置Wireshark以运行Lua的CLRPackage?
我正在尝试设置Wireshark,以便我可以使用LuaInterface来使用.NET框架中的某些类。我能够通过Lua命令行运行它,但是当我尝试在init.lua
启动脚本中require "CLRPackage"
时,它似乎找不到所需的文件。启动Wireshark时我会收到以下异常:
Lua: Error during loading:
C:\Program Files\Wireshark\luascript.lua:25: module 'CLRPackage' not found:
no field package.preload ['CLRPackage']
no file '.\CLRPackage.lua'
no file 'C:\Program Files\Wireshark\lua\CLRPackage.lua'
no file 'C:\Program Files\Wireshark\lua\CLRPackage\init.lua'
no file 'C:\Program Files\Wireshark\CLRPackage.lua'
no file 'C:\Program Files\Wireshark\CLRPackage\init.lua'
no file 'C:\Program Files\Lua\5.1\lua\CLRPackage.luac'
no file '.\CLRPackage.dll'
no file '.\CLRPackage51.dll'
no file 'C:\Program Files\Wireshark\CLRPackage.dll'
no file 'C:\Program Files\Wireshark\CLRPackage51.dll'
no file 'C:\Program Files\Wireshark\clibs\CLRPackage.dll'
no file 'C:\Program Files\Wireshark\clibs\CLRPackage51.dll'
no file 'C:\Program Files\Wireshark\loadall.dll'
no file 'C:\Program Files\Wireshark\clibs\loadall.dll'
我尝试设置package.path
和package.cpath
来匹配命令行中设置的内容,但是似乎没有帮助。
package.path = ";.\\?.lua;C:\\Program Files\\Lua\\5.1\\lua\\?.lua;C:\\Program Files\\Lua\\5.1\\lua\\?\\init.lua;C:\\Program Files\\Lua\\5.1\\?.lua;C:\\Program Files\\Lua\\5.1\\?\\init.lua;C:\\Program Files\\Lua\\5.1\\lua\\?.luac;C:\\Program Files\\Lua\\5.1\\lua\\?lua"
package.cpath = package.cpath .. ".\\?.dll;.\\?51.dll;C:\\Program Files\\Lua\\5.1\\?.dll;C:\\Program Files\\Lua\\5.1\\?51.dll;C:\\Program Files\\Lua\\5.1\\clibs\\?.dll;C:\\Program Files\\Lua\\5.1\\clibs\\?51.dll;C:\\Program Files\\Lua\\5.1\\loadall.dll;C:\\Program Files\\Lua\\5.1\\clibs\\loadall.dll;C:\\Program Files\\Lua\\5.1\\clibs\\luanet.dll"
这样设置后,我会收到以下错误:
Lua: Error during loading:
error loading module 'luanet' from file
'C:\Program Files\Lua\5.1\clibs\luanet.dll':
The spcecified module could not be found.
这是一个奇怪的错误,因为该文件肯定存在。
我已在C:\Program Files\Lua\5.1
中安装了Windows版的Lua包。
有人能够让它工作吗?任何帮助将不胜感激。
我正在使用带有Lua 5.1.4的Wireshark 1.4.4。
原文链接 https://stackoverflow.com/questions/7191705
我在 Wireshark 网站上得到了所需的帮助(答案)。
你的 Wireshark 版本太旧了。当前的稳定版本是 Wireshark 1.6.1。
Wireshark 已经包含了 Lua。你不需要安装自己的 Lua,因为 Wireshark 自带自己的 Lua 解释器(并且会仅使用自己的)。但是,你的 Wireshark Lua 脚本仍然可以调用由 LuaForWindows 安装的库。
LuaInterface 1.5.3 可能不兼容。LuaForWindows v5.1.4-45 附带了 LuaInterface 1.5.3,可能与你的 Wireshark 安装不兼容(在加载 luanet.dll 时表现为运行时错误 R6034)。这在我使用 Windows 7 的 Wireshark 1.6.1 时是真实的。你可以从这个 ticket 中获得兼容的 LuaInterface 2.0.3 二进制文件。
指令
1)将 LuaForWindows 的 VS2005 SP1 Redistributables 复制到 Wireshark 的程序目录中(或者你可以从 Microsoft 下载 redist 包…请参见 ticket):
来自:
- %PROGRAMFILES%\Lua\5.1\install\support\Microsoft.VC80.CRT.SP1\Microsoft.VC80.CRT.manifest
- %PROGRAMFILES%\Lua\5.1\install\support\Microsoft.VC80.CRT.SP1\msvcm80.dll
- %PROGRAMFILES%\Lua\5.1\install\support\Microsoft.VC80.CRT.SP1\msvcp80.dll
- %PROGRAMFILES%\Lua\5.1\install\support\Microsoft.VC80.CRT.SP1\msvcr80.dll
到:
- %PROGRAMFILES%\Wireshark\Microsoft.VC80.CRT.manifest
- %PROGRAMFILES%\Wireshark\msvcm80.dll
- %PROGRAMFILES%\Wireshark\msvcp80.dll
- %PROGRAMFILES%\Wireshark\msvcr80.dll
2)从此 ticket 下载 LuaInterface 2.0.3 ZIP,然后从中复制以下内容:
来自:
- ...\bin\Release\LuaInterface.dll
- ...\bin\Release\luanet.dll
到:
- %PROGRAMFILES%\Wireshark\clibs\LuaInterface.dll
- %PROGRAMFILES%\Wireshark\clibs\luanet.dll
来自:
- ...\LuaInterface\lua\CLRForm.lua
- ...\LuaInterface\lua\CLRPackage.lua
到:
- %PROGRAMFILES%\Wireshark\lua\CLRForm.lua
- %PROGRAMFILES%\Wireshark\lua\CLRPackage.lua
3)如果 Wireshark/TShark 已经在运行,则重启它们。
4)_可选的:_从 Wireshark 打开菜单 Tools > Lua > Evaluate。在出现的文本框中,输入一些 样本代码,然后单击 Evaluate。这应该会得到类似于下面的输出:
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
你在使用“...”字符串时需要转义反斜杠。如果使用[[...]]字符串,则可以避免转义。