[PreMark]エディターでは、ウォーターマークを作成する対象のアセンブリを選択し、選択したアセンブリに適用するウォーターマークを設定することができます。
アセンブリの選択
左側に入力アセンブリの一覧が表示されます。 アセンブリの隣にあるチェック ボックスをオンにすることによって、そのアセンブリにウォーターマークを設定するよう選択できます。
ウォーターマーク オプション
ウォーターマーク文字列を暗号化してから入力アセンブリに適用するよう選択することができます。 暗号化は、指定したパスフレーズに基づいて行われます。 [パスフレーズを使って暗号化]チェック ボックスをオンにすると、パスフレーズの入力テキスト ボックスが有効になるので、そこにパスフレーズを入力できます。
Dotfuscator は、エンコードされ、場合によっては暗号化もされるウォーターマーク文字列が、指定の出力アセンブリに収まるかどうかを前もって予測することはできません。 ウォーターマークの設定時、その文字列が収まらない場合にどう対処するかを、[ウォーターマーク文字列が大きすぎる場合]ドロップダウン リストを使って Dotfuscator に指示できます。 自動的にウォーターマーク文字列を切り捨てて警告を発するか、またはエラーによってビルドを中止するかどうかを選択できます。
文字コード
ウォーターマーク文字列は、特定バイトにエンコードしてからアセンブリに適用する必要があります。 Dotfuscator はいくつかの組み込み文字コードを用意しています。これらはサイズを最適化するための、一般的に使用される文字セットです。 それらのいずれかを使用すると、より大きなウォーターマーク文字列が指定のアセンブリに収まるようになります。 特殊化した文字コードのどれもが要求に合わない場合は、標準の UTF-8 エンコードを選ぶことができます。
Dotfuscator にはいくつかの文字コードが定義されており、それを使用してウォーターマーク文字列をエンコードすることができます。 領域が問題となる場合は、より小さいエンコードを選択できますが、そうすると文字列内に表示できるキャラクタの数が低下します。
名前 | 説明 | 1 文字あたりのビット数 |
---|---|---|
4bit-a |
4 ビット 16 進数 | 4 |
6bit-a |
6 ビット 大文字の英数字および記号 | 6 |
6bit-b |
6 ビット 英数字 | 6 |
7bit-a |
7 ビット 英数字および記号 | 7 |
UTF-8 |
任意の文字 | 可変 |
各文字コードに定義されている特定の文字は、Dotfuscator の構成エディターによって表示されます。
ウォーターマーク文字列
ウォーターマーク文字列の入力時、現在選択されている文字コードに含まれない文字を入力すると、その旨の通知が表示されます。
ウォーターマーク文字列の長さ
ウォーターマーク文字列の最大サイズは、構成オプションと対象となるアセンブリの複雑さによって決定されます。 通常、アセンブリが大きければ、より大きい文字列を入れることができます。 Dotfuscator は文字の符号化に必要なビット数を最小限に抑えるため、文字エンコード(文字コードと呼ぶ)を使用します。小さい文字エンコードを使用すれば、より長いウォーターマーク文字列を指定のアセンブリに対して作成できます。
また、暗号化アルゴリズムには一定のブロック長情報が必要です。 このため、ウォーターマーク文字列の暗号化を選択した場合、指定可能なウォーターマーク文字列の最大長が暗号化をしない場合に比べて短くなる場合があります。
出力アセンブリが生成されるまで、Dotfuscator はウォーターマーク文字列の最大長を予測することはできません。 しかし、Dotfuscator に対し、ビルド中にウォーターマーク文字列が出力アセンブリに収まらなかった場合どう対処するかを指示しておくことはできます。 既定の設定では、アセンブリに収まるように文字列を切り詰め、出力ウィンドウに警告メッセージを出力します。 エラーなしでビルドを停止させるよう、Dotfuscator に指示することもできます。 どちらの場合も、メッセージにウォーターマークの最大サイズが示されます。
ウォーターマークの抽出
Dotfuscator には、premark
と呼ばれるコマンド ライン ツールが付属しています。このツールはアセンブリを入力として受け付け、ウォーターマークが設定されている場合は、それを出力します。 このツールは Dotfuscator と同じディレクトリにインストールされます。
ウォーターマークの抽出:
premark [オプション] assembly1[,assembly2, ...]
assembly1,...: .NET アセンブリまたはモジュールのリスト
オプション:
-a パスフレーズを要求します。
-p=passphrase ウォーターマーク文字列を復号化する際に使用するパスフレーズ
(暗号化しない場合はなし)。