VM 難読化の効果を見る
プログラムの動作はまったく変わりません。ただ、読み取れるものが何も残らないだけです。
読み取れるソースコード
VM で保護されたバイトコード
* vm-high-obfuscation プリセットで難読化し、高度な LLM 対策防御を有効にしたコード例です
元のロジックは、埋め込まれた VM だけが実行できる独自のバイトコードに変換されます。静的解析ツールは、VM 全体をリバースエンジニアリングしない限りコードを理解できません。
多層的な LLM 対策リバースエンジニアリング防御
LLM が難読化コードを解析する手口のほとんどを防ぐように設計されています。
* vm-high-obfuscation プリセットで難読化し、LLM 対策防御を有効にしたコードに対するリバースエンジニアリングの様子です。JS 環境では実行時のメモリ検査を常に行えます。当社の防御は、そこに到達するためのコストを引き上げるものです。
その仕組み
LLM 対策を組み込んだ 2 つの独立した防御レイヤーが連携し、解析とリバースエンジニアリングを現実的に不可能なものにします
VM セルフディフェンディング
VM ランタイムはあらゆる段階で自身の整合性を検証します。改変、フックの注入、プロキシによる横取りは検知され、無効化されます。
コードの整合性検証
関数フックの検知
プロキシと横取りのトラップ
コールスタックの検証
エージェントのワークフロー妨害
VM デバッグ保護
開発者ツール、ブレークポイント、実行時の調査を遮断し、VM の実行をステップ実行したり観察したりすることを極めて困難にします。
DevTools の検知と対応
ブレークポイントの無効化
実行タイミングの検証
実行環境のフィンガープリンティング
おとりバイトコードによるかく乱
LLM 解析への対策防御
基本の難読化と VM 難読化の比較
機能ごとの詳細な比較
| 機能 | 基本 | VM 難読化 |
|---|---|---|
文字列配列の暗号化 | ||
制御フローの平坦化 | ||
デッドコードの注入 | シンプル | 高度 |
セルフディフェンディング | シンプル | 高度 |
デバッグ保護 | シンプル | 高度 |
バイトコードの仮想化 | ||
バイトコードの暗号化 | ||
コードの整合性チェック | ||
フック対策・改ざん対策 | ||
LLM 対策防御 |
JavaScript コード保護のユースケース
HTML5 ゲームから企業向けアプリケーションまで、JavaScript を盗用とリバースエンジニアリングから守ります
HTML5 ゲーム
プレイヤーによるチートや、競合他社によるゲームロジックの盗用を防ぎます。VM 難読化はリバースエンジニアリングを極めて困難にします。
SaaS アプリケーション
クライアントサイドのコードを解析しようとする競合他社から、独自のフロントエンドアルゴリズムやビジネスロジックを保護します。
ライセンス販売ソフトウェア
改ざんに強いバイトコードで、ライセンス認証、有料機能、海賊版対策の仕組みを保護します。
ブラウザ拡張機能
模倣品や悪意ある改変から拡張機能のコードを守ります。知的財産を安全に保ちましょう。
