2

我正在为 lua 中的 Wireshark 定制解剖器。

协议中的某些 PDU 使用 AES 加密,我想解密这些,以便可以在 Wireshark 中显示清晰的内容。这是否可以使用 lua 解析器以及我可以使用哪些 API 来进行解密?

还是我需要制作 ac/c++ 解析器来制作解密数据的解析器?

4

2 回答 2

3

我个人使用lua-crypto,但它需要 OpenSSL。您可以检查lua-wiki。最近我为这个名为bgcrypto的AES 实现创建了包装器。它没有外部依赖,但我真的没有在实际工作中使用它。

于 2013-12-11T14:52:35.260 回答
3

目前 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 解析器,此提交显示了从 lua-lockbox 到 luagcrypt 的转换。

于 2016-03-27T18:18:46.683 回答