ドキュメント
/
VM 難読化
/

VM Debug Protection

VM Debug Protection

Pro

視聴する

Obfuscator.io Advanced Defenses: Self-Defending, Debug Protection, Domain Lock

YouTube で視聴

vmDebugProtection オプションは VM ランタイムにデバッグ対策を追加し、保護されたコードのリバースエンジニアリングを大幅に難しくします。各検知がどのように反応するかは、vmDefenseReaction の debugger、automation、sandbox カテゴリーで設定します。

browserEnvironment.hosting を 'remote' に設定すると(v7.14.1 以降)、Debug Protection はビルドをリモートホストから配信されることにも結び付けます。ローカルの開発ホストから配信されたコピーは実行環境の不一致として扱われ、自動化対策の防御が反応します。

これらの防御は、自分自身のエージェント、自動化ツール、デバッガーに対しても作動します。実行が停止したり、無関係なエラーが発生したり、誤った結果が生じたりする場合があります。機能テストには別のテスト用ビルドを使ってください。そのビルドで上書きするオプションはテストと CI に記載しています。

インスペクターの検知

難読化ツール 8.0.0 以降、vmDebugProtection は真偽値に加えてオブジェクトも受け付けます。オブジェクトを渡すと、Debug Protection を有効にしたまま、1 つの検知機能だけを緩められます。

JavaScript

inspectorDetection(デフォルトは有効)は、接続された Chrome DevTools Protocol のインスペクターや動作中のデバッガーを検知し、反応します。ブラウザーの開発者ツールを開くとこのようなセッションが接続されるため、開いているインスペクターは検知され、反応の対象になります。 本番環境では有効のままにし、ユーザーが正当な理由で開発者ツールを開く場合にのみ無効にしてください。ダッシュボードでは、これは VM Debug Protection の下にある Inspector Detection サブスイッチ(v8.0.0 以降)で、Debug Protection を有効にすると表示されます。

自動化フレームワーク。 inspectorDetection が有効な場合(デフォルト)、CDP ベースのツール(Puppeteer、Playwright、Selenium/ChromeDriver)で保護されたページを操作すると、接続されたインスペクターとして検知されます。vmDebugProtection: { inspectorDetection: false } がオフにするのはインスペクターの検知機能だけで、Debug Protection の自動化検知機能は、操作されているブラウザーに引き続き反応することがあります。自動テスト用のビルドには、vmDebugProtection と vmSelfDefending を無効にするテストと CI の手順に従ってください。

Content Security Policy

Content Security Policy で動的評価が禁止されている場合(unsafe-eval なし)は、browser-no-eval ターゲットを使い、そのポリシーのもとで出力を検証してください。このターゲットは、本来は動的評価に依存するチェックに代替手段を使います。制限の厳しい CSP を持つブラウザー拡張機能にも同じことが言えます。最良の互換性を得るには browser-no-eval を使ってください。