【发布时间】:2016-03-28 02:18:46
【问题描述】:
我正在为 Wireshark 在 lua 中开发自定义解析器。
协议中的某些 PDU 使用 AES 加密,我想解密这些 PDU,以便可以在 Wireshark 中显示清晰的内容。这是否可以通过 lua 解析器实现?我可以使用哪些 API 进行解密?
或者我需要制作一个 c/c++ 解析器来制作解密数据的解析器吗?
【问题讨论】:
标签: encryption lua aes wireshark-dissector
我正在为 Wireshark 在 lua 中开发自定义解析器。
协议中的某些 PDU 使用 AES 加密,我想解密这些 PDU,以便可以在 Wireshark 中显示清晰的内容。这是否可以通过 lua 解析器实现?我可以使用哪些 API 进行解密?
或者我需要制作一个 c/c++ 解析器来制作解密数据的解析器吗?
【问题讨论】:
标签: encryption lua aes wireshark-dissector
我个人使用lua-crypto,但它需要 OpenSSL。 您可以查看lua-wiki。 最近我为this AES 实现创建包装器bgcrypto。 它没有外部依赖,但我还没有在实际工作中使用它。
【讨论】:
目前 Wireshark (2.0) 不向 LUA 解析器公开加密 API,因此您必须在 Lua 解析器中实现它。
对于纯 Lua 解决方案,您可以使用 lua-lockbox(如 Lua wiki 中所述)。如果您需要性能,不建议这样做,但可能对原型设计有用。
更快的 AES 解密实现通常使用本机库,例如:
由于这些库都不能满足我的需求,我基于 Libgcrypt 开发了一个新的库,原因如下:
结果是luagcrypt,它适用于 Wireshark 支持的平台(Linux、OS X、Windows)。它用于 KDNET 解析器,这个commit 显示了从 lua-lockbox 到 luagcrypt 的转换。
【讨论】: