ドキュメント
/

VM 難読化

VM 難読化

Highest Security

VM 難読化は最も高度なコード保護の形態です。JavaScript の関数を、出力に埋め込まれたバーチャルマシン上で動作する独自のバイトコードへと変換します。元のロジックは完全に隠され、リバースエンジニアリングの対象となる JavaScript は残りません。

このセクションの内容

レジスタベース VM

VM をレジスタベースの実行モデルに切り替えます。バンドルがやや大きくなる代わりに、実行時が高速になります。

非同期エグゼキュータ

VM を非同期で実行し、バイトコードの復号キーをバンドルに同梱せず実行時に取得できるようにします。

対象関数の指定

機密性の高い関数だけを選択的に VM 難読化し、パフォーマンスを最適化します。

直接 eval の挙動

直接 eval() が VM 難読化を無効にする理由と、その落とし穴を避ける方法です。

strict モードの互換性

VM が正しいバイトコードを生成できるよう strict モードを宣言します。

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

VM ランタイムのための改ざん検知、フック対策、エージェント対策です。

VM デバッグ保護

VM で保護されたコードのためのデバッグ対策です。

VM ドメインロック

難読化した VM コードを特定のドメインおよびサブドメインに限定します。

ブラウザー環境

本番ビルドがどのように配信されるかを宣言し、保護されたコードがその完全性を結び付けられるようにします。

VM がコードを変換する仕組み

VM が何を残し何を隠すのか、そして関数名を保護する方法です。

NPM パッケージの利用

npm パッケージを使い、ビルドパイプラインから VM 難読化を適用します。