如何重新组装已拆卸的 ChunkSpy LUA?

逆向工程 部件 反编译 字节码
2021-07-09 23:35:34

是否可以重新组装 ChunkSpy 的反汇编 LUA 文件?下面是一个例子:

0B50  05000000           [001] getglobal  0   0        ; script
0B54  C63E0000           [002] gettable   0   0   251  ; "reload"
0B58  81000001           [003] loadk      1   2        ; "player/common.lua"
0B5C  59000100           [004] call       0   2   1  

(这就是它实际应该看起来的样子。)

script.reload("player/common.lua")

我尝试将 Unluac 和 Luadec 用于我想反编译的文件,但 ChunkSpy 是唯一能够打开它们的程序。这 3 个工具是我最终可以使用的工具,因为所有其他工具都设计为与 LUB 5.1、5.2 或 5.3 版一起使用。但是,我的文件版本是 5.0.2。我到处搜索有关我的问题的任何建议,但我找不到任何东西。

尽管所需的程序甚至可能不存在,而且这些 LUB 文件绝对没有什么不能做的,但我仍然想知道,为什么 Unluac 和 Luadec 无法反编译这些文件,而 ChunkSpy 没有任何问题跟他们?

1个回答

如何重新组装已拆卸的 ChunkSpy LUA?

你没有。ChunckSpy网站:

ChunkSpy 是一种将 Lua 5 二进制块分解为详细列表的工具,然后可以进行研究。它的输出类似于汇编器的输出列表。...如果您想反汇编源代码,请尝试 Hisham Muhammad 的 LuaDec。

至于你的另一个问题

我还是想知道,为什么 Unluac 和 Luadec 无法反编译这些文件,而 ChunkSpy 对它们没有任何问题?

请注意,这几乎不是逆向工程问题,并且非常特定于上述项目的内部结构。您最好向项目维护者本人发帖。

Unluac网站:

它要求没有从块中剥离调试信息。

LuaDec网站:

LuaDec 目前的形式并不是一个完整的反编译器。它确实成功地反编译了大部分 Lua 结构