JSファイルを難読化して極力コードの解読を防ぎます。一般JSも勿論、ゲームJSに強力に対応した難読化ジェネレーターです。一般用とゲーム用、3つのツールを紹介しますが、どちらも最強だと思います。※無料です
一度、難読化したコードを元に戻すことは、大変に時間を要します。それを回避するためには、難読化されたコードを仮に元のコードに上書きする際は、必ず[元ファイルをバックアップ]して動作確認を行って下さい。また、本ツールは100%難読化を保証するものではありません。
| JavaScript Strong Obfuscator | ||
| JSファイルのドラッグ&ドロップ | .js以外を拒否 | 空ファイルを拒否 |
| 10MB超を拒否 | JavaScript構文チェック | script / module の両方を判定 |
| 変数名変換 | 文字列配列化+Base64 | 数値難読化 |
| Control Flow Flattening | Dead Code Injection | Self Defending |
| Console無効化 | 文字列分割 | 難読化後の構文チェック |
| エラーならダウンロード中止 | 成功したら自動ダウンロード | 元ファイル名を維持 |
| JSコードはサーバーへアップロードせず、ブラウザ内で処理 | ||

難読化ツール↓
| JS Ultimate Obfuscator v2 | ||
| 一般JavaScript対応 | ゲーム安全モード | 一般JS強力モード |
| Ultimate最大強度モード | ローカル変数・引数・内部識別子を積極的に改名 | 外部公開グローバルを保護 |
| 変数名変換 | 文字列配列化+Base64 | 公開APIを自動検出 |
| 予約API・予約名を手動指定可能 | プロパティ名変更は安全性を考えて初期OFF | 入力JSの構文チェック |
| 難読化後の構文チェック | 元のファイル名を維持 | 自動ダウンロード |
| 20MBまで対応 | async/await、ES6+、class、module系コードも解析対象 | |
| JSコードはサーバーへアップロードせず、ブラウザ内で処理 | ||

難読化ツール↓
| Ultimate JavaScript Obfuscator ultimate-vm |
| 基本コンセプト |
| ・ブラウザ上で動作するJavaScript難読化ツール。 ・ツール名は Ultimate JavaScript Obfuscator。 ・サーバーにコードを送信せず、基本的にブラウザ内で処理する構成。 ・一般的なJavaScriptだけでなく、実際のゲーム用JavaScriptも対象。 「Ultimate VM」では、 ・AST解析 ・独自バイトコード化 ・VMランタイム ・バイトコードのスクランブル ・ペイロードのエンコード ・第2段階の通常難読化を組み合わせる。 ・Ultimate VMで対応できない構文・処理があった場合、自動的に通常のUltimate難読化へフォールバックする。 ・「このコードはVM対応か?」を事前に判断する必要がない。 ・難読化されたファイル名は元コード名の後に"protected"の文字が追加、必要に応じてリネーム。 |
| 対応モード |
| Safe 比較的安全性・互換性重視。 通常のJavaScript Obfuscatorを使用。 |
| General 通常のJavaScript難読化。 Safeより強めの難読化設定。 |
| Ultimate 通常のJavaScript Obfuscatorを使用。 高強度の難読化設定。 VMではない通常Ultimate。 |
| Ultimate VM 独自VM方式。 JavaScript → 独自命令列 → VM Runtimeという構造に変換。 その後さらにJavaScript Obfuscatorで第2段階の難読化。 VMコンパイルできない場合は自動的に通常Ultimateへフォールバック。 |
| Ultimate VMの基本構造 |
| 元JavaScript ↓ AST ↓ 独自コンパイラ ↓ 独自バイトコード ↓ 命令列スクランブル ↓ ペイロードエンコード ↓ VM Runtime ↓ 第2段階JavaScript難読化 ↓ 最終JavaScript |
| 現在VMで意図的に制限 対応していない構文 ↓ VMコンパイル失敗 ↓ 通常Ultimate ↓ 最終コード生成 |

難読化ツール↓
Ultimate JavaScript Obfuscator ultimate-vm
| 利用規約 |
| 本サービスを利用した難読化機能は無償で提供されています。 |
| 本サービスにアクセスまたは利用することにより、ご利用者様は本規約に拘束されることに同意するものとします。本規約のいずれかの部分に同意できない場合は、本サービスを利用することはできません。 |
| 難読化は、すべての入力コードまたはすべての実行環境で正しく機能するとは限りません。 |
| 特定の特殊なコードやケースでは、バグ、エラー、または予期しない動作が発生する可能性があります。 |
| 難読化コードの使用に起因する損害、損失、問題(アプリケーションの障害、データの損失、業務の中断などを含むがこれらに限定されない)について一切責任を負いません。 |
| 常にオリジナルのソースコードのバックアップを保持しておくべきです。 |
| 悪意のある、データを損傷、無効化で損なうことを目的としたコードを難読化、保護、または処理することは禁止です。 |
JavaScript Strong Obfuscator・JS Ultimate Obfuscator v2・Ultimate JavaScript Obfuscator ultimate-vmの3つのツールはJavaScriptで作成されていますが、本ツールで難読化されています。参考のためにブラウザでページのソースを表示で難読化が確認できます。
