2011-12-24 14 views
5

He intentado descompilar un archivo de código de bytes LuaJIT. He logrado desmontarlo (pero no puedo encontrar la manera de volverlo a montar). Así que estoy considerando escribir algún software para convertir un bytecode de LuaJIT en un bytecode estándar de Lua que correría bien en LuaDec.Diferencias entre el bytecode de Lua estándar y el bytecode de LuaJIT

Pero, ¿cuáles son las diferencias entre el bytecode LuaJIT y el bytecode estándar de Lua?

Respuesta

1

Para una respuesta exacta, solo necesita comparar los generadores BC de ambos proyectos, sin embargo, ¿por qué molestarse con un convertidor, LuaJIT es de código abierto, y IIRC también lo es LuaDec, debería ser bastante simple convertirlo a LuaJIT? bytecode.

Sin embargo, debe mirar el command-line options of LuaJIT en sí mismo de uso, hay algunos para eliminar el listado de códigos de bytes, o eliminar archivos C/h/obj/o de bytecode, los cuales se pueden usar para hacer qué usted quiere.

+0

He intentado todas las banderas para el vaciado de bytecode, ninguno de ellos devuelve un formato que pueda volver a montar O alimentar a LuaDec. – R4000

10

Las diferencias son bastante sustanciales. LuaJIT utiliza muchos más códigos de operación que el estándar Lua, ya que se especializa en algunas operaciones, como el regreso de una función que devuelve vs 1 con valor de retorno, etc.

lo mejor que podría hacer es comparar las definiciones de Lua opcodes y LuaJIT opcodes y ver si puede traducir entre ellos, pero esto no va a ser trivial ...

+0

Tenía miedo de esto :(Gracias por tu ayuda, echaré un vistazo. – R4000

Cuestiones relacionadas