LuaJITバイトコードファイルを逆コンパイルしようとしています。私はなんとかそれを分解することができました(しかしそれを再組み立てする方法を見つけることができません)。そこで、LuaJITバイトコードからLuaDecを正常に実行する標準のLuaバイトコードに変換するソフトウェアを作成することを検討しています。
しかし、LuaJITバイトコードと標準のLuaバイトコードの違いは何ですか?
違いはかなり大きいです。LuaJIT は、関数からの戻りと 1 つの戻り値での戻りなど、いくつかの操作に特化しているため、標準の Lua よりも多くのオペコードを使用します。
あなたができる最善の方法は、 Lua オペコードとLuaJIT オペコードの定義を比較し、それらの間で変換できるかどうかを確認することですが、これは簡単なことではありません...
正確な答えを得るには、両方のプロジェクトの BC ジェネレーターを比較するだけで済みますが、LuaJIT はオープンソースであり、IIRC も LuaDec もそうであり、LuaJIT のバイトコードに変換するのは非常に簡単なはずです。
ただし、使用するLuaJIT自体のコマンドラインオプションを確認する必要があります。バイトコードリストをダンプするためのもの、またはバイトコードのC/h/obj/oファイルをダンプするためのものがあります。どちらも行うために使用できますあなたが欲しいもの。