在 Lua 协议解析器中解密数据包。

我正在使用lua为Wireshark编写自定义分析器。

协议中的某些PDU使用AES进行加密,我想解密这些内容,以便在Wireshark中显示明文内容。使用lua分析器可以实现吗?我可以使用哪些API来进行解密?

还是我需要编写c/c++分析器来实现解密数据的分析器?

点赞
用户2328287
用户2328287

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

2013-12-11 14:52:35
用户427545
用户427545

目前,Wireshark(2.0)不提供加密API给LUA解剖器,因此您必须在Lua解剖器中实现它。

对于纯Lua解决方案,您可以使用[lua-lockbox](https://github.com/somesocks/lua-lockbox)(如[Lua维基](http://lua-users.org/wiki/CryptographyStuff)中所述)。如果您需要性能,不建议使用此解决方案,但是可能用于原型制作。

更快的AES解密实现通常使用本地库,例如:

由于这些图书馆都无法满足我的需求,我基于Libgcrypt开发了一个新的图书馆,出于以下原因:

  • Wireshark已链接到Libgcrypt以用于SSL解密等事项。
  • Libgcrypt库支持足够多的密码和哈希。
  • Libgcrypt广泛可用并具有活跃的开发团队。
  • Luagcrypt API足够简单并有文件记录。

结果是[luagcrypt](https://coveralls.io/github/Lekensteyn/luagcrypt),可在Wireshark支持的平台上使用(Linux,OS X,Windows)。它用于KDNET解剖器,此[提交](https://github.com/Lekensteyn/kdnet/commit/3dbd698daeac117a4d6b39a0d4d4dc2cddccd2f6)展示了从lua-lockbox到luagcrypt的转换。

2016-03-27 18:18:46