2013-12-11 72 views
1

我正在爲lua中的Wireshark定製解剖器。在lua解剖器中解密數據包

協議中的某些PDU使用AES加密,我想解密這些以便我可以在Wireshark中顯示清晰的內容。這可能與一個Lua解剖器和我可以使用什麼API來進行解密?

或者我需要製作一個c/C++解析器來製作解密數據的解剖器嗎?

回答

3

我個人使用lua-crypto但它需要OpenSSL。 您可以檢查lua-wiki。 最近,我爲this AES實現創建了一個名爲bgcrypto的包裝。 它沒有外部依賴關係,但我真的不在實際工作中使用它。

+0

有趣的是,lua-crypto能在OSX,Windows和Linux上運行嗎? –

+0

我在Windows上使用它。我在Linux Mint和Travis上運行測試。 – moteus

1

目前Wireshark(2.0)沒有向LUA解剖器公開密碼API,所以你必須在Lua解剖器中實現它。

對於純粹的Lua解決方案,您可以使用lua-lockbox(如Lua wiki中所述)。如果您需要性能,則不推薦這樣做,但可能對原型設計有用。

更快的AES加密技術實現通常使用本地庫,例如:

  • LuaCrypto - 使用OpenSSL的,雖然它似乎沒有保持
  • lcrypt - 使用libtomcrypt,但似乎沒有開發或者

由於沒有這些庫的滿足我的需求,我開發了基於Libgcrypt這些原因一個新問題:

  • Wireshark已經鏈接到Libgcrypt,用於SSL解密之類的事情。
  • Libgcrypt庫支持足夠多的密碼和散列。
  • Libgcrypt是廣泛可用的,並有一個積極的開發團隊。
  • Luagcrypt API非常簡單並且有文檔記錄。

結果是luagcrypt,它適用於Wireshark(Linux,OS X,Windows)支持的平臺。它被用在KDNET解剖器中,這個commit顯示了從lua-lockbox到luagcrypt的轉換。