チェック属性に関する完全なガイドについては、属性のページを参照してください。 チェックの詳細については、チェックの理解のページを参照してください。 ソース コードから独立してチェックを構成するために、構成エディターで[チェック]タブを使用するという方法もあります。
属性の参照
属性は、パブリック NuGet パッケージ PreEmptive.Protection.Checks.Attributes
で使用可能です。 このパッケージには、.NET Standard 2.0 および .NET Framework 1.1 ターゲット バージョンの PreEmptive.Attributes.dll
が lib
ディレクトリにあります。
PreEmptive.Attributes.dll
を使用するには、PackageReference を使用するか、または packages.config
ファイルに追加することで NuGet パッケージへの参照を追加できます。
Visual Studio 統合で属性を使用し、かつ、入力オプションである[チェック属性の除去]を有効にすると、作成したプロジェクトの出力ディレクトリ(bin/Release
など)に PreEmptive.Attributes.dll
ライブラリが入ります。 プロジェクトをビルドしたら、このファイルは不要になるので出力から削除できます。
属性の一覧
このセクションでは、Dotfuscator がチェックの差し込みを構成するために認識する属性を列挙します。
TamperCheckAttribute
この属性でアノテーションの付けられたメソッドを、チェックを単独で行う場所として改ざんチェックを差し込むよう、Dotfuscator に指示します。
旧バージョンの Dotfuscator では、この属性は InsertTamperCheckAttribute
という名前でした。 その属性の使用は現在推奨されていないため、TamperCheckAttribute
を使用することをお勧めします。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能:No
要件:
-
Dotfuscator がこの属性の使用を認識し、改ざんチェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを無効にする]オプションが "いいえ" に設定されており、かつ、
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが改ざんされたアプリケーションを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ActionProbability:改ざんが検出されたときにチェック操作が行われる確率(
0.00
~1.00
)を指定します。- 既定値は
1.00
(改ざんが検出された場合は、常にチェック操作が行われる)です。
- 既定値は
-
ApplicationNotificationSinkElement:チェックが結果をアプリケーションに通知するために使用するコード要素の種類を指定します。このコード要素は、アプリケーション通知シンクと呼ばれます。
-
既定値は None で、アプリケーションにチェックの結果は通知されません。
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。 -
DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、Action を Exit に設定してください。
-
-
ApplicationNotificationSinkName:アプリケーション通知シンクの名前を指定します。
- ApplicationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ApplicationNotificationSinkOwner:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
DebuggingCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてデバッグ チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能: No
要件:
-
Dotfuscator がこの属性の使用を認識し、デバッグ チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを無効にする]オプションが "いいえ" に設定されており、かつ、
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが、アプリケーションにデバッガーがアタッチされていることを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ActionProbability:デバッガーが検出されたときにチェック操作が行われる確率(
0.00
~1.00
)を指定します。- 既定値は
1.00
(デバッガーが検出された場合は、常にチェック操作が行われる)です。
- 既定値は
-
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
適用対象:メソッド
1 つのコード要素で複数個使用可能: No
要件:
-
Dotfuscator がこの属性の使用を認識し、Shelf Life チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを無効にする]オプションが "いいえ" に設定されており、かつ、
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
この属性の ActivationKeyFile プロパティが有効な Shelf Life Activation Key を参照している。
-
次の条件のいずれかを満たしている。
-
属性の ExpirationDate プロパティが設定されている(チェックにより Shelf Life トークンが埋め込まれる場合)
-
属性の ShelfLifeTokenSource プロパティが設定されている(実行時に、チェックに Shelf Life トークンを取得させる 場合)
-
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
ActivationKeyFile:ビルド時に有効な Shelf Life Activation Key ファイルのパスです。
-
常に必須です。
-
このファイルは、アセンブリが Dotfuscator で処理された後には不要です。
-
-
ExpirationDate:アプリケーションの有効期限。絶対日付(
YYYY-MM-DD
)、または Dotfuscator の処理日付からの日数として指定します。- ShelfLifeTokenSource が None(既定値)である場合は必須です。
-
ExpirationNotificationSinkElement:アプリケーションの有効期限が切れているかどうか、または警告日付と有効期限をアプリケーションに通知するときにチェックが使用する、コード要素の種類を指定します。このコード要素は、期限切れ通知シンクと呼ばれます。
-
既定値は None で、アプリケーションには、期限切れ通知シンクを介した通知は行われません。
-
アプリケーションの有効期限が切れたかどうかを報告するには
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。
-
-
Shelf Life の警告日付および有効期限を報告するには
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(string, string)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field と Property は、このモードではサポートされていません。
-
-
DefaultAction が指定された場合、チェックは、有効期限が切れていたらアプリケーションを終了します。
-
-
ExpirationNotificationSinkName:期限切れ通知のシンクの名前を指定します。
- ExpirationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ExpirationNotificationSinkOwner:期限切れ通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
-
WarningDate:アプリケーションの警告日付。絶対日付(
YYYY-MM-DD
)、または Dotfuscator の処理日付からの日数として指定します。-
既定では、警告日付の指定はありません。
-
指定する場合は、ExpirationDate より前の日付にする必要があります。
-
-
WarningNotificationSinkElement:アプリケーションが警告期間に入っているかどうか、または警告日付と有効期限をアプリケーションに通知するときにチェックが使用する、コード要素の種類を指定します。このコード要素は、警告通知シンクと呼ばれます。
-
既定値は None で、アプリケーションには、警告通知シンクを介した通知は行われません。
-
アプリケーションが警告期間に入っているかどうかを報告するには
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。
-
-
Shelf Life の警告日付および有効期限を報告するには
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(string, string)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field と Property は、このモードではサポートされていません。
-
-
DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、None を使用してください。
-
-
WarningNotificationSinkName:警告通知シンクの名前を指定します。
- WarningNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
WarningNotificationSinkOwner:警告通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
-
PrivateKeyFile:ビルド時の秘密キー ファイル(PKCS #12 形式)のパス。
-
既定では、埋め込まれた Shelf Life トークンの署名は行われません。
-
ExpirationDate を設定している(つまり、Dotfuscator がチェックを使って Shelf Life トークンを埋め込む)場合にのみ、使用されます。それ以外の場合には、無視されます。手動で生成された Shelf Life トークンを署名するには、新しい Shelf Life トークンを生成するために構成エディターを使用する際に、適切なフィールドを使用します。
-
-
PrivateKeyFilePassword:秘密キー ファイルを保護するパスワード。
-
既定の設定はパスワードなしです。
-
PrivateKeyFile を指定する場合にのみ使用されます。
-
-
ShelfLifeTokenSourceElement:外部に保管された Shelf Life トークンが格納されているコード要素の種類を指定します。このコード要素は、Shelf Life トークン ソースと呼ばれます。
-
既定値は None です。つまり、Dotfuscator はチェックを使って、ExpirationDate、WarningDate、PrivateKeyFile、および PrivateKeyFilePassword プロパティに基づいて、自動的に Shelf Life トークンを埋め込みます。
-
MethodArgument、Field、または Property が指定された場合、チェックは
string
型のメソッド引数、フィールド、またはプロパティで提供される Shelf Life トークンを使用します。 -
Method が指定された場合、チェックは
string()
署名付きのメソッドによって返される Shelf Life トークンを使用します。 -
DefaultAction はサポートされていません。
-
-
ShelfLifeTokenSourceName:Shelf Life トークン ソースの名前を指定します。
- ShelfLifeTokenSourceElement が None または DefaultAction でない限り、指定する必要があります。
-
ShelfLifeTokenSourceOwner:Shelf Life トークン ソースを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
RootCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてルート チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能: No
要件:
-
Dotfuscator がこの属性の使用を認識し、ルート チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
-
[チェックを無効にする]オプションが "いいえ" に設定されており、かつ、
-
この属性が含まれている入力アセンブリの入力オプションである[チェック属性の使用]が有効(既定の設定)である。
-
-
Dotfuscator が保護されているアセンブリからこの属性の使用を除去するようにするには、この属性が含まれている入力アセンブリの入力オプションである[チェック属性の除去]が有効(既定の設定)である必要があります。
プロパティ:
-
Action:チェックが、アプリケーションがルート化された Android デバイスで実行されていることを検出したときに実行するチェック操作です。
- 既定値は None です。
-
ActionProbability:ルートが検出されたときにチェック操作が行われる確率(
0.00
~1.00
)を指定します。- 既定値は
1.00
(ルートが検出された場合は、常にチェック操作が行われる)です。
- 既定値は
-
ApplicationNotificationSinkElement:チェックが結果をアプリケーションに通知するために使用するコード要素の種類を指定します。このコード要素は、アプリケーション通知シンクと呼ばれます。
-
既定値は None で、アプリケーションにチェックの結果は通知されません。
-
Method、MethodArgument、または Delegate が指定された場合、チェックは
void(bool)
署名付きのメソッド、デリゲート メソッド引数、またはデリゲート フィールドを呼び出します。 -
Field または Property が指定された場合、チェックは
bool
型のフィールドまたはプロパティを設定します。 -
DefaultAction はサポートされていません。この設定が使用されていると、Dotfuscator でエラーが発生します。
-
-
ApplicationNotificationSinkName:アプリケーション通知シンクの名前を指定します。
- ApplicationNotificationSinkElement が None または DefaultAction でない限り、指定する必要があります。
-
ApplicationNotificationSinkOwner:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。