JSDefender CLI では、短いオプション名と長いオプション名がサポートされています。短い名前の先頭には 1 つのダッシュ(-)を指定し、長い名前の先頭には 2 つのダッシュ(--)を指定します。多くのオプションには長い名前しかありません。
基本的な構成設定:
-
-v、--version:製品のバージョンを表示します。 -
-h、--help:コマンド ライン オプションなど、CLI の使用に関するヘルプ情報を表示します。 -
-c、--config:設定が含まれる構成ファイル。そのファイル名は、これらのオプションの後に指定する必要があります。 -
-m、--mapout:このオプションには、割り当てファイルの名前とパスを指定できます。または、off値を使用すると、割り当てファイルの保存を無効にすることができます。そのファイル名(またはoffスイッチ)は、これらのオプションの後に指定する必要があります。詳細については、語彙割り当てセクションを参照してください。 -
--runtime:保護エンジンが JSDefender runtime を指定されたファイルに出力するよう、別のファイル名を指定することができます。 -
--license:JSDefender CLI を実行するためのライセンス キーを入力します。ライセンス キーを指定する別の方法については、ライセンスを参照してください。 -
--estarget:JSDefender は、コードを変換する際、入力の解析時に認識された最新の ECMAScript バージョンを使用します。このオプションを使用することで、その ECMAScript バージョンを変更できます。適用する ES(ECMAScript)バージョンの名前(es5、es2015、es2016、es2017、es2018、es2019、es2020)をオプションの後に指定する必要があります。--esTargetで、対象の ECMAScript バージョンを指定することは、その指定されたバージョン標準と互換性のない保護コードを JSDefender が差し込まないことを意味します。保護の大部分に対して、この動作では何も変わりません。何らかの変更がある場合、構成ファイルの形式ページの保護設定セクションにある個々の保護の記述で説明します。 ただし、ソース コードに、より上位バージョンの ECMAScript 標準の構文が含まれている場合、JSDefender は保護を適用しますが、より上位バージョンの ECMAScript に対応するソース コード部分を古いバージョンへトランスパイルすることはありません。このことを示す警告メッセージが表示されます。 -
-q、--quiet:メッセージ非表示モードを有効にします。このモードでは、JSDefender は一部の一般的な情報、エラー、および警告のみを出力します。既定では無効になっています。 -
--randomseed:一部の保護技法ではランダム化を使用しているため、同じ構成で実行しても毎回異なる出力が得られます。オプションの後に 32 ビット整数の値を指定する必要があります。指定しない場合、または 0 を指定した場合、保護では非決定性のシード値が使用されます。 -
--ignore-unsafe:JSDefender は、実行されるコードを失敗させる可能性のある、安全でない JavaScript の構成要素がないかどうか、ソース コードをチェックします。既定では、安全でない要素が見つかると、ソース コードの問題となる位置を示すエラーメッセージが表示されて、保護が直ちに中止されます。安全でない可能性のある要素によって、実行されるコードが失敗することはないと確信している場合は、このオプションを使用することで、保護処理を続行できます。 -
--disable-inline:インラインの保護ディレクティブの使用を無効にし、ディレクティブがソース コードに記述されていないかのようにします。 -
--nocolor:CLI 出力で色の使用を無効にします。 -
----runtime-injection:JSDefender Runtime の差し込みモード(firstNonModule、separateSource、all)を指定できます。詳細については、構成ファイルの形式セクションを参照してください。 -
--glob:入力パスの glob パターンマッチングを有効にします。--globを有効にしたら、node-glob パターン規則(例:dist/**/*.js)を使用して入力ファイルを指定することができます。 -
--outdir:保護されたファイルの出力先となるフォルダー。この値はディレクトリの有効な相対パスまたは絶対パスにする必要があります。既定値:protected。
保護設定:
メモ: 構成オプションの多くは、各保護オプションを有効または無効に指定するものです。ここでは、コマンド ライン オプションの簡単な概要のみを示しています。各保護技法の詳細については、保護技法をお読みください。
-
-b、--repbool:ブール リテラルの置き換えを有効にします。 -
-B、--repbooloff:ブール リテラルの置き換えを無効にします。 -
--constarg:定数引数の難読化を有効にします。 -
--constargoff:定数引数の難読化を無効にします。 -
--conscloaking:コンソールのクローキングの難読化を有効にします。 -
--conscloakingoff:コンソールのクローキングの難読化を無効にします。 -
--datelock:現在の日付が特定の期間に含まれるかどうかをテストするため、実行時の日付期間を設定します。この期間には、開始日または終了日を設定できます。オプションの後に期間の値を指定する必要があります。詳細については、dateLock セクションを参照してください。 -
--debrem:debuggerステートメントの削除を有効にします。 -
--debremoff:debuggerステートメントの削除を無効にします。 -
--devtools:開発者ツールのブロックを有効にします。 -
--devtoolsoff:開発者ツールのブロックを無効にします。 -
-d、--domainlock:オプションの後の引数に指定されたドメインにコードをロックします。詳細については、domainLock セクションを参照してください。 -
-e、--extstr:文字列リテラルの抽出を有効にします。詳細については、文字列リテラルの抽出セクションを参照してください。 -
-E、--extstroff:文字列リテラルの抽出を無効にします。 -
--exprseq:式シーケンスの難読化を有効にします。 -
--exprseqoff:式シーケンスの難読化を無効にします。 -
-f、--flow:制御フローの保護を有効にします。 -
-F、--flowoff:制御フローの保護を無効にします。 -
--funcreord:関数宣言の並べ替えを有効にします。 -
--funcreordoff:関数宣言の並べ替えを無効にします。 -
-i、--repint:整数リテラルの置き換えを有効にします。 -
-I、--repintoff:整数リテラルの置き換えを無効にします。 -
--radix:すべての整数リテラルを、指定された基数を使用した表現に変更します。詳細については、integerLiterals セクションを参照してください。 -
-l、--localdecl:ローカル宣言の名前変更を有効にします。 -
-L、--localdecloff:ローカル宣言の名前変更を無効にします。詳細については、localDeclarations セクションを参照してください。 -
-n、--names:識別子に使用する名前の改変方法を設定します。詳細については、localDeclarations セクションを参照してください。 -
-p、--propind:プロパティの間接参照を有効にします。詳細については、プロパティの間接参照セクションを参照してください。 -
-P、--propindoff:プロパティの間接参照を無効にします。 -
--propsparsing:プロパティの散在化を有効にします。詳細については、プロパティの散在化セクションを参照してください。 -
--propsparsingoff:プロパティの散在化を無効にします。 -
-r、--randomize:ランダム化をサポートするすべての保護技法で、ランダム化を有効にします。 -
-R、--randomizeoff:ランダム化を無効にします。 -
--selfdefend:自己防御型の変換を有効にします。詳細については、自己防御型の保護セクションを参照してください。 -
--selfdefendoff:自己防御型の変換を無効にします。 -
--vargroup:変数のグループ化による変換を有効にします。詳細については、変数のグループ化による保護セクションを参照してください。 -
--vargroupoff:変数のグループ化による変換を無効にします。 -
--globobjhiding:グローバル オブジェクトの非表示による変換を有効にします。詳細については、グローバル オブジェクトの非表示セクションを参照してください。 -
--globobjhidingoff:グローバル オブジェクトの非表示による変換を無効にします。
既定のコマンド ライン オプション
既定では、JSDefender により、文字列リテラルの抽出とローカル宣言の名前変更が有効にされます。既定の構成ファイルが存在しない場合、次のコマンド ラインは等価です。
jsdefender myJsBundle.js myProtectedScript.js
jsdefender myJsBundle.js myProtectedScript.js -e -l
既定の変換方法を使用せずに、ブール リテラルの置き換えのみを使用するとしましょう。その場合は、次のコマンドを発行する必要があります。
jsdefender myJsBundle.js myProtectedScript.js -E -L -b
ここで、-E は文字列リテラルの抽出を無効にし、-L はローカル宣言の名前変更を無効にしています。