我正在为 lua 中的 Wireshark 定制解剖器。
协议中的某些 PDU 使用 AES 加密,我想解密这些,以便可以在 Wireshark 中显示清晰的内容。这是否可以使用 lua 解析器以及我可以使用哪些 API 来进行解密?
还是我需要制作 ac/c++ 解析器来制作解密数据的解析器?
我正在为 lua 中的 Wireshark 定制解剖器。
协议中的某些 PDU 使用 AES 加密,我想解密这些,以便可以在 Wireshark 中显示清晰的内容。这是否可以使用 lua 解析器以及我可以使用哪些 API 来进行解密?
还是我需要制作 ac/c++ 解析器来制作解密数据的解析器?
我个人使用lua-crypto,但它需要 OpenSSL。您可以检查lua-wiki。最近我为这个名为bgcrypto的AES 实现创建了包装器。它没有外部依赖,但我真的没有在实际工作中使用它。
目前 Wireshark (2.0) 没有向 LUA 解析器公开加密 API,因此您必须在 Lua 解析器中实现它。
对于纯 Lua 解决方案,您可以使用lua-lockbox(如Lua wiki中所述)。如果您需要性能,不建议这样做,但可能对原型设计有用。
更快的 AES 解密实现通常使用本机库,例如:
由于这些库都不能满足我的需求,因此我基于 Libgcrypt 开发了一个新库,原因如下:
结果是luagcrypt,它可以在 Wireshark 支持的平台(Linux、OS X、Windows)上运行。它用于 KDNET 解析器,此提交显示了从 lua-lockbox 到 luagcrypt 的转换。