2015-08-20 104 views
2

我有一個用Lua編寫的Wireshark解剖器,想單獨測試它。我已經提取了一些不依賴於Wireshark函數的通用功能(並且在我的LuaJIT IDE中單獨測試了這些功能),但是現在我處於需要測試緩衝區檢查和轉換功能的地步(buffer(1, 2):uint()等)。有沒有辦法從我的LuaJIT解釋器訪問內建的Lua函數(可能在Wireshark測試套件中),或者(可選)是否可以通過編程方式在一些PCAP文件上重新運行腳本(使用tshark)並以編程方式將測試結果輸出到標準輸出或文件?對我來說,另一個用例是手動指定數據包並在其上測試我的解剖器函數(即將數據包作爲代碼,而不必生成帶有要測試數據包的PCAP文件)。測試Wireshark插件

其他人如何測試他們的Wireshark解剖器?

回答

2

如果您的測試是針對調試進行的,Paul的ZeroBrane Studio是我所知道的唯一一個可以輕鬆與Wireshark合作的人。

如果你的意思是自動化測試(也就是說,它可以重複進行迴歸等),那麼我們在Wireshark自己測試它們的過程是通過使用tshark和「-X lua_script:<script>」選項通過shell腳本運行它們,以詳細模式輸出到文本文件,然後驗證輸出文件是否具有我們預期的效果。 (例如,通過使用其他的Lua腳本,檢查輸出文本文件),如果您克隆回購,或browse it online

,你可以看到,在test/suite-wslua.sh文件,這是Lua的API測試套件shell腳本。並且測試的Lua腳本位於test/lua目錄中。

2

我一直在開發一個允許調試在Wireshark「live」(包括解析器)中運行的Lua代碼的Lua調試器。我沒有用最新版本的Wireshark進行測試,但不明白爲什麼它不能繼續工作。你可以在這裏看到如何完成這個例子:http://notebook.kulchenko.com/zerobrane/debugging-wireshark-lua-scripts-with-zerobrane-studio

我不認爲有一種方法可以直接在PCAP文件上重新運行腳本,但是您可以使用traffic generators之一(例如位扭曲)從捕獲文件中「重放」流量,並以通常的方式調試你的腳本。