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

ブラウザー環境

ブラウザー環境

Pro
v7.9.0+

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

browserEnvironment オプションは、本番ビルドが配信される環境に関する事実を宣言し、保護されたコードがそれらに自身を結び付けたり反応したりできるようにします。小さなオブジェクトで、各フィールドは特定の保護と組み合わせた場合にのみ有効です — このオプション単独では何もしません:

browserEnvironment: { transport: 'https', hosting: 'remote' }

transport

本番環境がバンドルを配信するスキーム — 'http' または 'https'vmSelfDefending と併用した場合に有効です。

'https' を指定すると、リバースエンジニアが素の HTTP で配信したコピーは正しく動作しません。'http' またはフィールド未設定の場合、そのような保護は追加されません。

hosting

本番バンドルの配信元 — 'remote' または 'local'vmDebugProtection と併用した場合に、browser および browser-no-eval ターゲットでのみ有効です。難読化ツールのバージョン 7.14.0 以降が必要です。

'remote' を指定すると、リバースエンジニアが持ち出して自身のローカル環境で実行したコピーは実行環境の不一致として扱われ、自動化対策の防御が vmDefenseReaction の設定に従って反応します。'local' または未設定の場合、この保護は追加されません。

対応ターゲット

browserEnvironmentbrowserbrowser-no-evalservice-worker ターゲットにのみ適用されます。nodeuserscriptbytenode ではオプションが拒否され、設定を黙って破棄するのではなくバリデーションエラーで難読化が失敗します。hosting はさらに範囲が狭く、service worker では受け付けられますが、そこでは何も結び付けません。

要件

  • transportvmSelfDefending と、hostingvmDebugProtection と併用した場合に有効です。それ以外ではどちらも何もしません。
  • browserbrowser-no-eval、または service-worker ターゲット(hosting の場合は browser または browser-no-eval)。
  • 難読化ツールのバージョンが transport7.9.0 以降hosting7.14.0 以降

JavaScriptObfuscator.obfuscate(code, {
    vmObfuscation: true,
    vmSelfDefending: true,
    vmDebugProtection: true,
    target: 'browser',
    browserEnvironment: { transport: 'https', hosting: 'remote' }
});