标准Lua字节码和LuaJIT字节码之间的差异

时间:2011-12-24 06:11:12

标签: lua bytecode luajit

我一直在尝试反编译一个LuaJIT字节码文件。我设法拆卸它(但找不到任何方法重新组装它)。所以我正在考虑编写一些软件来从LuaJIT字节码转换为标准的Lua字节码,然后通过LuaDec很好地运行。

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

2 个答案:

答案 0 :(得分:10)

差异非常大。 LuaJIT使用比标准Lua更多的操作码,因为它专门用于某些操作,例如从函数返回而返回1返回值等等。

您可以做的最好的事情是比较Lua opcodesLuaJIT opcodes的定义,看看您是否可以在它们之间进行转换,但这不会是微不足道的......

答案 1 :(得分:1)

对于一个确切的答案,你只需比较两个项目的BC生成器,但是,为什么要打扰转换器,LuaJIT是开源的,而IIRC也是LuaDec,将它转换为LuaJIT的字节码应该非常简单

但是,您应该查看使用的command-line options of LuaJIT本身,有些用于转储字节码列表,或者转出C / h / obj / o字节码文件,这两个文件都可以使用做你想做的事。