反编译 Luac 文件 - 处理加密

我在这个网站的其他问题中读到,如果您知道 Lua 版本,那么可以反编译 Luac 文件。我还知道 Lua 版本存储在 Luac 文件的第5个字节(标题)中。然而,这是我拥有的一个 Luac 文件的前几个字节:

1b 4c 4a 01 02 d1 01 00

在我看来,第5个字节是02。这表明我正在处理一个 Lua 0.2 文件——我不相信有这样的版本!

以上问题使我认为文件可能是加密的——我对 Lua 加密一无所知……真的一无所知。合理地可能解密和反编译问题的 Lua 文件吗?我应该如何开始这个过程?

点赞
用户589259
用户589259

如果 Lua 文件被加密了,那么在 Lua 解释器中一定会有某种密钥;否则就无法执行字节码。如果存在这样的密钥,它必须被包含在每个解释器中;也就是说,这是众所周知的。

通常,如果文件出了问题,压缩文件是更合理的选择,但即便如此,你通常也会有一个可读的头部信息。

当然,由于这个文件以 ESC L J 字符组成的幻数开头,Egor 已经指明了文件格式。通常,Posix 的 file 实用程序(也适用于 cygwin 或 Windows 的新 Linux 层)可以帮助你解决这个问题。

2017-12-17 17:11:09