Lua/LuaJIT 反编译挑战

我搜到了一份 Lua 脚本,一直在试图对其进行反编译。目前为止尝试了所有标准 Lua 反编译器的不同版本,如 unluacluadec。我要么得到“不是预编译块”或“预编译块中的坏头部”错误。

我还尝试了不同的 Lua 版本和 32 位和 64 位架构的反编译器。

我查看了头文件,它的十六进制形式如下:1b 4c 4a 01 02 52 20 20。看起来几乎正确,但似乎签名多出一个字节,第六个和第七个字节是错误的。并且,其中有一个 52,我认为是 Lua 的版本。

因为签名太长一个字节,常规的反编译器不起作用。我怀疑这可能是一个 LuaJIT 字节码,因为如果将该字符串转换为 ANSI,你会注意到 ESC,L,J 序列,这是 LuaJIT 的函数头。

如果这是一个 LuaJIT 二进制文件,从哪里开始反编译呢?我尝试过一些反编译器,但它们看起来都非常过时,或者在执行过程中某些地方失败(我谈论的是 LJD 及其衍生物)。

任何有关如何分析、查看操作码或反编译它的建议都将不胜感激。

这就是我所说的文件(抱歉,太长了,无法在这里发布,以防有人想试试):

https://pastebin.com/eeLHsiXk https://filebin.net/r0hszoeh8zscp8dh

点赞