Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます

標準Lua、LuaJIT、Luauのバイトコードから読みやすいLuaソースの再構成を試し、ブラウザーで結果をコピーまたは保存します。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
Luaバイトコード逆コンパイルは、コンパイラが出力した命令、定数、関数構造を読み取り、比較的読みやすいLuaソースの近似形に組み立てる処理です。.luac、.luac.out、.outを選択し、自動判定またはLua 5.1から5.5、LuaJIT 2.1、Luauの方言を指定できます。成功した結果はコピーまたは.luaとしてダウンロードできます。ファイル上限は10 MBで、選択したファイルは逆コンパイルのためにサーバーへアップロードせず、ブラウザー内で処理します。
コンパイル時にコメントや元のレイアウトがバイトコードへ保存されるとは限らず、ローカル変数名も削除されている場合があります。出力は再構成されたコードで、作者が書いた正確な原文ではありません。診断用の疑似コードとして表示されたり、対象インタープリターで解析できなかったりすることもあります。元のプロジェクトソースの代わりではなく、理解や調査の手掛かりとして利用してください。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
入力が標準Lua、LuaJIT、またはLuauでコンパイルされたバイトコードであり、10 MB以下であることを確認します。分析するのは権限のあるファイルに限ってください。通常のソーステキスト、アーカイブ、自作のラッパーは標準バイトコードではありません。
最初は自動判定を選びます。判定できない場合や出所が分かる場合は、コンパイルに使ったLuaのバージョンまたは方言を指定します。Luaバイトコードはバージョンに依存し、コンパイラのビルド設定やプラットフォームによる違いもあるため、不一致は失敗や誤解を招く結果につながります。
処理後、結果に診断用疑似コードの表示があるか確認します。.luaをコピーまたは保存したら、関数境界、定数、呼び出し順序、制御フローを点検し、対応する実行環境で解析とテストを行います。
失敗した場合は、拡張子、ファイルの完全性、実際の方言とバージョンを確認し、明示的な選択を試します。何度も失敗する場合は、暗号化、独自の保護シェル、仮想マシン難読化、非標準コンパイラなど、一般的な逆コンパイルの対象外かもしれません。
活用例
仕事や日常の流れの中での活用方法を紹介します。
保守担当者はビルド成果物を確認し、対象ランタイムで受け付けられるかを調べたり、ソースの控えがない場合に関数の大まかな処理を探したりできます。許可を得たセキュリティレビューでは、内部スクリプトの挙動を示す手掛かりを調べられます。Lua仮想マシンを学ぶ開発者は、バイトコードと再構成コードを見比べ、定数、関数呼び出し、分岐がどのように表されるかを学べます。
逆コンパイルは調査の手掛かりであり、ファイルの由来、作者、プログラムの安全性を証明するものではありません。第三者の成果物を扱う際はライセンス、アクセス権、所属組織の規則に従ってください。自分のコードを復旧したい場合は、出力をバージョン管理、バックアップ、実行テストと照合します。複数のLua方言を扱うプロジェクトでは、コンパイルコマンド、ツールチェーンのバージョン、対象プラットフォームを記録しておくと選択を誤りにくくなります。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
通常の逆コンパイルで扱えるのは標準バイトコードです。暗号化データ、独自保護、仮想マシン難読化、実行時復号には別の分析が必要で、Luaのバージョンを選ぶだけでは解除できません。
コメント、書式、ローカル名の一部は配布用バイトコードに含まれないことが一般的です。命令から構造を推定できても、これらのソース情報が復元できるとは限りません。
処理構造の手掛かりは得られたものの、完全で確定的なLuaソースを生成できなかった状態です。手作業での修正が必要な場合があり、解析可能性や元の挙動は保証されません。
どのLua実装とバージョンで作られたかを調べ、その選択を試し、ファイルが途中で切れていないか確認します。LuaJIT、Luau、標準Luaのバイトコード形式は同一ではありません。
ファイルはブラウザーのワーカーに渡され、ローカルで処理されます。ページは逆コンパイルエンジンのリソースを読み込みますが、分析のために選択ファイルをアップロードしません。機密ファイルや出力を公開場所へ貼り付けないよう注意してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
バイトコードはプログラムの実行に必要な情報を保持するもので、原始ソースの保管形式ではありません。コンパイラはコメント、空白、ローカル名、デバッグ情報などを省くことがあります。Luaの各バージョン、LuaJIT、Luau、ベンダー独自の変更版で命令形式が異なる場合もあります。逆コンパイルできても、変数名が自動生成されたり、複雑なクロージャー、制御フロー、最適化式が元とは別の形で表現されたりします。
逆コンパイルは復号ではなく、暗号化、ライセンス確認、独自保護を回避するものではありません。コード理解に使う場合は、バイトコードのバージョン、出所の信頼性、対象ランタイムをあわせて確認します。復元や変更を試す前に元ファイルを保存し、実際の動作を比較してください。所有または処理許可のあるファイルだけを分析し、結果を安全性の証明、出所の証拠、未検証の本番ソースとして扱わないでください。
関連
関連ツール、特集、利用可能なAPIを探せます。
Lua バイトコードビューアーLua のコンパイル済みバイトコードをブラウザー内で解析し、関数プロトタイプ、命令、定数、制御フローを確認します。
Luaコード圧縮ツールLuaソースのコメントや余分な空白を整理し、圧縮前後の長さを比較して結果をコピーできます。
Luau 静的解析・型チェッカーLuau 公式 Playground で Roblox Luau のコードを解析し、型診断やエディターのヒントを確認できます。ランダムメールアドレス生成ツールテストや登録用にランダムなメールアドレスを一括生成。プレフィックスとドメインを自由にカスタマイズ可能です。
Lua / Luau フォーマッターと構文チェッカーLua または Luau のソースを貼り付け、方言や書式を選んで整形できます。入力を置き換えずに構文だけを確認することもできます。