1

LuaInterfaceを使用して .NET フレームワークのいくつかのクラスを使用できるように、Wiresharkをセットアップしようとしています。Lua コマンド ラインを使用して動作させることはできますが、起動スクリプトで実行しようとすると、必要なファイルが見つからないように見えます。Wireshark の起動時に次の例外が発生します。require "CLRPackage"init.lua

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コマンドラインで設定されているものと一致するようにandを設定しようとしまし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.

ファイルが確実に存在するため、これは奇妙なエラーです。

に Windows 用の Lua パッケージをインストールしましたC:\Program Files\Lua\5.1

誰もこれを機能させることができましたか? どんな助けでも大歓迎です。

Lua 5.1.4 で Wireshark 1.4.4 を使用しています

4

2 に答える 2

1

Wireshark サイトで必要なサポートを受けました (回答)

あなたの Wireshark は古いです。現在の安定版リリースはWireshark 1.6.1です。

Wireshark にはすでに Lua が含まれています。Wireshark には独自の Lua インタープリターが付属しているため (独自のものしか使用しないため)、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 を使用した場合に当てはまりました。LuaInterface 2.0.3 の互換性のあるバイナリは、このチケットから入手できます。

指示

1) VS2005 SP1 Redistributables を LuaForWindows から Wireshark のプログラム ディレクトリにコピーします (または、Microsoft から redist パッケージをダウンロードできます...チケットを参照してください):

から:

  • %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) このチケットから 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を開きます。表示されるテキスト ボックスにサンプル コードを入力し、[評価] をクリックします。

これにより、次のようになります。

出力

于 2011-08-26T21:05:17.367 に答える
0

「...」文字列を使用する場合は、バックスラッシュをエスケープする必要があります。[[...]] 文字列を使用すると、エスケープを回避できます。

于 2011-08-25T17:27:23.077 に答える