JavaScriptVM 難読化

コードを JS バーチャルマシン上で動作する独自のバイトコードに変換します。高度なセルフディフェンディング、デバッグ保護、LLM 対策も利用できるようになりました。

VM 難読化の効果を見る

プログラムの動作はまったく変わりません。ただ、読み取れるものが何も残らないだけです。

Before

読み取れるソースコード

calculator.js

無防備

After

VM で保護されたバイトコード

calculator.protected.js

VM で保護済み

* vm-high-obfuscation プリセットで難読化し、高度な LLM 対策防御を有効にしたコード例です

元のロジックは、埋め込まれた VM だけが実行できる独自のバイトコードに変換されます。静的解析ツールは、VM 全体をリバースエンジニアリングしない限りコードを理解できません。

多層的な LLM 対策リバースエンジニアリング防御

LLM が難読化コードを解析する手口のほとんどを防ぐように設計されています。

claude

researcher@MacBook % claude
▐▛███▜▌ Claude Code
▝▜█████▛▘ Opus 4.7 (1M context) with xhigh effort
▘▘ ▝▝ ~/Projects/deobfuscate

obfuscated.js スクリプトをリバースエンジニアリングして、何をしているか説明し、元のコードを復元してください

⏺︎

まずはファイルを読むところから始めます。

6 時間後

⏺︎

午後いっぱい取り組みましたが、できませんでした。

静的解析、実行時の計装、フック、サンドボックス実行、専用ツールの作成など、通常試すことはすべて試しました。バイトコードのデコードすらできません。デコード用のキーはランタイム内部で計算されますが、ランタイムを観察しようとするたびにコード整合性チェックに引っかかり、プログラムは自身の状態を破壊するか、実行を拒否してしまいます。

典型的な堂々巡りです。ランタイムなしにバイトコードは読めず、かといってランタイムを壊さずに観察することもできません。

ここで断念します。このファイルだけから元のソースを復元することはできません。

何十万トークンも無駄にしましたね...

* vm-high-obfuscation プリセットで難読化し、LLM 対策防御を有効にしたコードに対するリバースエンジニアリングの様子です。JS 環境では実行時のメモリ検査を常に行えます。当社の防御は、そこに到達するためのコストを引き上げるものです。

その仕組み

LLM 対策を組み込んだ 2 つの独立した防御レイヤーが連携し、解析とリバースエンジニアリングを現実的に不可能なものにします

VM セルフディフェンディング

VM ランタイムはあらゆる段階で自身の整合性を検証します。改変、フックの注入、プロキシによる横取りは検知され、無効化されます。

  • コードの整合性検証

  • 関数フックの検知

  • プロキシと横取りのトラップ

  • コールスタックの検証

  • エージェントのワークフロー妨害

VM デバッグ保護

開発者ツール、ブレークポイント、実行時の調査を遮断し、VM の実行をステップ実行したり観察したりすることを極めて困難にします。

  • DevTools の検知と対応

  • ブレークポイントの無効化

  • 実行タイミングの検証

  • 実行環境のフィンガープリンティング

  • おとりバイトコードによるかく乱

  • LLM 解析への対策防御

基本の難読化と VM 難読化の比較

機能ごとの詳細な比較

機能基本VM 難読化

文字列配列の暗号化

制御フローの平坦化

デッドコードの注入

シンプル

高度

セルフディフェンディング

シンプル

高度

デバッグ保護

シンプル

高度

バイトコードの仮想化

バイトコードの暗号化

コードの整合性チェック

フック対策・改ざん対策

LLM 対策防御

JavaScript コード保護のユースケース

HTML5 ゲームから企業向けアプリケーションまで、JavaScript を盗用とリバースエンジニアリングから守ります

HTML5 ゲーム

プレイヤーによるチートや、競合他社によるゲームロジックの盗用を防ぎます。VM 難読化はリバースエンジニアリングを極めて困難にします。

SaaS アプリケーション

クライアントサイドのコードを解析しようとする競合他社から、独自のフロントエンドアルゴリズムやビジネスロジックを保護します。

ライセンス販売ソフトウェア

改ざんに強いバイトコードで、ライセンス認証、有料機能、海賊版対策の仕組みを保護します。

ブラウザ拡張機能

模倣品や悪意ある改変から拡張機能のコードを守ります。知的財産を安全に保ちましょう。

コードを保護する準備はできましたか?

料金プランを見る

よくある質問