2012-04-19 156 views
1

是否有任何初始設置需要爲wireshark配置才能在Mac OSX環境中正確處理lua腳本?如何將Wireshark Lua解剖器腳本移植到Mac OSX?

試圖將Lua答案移植到問題「如何找出數據包的HTTP標頭長度?」 https://stackoverflow.com/a/5794357/1217670

無法讓解決方案在Mac上工作。

該解決方案在Windows XP平臺上使用Wireshark 1.6.7,Lua 5.1可以正常工作。

使用Wireshark 1.6.5,Lua 5.1在Mac OSX 10.7.3上運行http_extra.lua腳本。 [Header Length(bytes):917]標題字段不會出現。
我在自定義HTTP標頭字段中輸入了http.hdr_len。

在http.hdr_len上過濾不顯示任何內容。

http_extra.lua腳本被放置在 /Applications/Wireshark.app/Contents/Resources/lib/wireshark/plugins目錄中。
如果將腳本移動到個人插件文件夾中,結果相同。

這是在Windows XP系統上完美運行的確切腳本文件。

關於Wireshark插件選項卡將http_extra.lua列爲類型lua腳本。

測試腳本以創建錯誤會驗證wireshark是否知道該腳本。

我沒有看到需要將LUA_PATH設置爲全局插件目錄的註釋。這沒有效果。

欣賞任何建議。

回答

1

Wireshark的 - 偏好 - 協議 - HTTP面板必須具有所有四個框檢查:跨越

  1. 重新組裝的HTTP標頭的多個TCP段
  2. 重新組裝跨越多個TCP段的HTTP主體
  3. 重新組合e分塊傳輸代碼體
  4. 解壓實體實體。

Mac環境現在與Windows配置匹配,並且它會得到相同的結果,顯示[Header Length(bytes):917]。

相同的結果,而你把插件放在全局或本地插件目錄。

Mac OSX Lua插件目錄路徑位置記錄在關於Wireshark面板 - 文件夾選項卡中。

2

在OSX你的個人Wireshark的插件目錄是:

~/.config/wireshark/plugins 

對於舊Wireshark的版本中,它可能是:

~/.wireshark/plugins 

在你的情況,把Lua的腳本:

~/.config/wireshark/plugins/http_extra.lua 

有關Lua init路徑的更多信息,請參閱以下文章:

+0

我剛試過這個,結果相同。有一件事我只注意到,wireshark過濾器表達式框中的字段名稱是:http.header.http.hdr_len - http.hdr_len(標頭長度​​以字節爲單位)? ?這是錯誤的?需要重新檢查配置。 – phil 2012-04-20 15:32:29

+0

如果顯示過濾器文本框顯示爲紅色(而不是綠色),則表示存在語法錯誤,其中包含無效字段。確認插件實際上正在加載:將打印語句放在您的Lua文件的頂部,從命令行重新啓動Wireshark並檢查打印輸出。 – 2012-04-20 16:10:50

+0

這創建了過濾器表達式是錯誤的。 「我在自定義HTTP標頭字段中輸入了http.hdr_len。」刪除了自定義http字段條目,並且不正確的值消失。解剖器設置該字段標題。 – phil 2012-04-21 15:15:23