标准Lua字节码和LuaJIT字节码的区别

我一直在尝试反编译一个LuaJIT字节码文件。我已经成功反汇编了它(但找不到任何重组它的方法)。所以我正在考虑编写一些软件,将LuaJIT字节码转换为标准Lua字节码,然后通过LuaDec运行。

但是LuaJIT字节码和标准Lua字节码有什么区别呢?

原文链接 https://stackoverflow.com/questions/8623052

点赞
stackoverflow用户255049
stackoverflow用户255049

对于一个精确的答案,你只需要比较两个项目的 BC 生成器,不过,为什么要麻烦自己用转换器呢?LuaJIT 是开源的,而且如果我没记错的话,LuaDec 也是开源的,将其转换为 LuaJIT 的字节码应该很简单。

然而,你应该查看 LuaJIT 的命令行选项 的使用,它们可以用于输出字节码清单或 bytecode 的 C/h/obj/o 文件导出,这两者都可以用来实现你想要的功能。

2011-12-24 06:51:48
stackoverflow用户221509
stackoverflow用户221509

将下面翻译成中文并且保留原本的 markdown 格式

差别非常显著。LuaJIT使用的操作码比标准Lua多得多,因为它专门用于一些操作,例如从函数返回与一次返回一个返回值等。

你可以比较Lua操作码LuaJIT操作码的定义,并看看是否可以在它们之间翻译,但这不是容易的...

2011-12-24 13:34:09