Как мне настроить Wireshark для запуска Lua's CLRPackage

Я пытаюсь настроить Wireshark, чтобы я мог использовать LuaInterface для использования некоторых классов в.NET Framework. Я могу заставить его работать через командную строку Lua, но когда я пытаюсь require "CLRPackage" в init.lua Скрипт запуска, он не находит нужные файлы. Я получаю следующее исключение при запуске 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.

Это странная ошибка, поскольку файл определенно существует.

Я установил пакет Lua для Windows в C:\Program Files\Lua\5.1,

Кто-нибудь смог заставить это работать? Любая помощь будет оценена.

Я использую Wireshark 1.4.4 с Lua 5.1.4

2 ответа

Решение

Я получил необходимую помощь на сайте 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 (это проявляется во время выполнения ошибки R6034 при загрузке luanet.dll). Это было верно для меня с Wireshark 1.6.1 на Windows 7. Вы можете получить совместимые двоичные файлы LuaInterface 2.0.3 с этого билета.

инструкции

1) Скопируйте распространяемые файлы VS2005 с пакетом обновления 1 (SP1) из LuaForWindows в каталог программ Wireshark (или вы можете загрузить пакет повторного распространения из Microsoft... см. Тикет):

От:

  • % ProgramFiles%\Lua\5,1 \ установки \ поддержка \ Microsoft.VC80.CRT.SP1 \ Microsoft.VC80.CRT.manifest
  • % ProgramFiles%\Lua\5,1 \ установки \ поддержка \ Microsoft.VC80.CRT.SP1 \ msvcm80.dll
  • % ProgramFiles%\Lua\5,1 \ установки \ поддержка \ Microsoft.VC80.CRT.SP1 \ msvcp80.dll
  • % ProgramFiles%\Lua\5,1 \ установки \ поддержка \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) Загрузите 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 откройте меню Инструменты> Lua > Оценить. В появившемся текстовом поле введите пример кода и нажмите " Оценить".

Это должно привести к чему-то вроде этого:

http://s1.postimage.org/2nrqg8flw/Screen_Shot_2011_08_25_at_10_24_05_PM.jpg

Вы должны избегать обратной косой черты при использовании строк "...". Вы можете избежать экранирования, если используете [[...]] строки.

Другие вопросы по тегам