コマンド ラインを使用する方法の詳細については、コマンド ライン インターフェイスのページを参照してください。
インストール場所
Dotfuscator の コマンド ラインは、使用したインストール パッケージに応じて、次のパスにあります。
インストール パッケージ | ディレクトリ |
---|---|
Windows インストーラー | %DOTFUSCATOR_HOME%\dotfuscator.exe |
NuGet パッケージ | {install dir}/tools/programdir/dotfuscator.dll |
{install dir}
は、NuGet パッケージのインストール時に示した Dotfuscator インストール ディレクトリです。
Windows インストーラー バージョンの CLI は .NET Framework 4.7.2 アプリケーションです。 Windows のコンソール ツールのように実行できます。
%DOTFUSCATOR_HOME%\dotfuscator.exe
%DOTFUSCATOR_HOME%
を PATH
に追加しようとします。 通常、これは dotfuscator
だけで CLI を実行できるということです。NuGet パッケージ バージョンの CLI は、フレームワークに依存する .NET 6 アプリケーションです。 CLI を で実行できるようにするには、事前に .NET 6 ランタイム以上をインストールしておく必要があります。
dotnet {install dir}/tools/programdir/netcore/dotfuscator.dll
または
{install dir}/tools/programdir/netcore/dotfuscator
コマンド ライン オプションの概要
コマンド ライン オプションは先頭にスラッシュ '/' またはハイフン '-' を付けます。
コマンド ライン オプション:
使用法: dotfuscator [オプション] [構成ファイル]
標準オプション
以下に、標準のコマンド ライン オプションの概要を示します。
標準のオプション | 説明 | |
---|---|---|
-i |
調査のみ実行する。 | ドライ ラン(試行テスト)のみ実行します。出力アセンブリを書き込みません。シミュレートしたビルドの結果は、割り当てファイルに記載されています。 |
-p=<property list> |
構成ファイルでユーザーが定義したプロパティの値を指定する。 | プロパティ リストには、プロパティ名とプロパティ値のペアの間をカンマで区切って記述します(例:-p=outdir=c:/temp,name=MyApp.exe)。 |
-q |
メッセージを何も出力しない。 | このオプションを指定すると、詳細出力モードはオーバーライドされます。 |
-v |
詳細な情報を出力する。 | 実行中に処理の進行状況に関する追加情報が表示されます。 |
-nologo |
Dotfuscator の著作権およびライセンス情報を出力しない。 | |
-? |
ヘルプを表示する。 | |
-?? |
拡張オプションを出力する。 | |
[config_file] |
Dotfuscator 構成ファイルのパス。 |
<property list>
は、プロパティ名とプロパティ値のペアの間をカンマで区切ったリストです。 -p
オプションによるプロパティの宣言と値の割り当ては、たとえば次のような形で指定します。
-p=outdir=c:/temp,name=MyApp
プロパティ値にスペースが含まれている場合は、次の例のように引用符で囲んで指定します。
-p=MyProperty="value has spaces"
追加オプション
追加オプションは、構成ファイルを事前に作成する必要なしにコマンド ラインから基本的な難読化処理を実行できるようにするためのものです。 コマンド ラインの追加オプションで構成ファイルを使用した場合、構成ファイルで指定されているコマンドは、コマンド ラインで指定したオプションによって補完またはオーバーライドされます。 詳細については、コマンド ラインでのオプション指定による構成ファイルの補完またはオーバーライドを参照してください。
追加オプションは先頭の 4 文字によって認識されます。
以下に、コマンド ラインの追加オプションの概要を示します。 アスタリスク(*)は、そのオプションが指定されず、構成ファイルも指定されていない場合に使用される既定の設定を示します。
追加オプション | 説明 |
---|---|
-in [+|-]<file>[,[+|-]<file>] |
入力を指定する。アセンブリ、パッケージ ファイルまたはディレクトリ ファイルのあらゆる組み合わせが指定できる。プレフィックスにより、入力アセンブリをライブラリ モード(+)とプライベート(-)のいずれとして難読化するかを指定する。既定値のモードはアセンブリ ファイルの拡張子によって決定される(EXE はプライベート、.DLL はライブラリ モードで実行)。 |
-out:<directory> |
出力ディレクトリを指定する。既定値のディレクトリは ./Dotfuscated。 |
-honor:[on|off*] |
すべての入力アセンブリで見つかった難読化属性の使用命令を有効/無効にする。 |
-strip:[on|off*] |
すべての入力アセンブリからの難読化属性の除去を有効/無効にする。 |
-makeconfig:<file> |
非推奨。genconfig を使用すること。大部分の実行時オプション(コマンド ラインで指定されたオプション、および構成ファイルが存在する場合はそのファイルで指定されているオプション)を <file> に保存する。ビルドは実行する。 |
-genconfig:<file> |
すべての実行時オプション(コマンド ラインで指定されたオプション、および構成ファイルが存在する場合はそのファイルで指定されているオプション)を <file> に保存する。ビルドは実行しない。 |
-debug:[on|off*|auto] |
出力アセンブリでデバッグ シンボルを出力する。現在、このオプションで on 設定を使用することは推奨していません。代わりに、auto 設定を使用するようにしてください。 |
-license:<license-string> |
Dotfuscator ライセンス文字列を指定してアクティブ化し、この Dotfuscator 実行用に使用します。通常、このオプションはフローティング ライセンスに使用してください。別のライセンスが環境変数またはライセンス ファイルで指定されている場合でも、このオプションの値が使用されます。 |
-suppress:[on|off*] |
サポートされる出力アセンブリへ SuppressIldasmAttribute を追加する。 |
-disable |
他のオプションの設定にかかわらず、すべての変換を無効にする。 |
-mono-compatible:[on|off*] |
Mono 互換の変換のみを使用する。 |
-rename:[on|off*] > |
名前の変更を有効/無効にする。 |
-mapout:<file> |
出力割り当てファイルを指定する。既定値のファイルは ./Dotfuscated/map.xml。 |
-mapin:<file> |
入力割り当てファイルを指定する。 |
-clobbermap:[on|off*] |
割り当てファイルの上書きモードを指定する。 |
-keep:[namespace|hierarchy|none*] |
型の名前変更規則を指定する。 |
-prefix:[on:off*] |
名前変更後のすべての型にプレフィックスを付ける。 |
-enhancedOI:[on|off*] |
拡張オーバーロード誘導を使用する。 |
-refsrename:[on*|off] |
入力割り当てファイルにのみ定義されている、参照されるメタデータの名前を変更する。 |
-naming:<naming option> |
識別子の名前変更規則を指定する。<naming option> には loweralpha 、upperalpha 、numeric 、または unprintable のいずれかを指定できる。 |
-controlflow:[high*|medium|low|off] |
制御フローの難読化レベルを設定する。 |
-encrypt:[on*|off] |
文字列の暗号化を有効化/無効化する。 |
-prune:[on*|off|const] |
不要なコードの除去を有効化/無効化する。あるいは定数のみ除去を有効化する。 |
-rmout:<file> |
除去レポート ファイルを指定する。指定がない場合(既定)、レポートは作成されません。 |
-rmclobber:[on|off*] |
既存の除去レポートをバックアップしないで、その除去レポートを上書きすることを有効/無効にする。 |
-link:[[+][,[+]],]out= |
名前付き出力アセンブリにリンクするアセンブリを指定する。'+' のプレフィックスは、プライマリ アセンブリであることを示す。リストを省略すると、入力のうち最初の入力をプライマリ アセンブリとして、すべての入力がリンクされる。コマンド ラインでは、複数のリンク オプションを指定できる。 |
-link:off |
リンクを無効にする。リンク機能は、構成ファイルと共にリンク オプションを渡さない限り、既定値ではオフである。このオプションは、そのようなシナリオで役立つ。 |
<-premark:[on|off*|only]
|
ウォーターマークを有効化/無効化する。 "only" オプションは、他のすべての変換処理を無効にする。 |
-watermark: |
ウォーターマーク文字列を指定する。引用符は省略可能です。既定で、すべての入力アセンブリがこの文字列によってウォーターマーク処理される。 |
-passphrase: |
パスフレーズの指定は任意で、これはウォーターマーク文字列を暗号化する場合に使用される。 |
-charmap: |
ウォーターマーク文字列のエンコードに使用する文字コードを指定する。name は、サポートされている文字コードのうちの 1 つでなければならない。文字コードを参照。 |
-smart:[on|off] |
スマート難読化を有効化/無効化する。SmartObfuscation を参照。 |
-soreport:[all|warn|none] |
スマート難読化機能のレポート出力の詳細レベルを設定します。SmartObfuscation を参照。 |
-soout:<file> |
スマート難読化レポート ファイルを指定する。指定がない場合(既定)、レポートは作成されません。 |
-soclobber:[on|off*] |
既存のスマート難読化レポートをバックアップしないで、そのレポートを上書きすることを有効/無効にする。 |
コマンド ラインでのオプション指定による構成ファイルの補完またはオーバーライド
Dotfuscator は、すべてまたは一部の設定を記述した構成ファイルを適用した上で、コマンド ラインでのオプションの指定によって構成ファイルの設定を補完またはオーバーライドできるという優れた特徴を備えています。 そのため、標準的な構成ファイルをテンプレートとして使用しながら、その設定を必要に応じてすばやく調整することができます。
コマンド ライン オプション | 構成ファイル オプション | メモ |
---|---|---|
-in [+|-][,[+|-]] |
input セクション | 追加 |
-out: <directory> |
output セクション | オーバーライド |
-honor:[on|off* ] |
inputassembly セクション | オーバーライド |
-strip:[on|off*] |
inputassembly | オーバーライド |
-debug:[on|off*|auto] |
debugauto 、debug 、debugimpl 、debugopt 、および pdb オプション |
オーバーライド |
-suppress:[on|off*] |
suppressildasm グローバル オプションを設定(または設定解除) |
オーバーライド |
-disable |
renaming、controlflow、stringencrypt および removal の各セクションで "disable" オプションを設定 | オーバーライド |
-rename:[on:off] |
"renaming" セクションで "disable" オプションを設定(または設定解除) | オーバーライド |
-mapout:<file> > |
"mapoutput" セクション | オーバーライド |
-mapin:<file> |
"mapinput" セクション | オーバーライド |
-clobbermap:[on|off] |
"mapoutput" セクションの "overwrite" 属性 | オーバーライド |
-keep:[namespace|hierarchy|none] |
"keepnamespace" ,"keephierarchy" 名前変更オプションを設定(または設定解除) | オーバーライド |
-enhancedOI:[on|off] |
"enhancedOI" 名前変更オプションを設定(または設定解除) | オーバーライド |
-refsrename:[on|off] |
"mapinput" 要素の "obfuscatereferences" 属性 | オーバーライド |
-naming:<naming option> |
renaming セクションの "scheme" 属性を設定する。<naming option> には loweralpha 、upperalpha 、numeric 、または unprintable のいずれかを指定できる。 |
オーバーライド |
-controlflow:[high|medium|low|off] |
"controlflow" セクションの "level" 属性を設定。off フラグは "disable" オプションを設定する。 | オーバーライド |
-encrypt:[on|off] |
stringencrypt セクションで "disable" オプションを設定(または設定解除) | オーバーライド |
-prune:[on|off] |
removal セクションで "disable" オプションを設定(または設定解除) | オーバーライド |
-rmout:<file> |
removal セクションで "removalreport" オプションを設定 | オーバーライド |
-soout:<file> |
smartobfuscation セクションで "smartobfuscationreport" オプションの "file" 属性を設定 | オーバーライド |
-link:[[+]<name>[,[+]<name>],]out=<name> |
要素の子要素を設定 | オーバーライド |
-link:off |
linking セクションで "disable" オプションを設定 | オーバーライド |
-premark: [on|off*|only] |
premark セクションで "disable" オプションを設定(または設定解除)。"only" 設定は構成ファイルに保存されない。 | オーバーライド |
-watermark |
要素を設定 | オーバーライド |
-passphrase |
要素の設定および usepassphrase オプションの設定 | オーバーライド |
-charmap |
premark セクションで "encoding" 属性を設定 | オーバーライド |
名前の変更規則とその制限事項については、ここをクリックしてください。
例
例 1:
dotfuscator -in:my.dll
名前の変更、制御フローの難読化、不要コードの除去、および文字列の暗号化を有効にして、my.dll
をライブラリとして難読化します(公開されているシンボルは除去されずに保持されます)。 出力ディレクトリを指定していないので、出力アセンブリは既定の ./Dotfuscated ディレクトリに出力され、割り当てファイルとして ./Dotfuscated/map.xml が使用されます。
例 2:
dotfuscator -in:-myapp.exe,-private.dll
myapp.exe
および private.dll
を 1 つのスタンドアロン アプリケーションとしてまとめて難読化します。 DLL 内の公開されているシンボルも難読化されます。 不要コードの除去は、myapp.exe 内のエントリ ポイント メソッドに基づいて有効化されます。
例 3:
dotfuscator -in:myapp.exe -mapo:MyName.xml
myapp.exe
をスタンドアロン アプリケーションとして難読化します。 このコマンドでは名前変更の出力割り当てファイルが指定されています。