Dotfuscator は、入力アセンブリを処理する際に、そのアセンブリにチェックを差し込む方法を決める多数の属性を認識します。 ソース コードでこれらの属性を使用することで、アプリケーション コードに沿って Dotfuscator のチェックを構成できます。 このページでは、これらの属性について説明します。
Dotfuscator のユーザー インターフェイスを使ってチェックを構成できる点にも留意してください。 構成する際、ユーザー インターフェイスの使用をお勧めする場合と、属性の使用をお勧めする場合については、属性の概要ページの属性を使用するタイミング セクションを参照してください。
属性の参照
属性は、パブリック NuGet パッケージ PreEmptive.Protection.Checks.Attributes
で使用可能です。 このパッケージには、.NET Standard 2.0 および .NET Framework 1.1 ターゲット バージョンの PreEmptive.Attributes.dll
が lib
ディレクトリにあります。
PreEmptive.Attributes.dll
を使用するには、PackageReference を使用するか、または packages.config
ファイルに追加することで NuGet パッケージへの参照を追加できます。
属性の一覧
このセクションでは、Dotfuscator がチェックの差し込みを構成するために認識する属性を列挙します。
Dotfuscator Professional にしか認識されないプロパティは列挙されていません。
TamperCheckAttribute
この属性でアノテーションの付けられたメソッドを、チェックを単独で行う場所として改ざんチェックを差し込むよう、Dotfuscator に指示します。
旧バージョンの Dotfuscator では、この属性は InsertTamperCheckAttribute
という名前でした。 その属性の使用は現在推奨されていないため、TamperCheckAttribute
を使用することをお勧めします。
名前空間:PreEmptive.Attributes
適用対象:Method
1 つのコード要素で複数個使用可能:No
要件:
-
Dotfuscator がこの属性の使用を認識し、改ざんチェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを有効にする]グローバル オプションが有効である。
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが改ざんされたアプリケーションを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ApplicationNotificationSinkElement:チェックが結果をアプリケーションに通知するために使用するコード要素の種類を指定します。このコード要素は、アプリケーション通知シンクと呼ばれます。
-
既定値は None で、アプリケーションにチェックの結果は通知されません。
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。 -
DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、Action を Exit に設定してください。
-
-
ApplicationNotificationSinkName:アプリケーション通知シンクの名前を指定します。
- ApplicationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ApplicationNotificationSinkOwner:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
DebuggingCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてデバッグ チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:Method
1 つのコード要素で複数個使用可能:No
要件:
-
Dotfuscator がこの属性の使用を認識し、デバッグ チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを有効にする]グローバル オプションが有効である。
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが、アプリケーションにデバッガーがアタッチされていることを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ApplicationNotificationSinkElement:チェックが結果をアプリケーションに通知するために使用するコード要素の種類を指定します。このコード要素は、アプリケーション通知シンクと呼ばれます。
-
既定値は None で、アプリケーションにチェックの結果は通知されません。
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。 -
DefaultAction はサポートされていません。この設定が使用されていると、Dotfuscator でエラーが発生します。
-
-
ApplicationNotificationSinkName:アプリケーション通知シンクの名前を指定します。
- ApplicationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ApplicationNotificationSinkOwner:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
ShelfLifeCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所として Shelf Life チェックを差し込むよう、Dotfuscator に指示します。
この属性を使用するには、Shelf Life Activation Key が必要です。
旧バージョンの Dotfuscator では、この属性は InsertShelfLifeAttribute
という名前でした。 その属性の使用は現在推奨されていないため、ShelfLifeCheckAttribute
を使用することをお勧めします。
名前空間:PreEmptive.Attributes
適用対象:Method
1 つのコード要素で複数個使用可能:No
要件:
-
Dotfuscator がこの属性の使用を認識し、Shelf Life チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを有効にする]グローバル オプションが有効である。
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
この属性の ActivationKeyFile プロパティが有効な Shelf Life Activation Key を参照している。
-
属性の ExpirationDate プロパティが設定されている。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
ActivationKeyFile:ビルド時に有効な Shelf Life Activation Key ファイルのパスです。
-
常に必須です。
-
このファイルは、アセンブリが Dotfuscator で処理された後には不要です。
-
-
ExpirationDate:アプリケーションの有効期限。絶対日付(
YYYY-MM-DD
)、または Dotfuscator の処理日付からの日数として指定します。- 常に必須です。
-
ExpirationNotificationSinkElement:有効期限切れ時の終了動作を制御します。
-
既定値は None であり、Shelf Life チェックを行った結果、有効期限が切れている場合でも、アプリケーションが続行されます。
-
DefaultAction が指定された場合、Shelf Life チェックはアプリケーションの有効期限が切れていることを検出したら、アプリケーションを終了します。
-
これら以外の設定値は、Dotfuscator Professional でのみサポートされます。
-
RootCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてルート チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:Method
1 つのコード要素で複数個使用可能:No
要件:
-
Dotfuscator がこの属性の使用を認識し、ルート チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを有効にする]グローバル オプションが有効である。
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが、アプリケーションがルート化された Android デバイスで実行されていることを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ApplicationNotificationSinkElement:チェックが結果をアプリケーションに通知するために使用するコード要素の種類を指定します。このコード要素は、アプリケーション通知シンクと呼ばれます。
-
既定値は None で、アプリケーションにチェックの結果は通知されません。
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。 -
DefaultAction はサポートされていません。この設定が使用されていると、Dotfuscator でエラーが発生します。
-
-
ApplicationNotificationSinkName:アプリケーション通知シンクの名前を指定します。
- ApplicationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ApplicationNotificationSinkOwner:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。