Как мне настроить Wireshark для запуска Lua's CLRPackage - PullRequest
1 голос
/ 25 августа 2011

Я пытаюсь настроить 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 ]

1 голос
/ 27 августа 2011

Я получил необходимую помощь на сайте 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 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

0 голосов
/ 25 августа 2011

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

...