【问题标题】:Decrypt packet in lua dissector在 lua 解析器中解密数据包
【发布时间】:2016-03-28 02:18:46
【问题描述】:

我正在为 Wireshark 在 lua 中开发自定义解析器。

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

或者我需要制作一个 c/c++ 解析器来制作解密数据的解析器吗?

【问题讨论】:

    标签: encryption lua aes wireshark-dissector


    【解决方案1】:

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

    【讨论】:

    • 有趣,lua-crypto 可以在 OSX、Windows 和 Linux 上运行吗?
    • 我在 Windows 上使用它。我在 Linux Mint 和 travis 上运行测试。
    【解决方案2】:

    目前 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 的转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2011-05-07
      • 2011-02-15
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多