ドキュメント
/

プリセットの選択

プリセットの選択

プリセットは設定の出発点です。プリセットを選んだら、選択した難読化ツールのバージョンで有効になるオプションを確認してください。

視聴する

Which Obfuscator.io Preset Should I Use? VM Low vs Default vs High

YouTube で視聴

バージョン 8.0.0 以降では、本番向けの出発点として VM Default を推奨します。VM Low は VM Self Defending と VM Debug Protection が無効なため、初期評価に適しています。他の VM プリセットは両方を有効にします。Free プランでは、ダッシュボードで選べるのは VM Low のみです。その他の VM プリセットとその VM オプションには有料プランが必要です。

VM (8.0.0 以降)

optionsPreset変更点
vm-low-obfuscationVM Low は VM の防御を減らした状態で始まり、stringArray と vmBytecodeArrayEncoding は無効のままです。VM 難読化の評価に使うものであり、テスト用ビルドのベースにするものではありません。
vm-defaultVM Default は VM、String Array の保護、高度な防御を組み合わせます。本番用の出発点です。
vm-high-obfuscationVM High は Stateful Opcodes、Stack Encoding、Compact Dispatcher を追加します。自身のコードで負荷を測定してください。
vm-ultra-high-obfuscationVM Ultra High は Stateful Opcodes と Stack Encoding を維持しますが Compact Dispatcher は含まず、Control Flow Flattening と追加の基本変換を加えます。実行時のパフォーマンスが大幅に低下します。

バージョン 8.0.0 以降では、vm-anti-llm(VM Anti-LLM)と vm-medium-obfuscation(VM Medium)は vm-default と同じオプションになり、ダッシュボードに独立した選択肢として表示されません。以前のバージョンでは別の選択肢として表示される場合があります。

基本的な難読化

optionsPresetselfDefendingdebugProtectiondisableConsoleOutput
defaultfalsefalsefalse
low-obfuscationtruefalsetrue
medium-obfuscationtruefalsetrue
high-obfuscationtruetruetrue

重いプリセットは出力サイズや実行時間を増やす場合があります。固定の低速化倍率に頼らず、自分のコードの起動時間、頻繁に実行される処理、圧縮後のバンドルサイズを測定してください。 特定の関数を保護する方法については、特定の関数を対象にするを参照してください。

API ビルドでは、使用する難読化ツールのバージョンの組み込みプリセットのオプションをプリセットのエンドポイントから取得し、options として送信してください(API リファレンスを参照)。

カスタムプリセット

組み込みプリセットは出発点です。そこから何かを調整したら、次回作り直すのではなく結果を保存しておきましょう。オプションパネル上部のプリセットライブラリで新しいプリセットを選びます。プリセットには、その時点のすべてのオプションが、任意の名前と説明(省略可)とともに保存されます。難読化ツールのバージョンは保存されないため、ビルド時に選択されているバージョンが適用されます。保存したプリセットはカスタムに一覧表示されます。カスタムプリセットは Pro プラン以上で利用でき、アカウントごとに最大 20 個です。

プリセットのカードをクリックすると、そのプリセットがオプションパネルに適用されます。オプションを変更すると、適用中のプリセットに編集済みと表示されます。変更を元に戻すを選ぶとオプションがプリセットの状態に戻り、自分のプリセットではプリセットを更新を選ぶと変更がそのプリセットに保存されます。保存されていない変更を別のプリセットで上書きする前には、確認を求められます。編集、複製、削除はプリセットのメニューにあります。よくある構成は、本番用プリセットを 1 つと、そこにテストと CI の上書き設定を加えたテスト用のバリエーションを用意するものです。こうすると両方のビルドで同じ変換が実行されます。

保存ダイアログにはもう 2 つ、プリセットを自分のダッシュボードの外へ広げるフィールドがあります。

  • チームと共有するはプリセットをチームに公開し、チームのデフォルトにもできます。このスイッチはチームオーナーにのみ表示されます。共有プリセットを参照してください。
  • API エイリアスを使うと、ビルドがプリセットを名前で使えます。javascript-obfuscator パッケージ(5.8.0 以降)では、optionsPreset にエイリアスを指定するとビルド時にプリセットのオプションが取得されるため、設定はダッシュボードに置いたままで、そこでの変更がコミットなしで次のビルドに反映されます。API を直接呼び出す場合は、別のリクエストでプリセットのエンドポイントからオプションを取得します(API リファレンスを参照)。NPM パッケージの利用を参照してください。