チェック属性リファレンス
チェック属性に関する完全なガイドについては、属性のページを参照してください。 チェックの詳細については、チェックの理解のページを参照してください。 ソース コードから独立してチェックを構成するために、構成エディターで[チェック]タブを使用するという方法もあります。
重要: 全般の差し込みは、[差し込みを有効にする]オプションによって制御されます。 このオプションを無効にした場合、どんな属性を指定しても、コードは差し込まれなくなります。
属性の参照
Dotfuscator には、チェック属性が定義されている参照アセンブリが付属しています。
このアセンブリは PreEmptive.Attributes.dll
という名前であり、Dotfuscator がインストールされているのと同じディレクトリに格納されています。
このアセンブリのパスを見つける最も簡単な方法は、次のとおりです。
1: コマンド プロンプトを開きます。
where PreEmptive.Attributes.dll
コマンドを実行し、その結果をコピーします。
メモ: Dotfuscator のインストーラーは、自動的に Dotfuscator を PATH へ追加します。
次に、このアセンブリへの参照をプロジェクトに追加します。 アセンブリはフレームワーク自体以外には依存関係を持たないため、必要であれば別の場所にコピーすることもできます。
属性の一覧
このセクションでは、Dotfuscator がチェックの差し込みを構成するために認識する属性を列挙します。
TamperCheckAttribute
この属性でアノテーションの付けられたメソッドを、チェックを単独で行う場所として改ざんチェックを差し込むよう、Dotfuscator に指示します。
旧バージョンの Dotfuscator では、この属性は InsertTamperCheckAttribute
という名前でした。
その属性の使用は現在推奨されていないため、TamperCheckAttribute
を使用することをお勧めします。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能:いいえ
要件:
Dotfuscator がこの属性の使用を認識し、改ざんチェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
[差し込みを有効にする]オプションが有効である。
この属性が含まれている入力アセンブリの入力オプション、差し込み属性の使用が有効(既定の設定)である。
差し込まれた改ざんチェックが遠隔測定を送信するようにするには、次の条件のすべてを満たしている必要があります。
Dotfuscator で構成をビルドする際に、[改ざんメッセージの送信]オプションが有効である。
実行時、チェックが実行されるときに、インストルメンテーションがあらかじめ設定されている(
SetupAttribute
でアノテーションが付けられた他のメソッドを呼び出すことにより設定されます)。
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:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
ExtendedKeyMethodArguments:アノテーションが付けられたメソッドのどの引数(ある場合)をユーザー定義データとして、改ざんチェックの遠隔測定と一緒に送信するかを指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定の設定では、どの引数も送信されません。
このプロパティの構成方法の詳細については、メソッド パラメーターを拡張キーとして自動的に送信するを参照してください。
ExtendedKeySourceElement:改ざんチェックの遠隔測定と一緒に送信するユーザー定義データが格納されている、コード要素の種類を指定します。このコード要素は、拡張キー ソースと呼ばれます。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定値は None で、チェックの遠隔測定は ExtendedKeyMethodArguments で指定されたユーザー定義データのみを送信します。
MethodArgument、Field、または Property が指定された場合、チェックは
IDictionary<string, string>
型のメソッド引数、フィールド、またはプロパティに格納されているデータを使用します(非ジェネリックのIDictionary
型の使用も許可されています)。Method が指定された場合、チェックは
IDictionary<string, string>()
署名付きメソッドを呼び出し、その戻り値を使用します(非ジェネリックのIDictionary()
署名付きメソッドの使用も許可されています)。DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、None を使用してください。
ExtendedKeySourceName:拡張キー ソースの名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- ExtendedKeySourceElement が None または DefaultAction でない限り、指定する必要があります。
ExtendedKeySourceOwner:拡張キー ソースを宣言する型の名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- 既定値は、アノテーションが付けられたメソッドを定義している型です。
DebuggingCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてデバッグ チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能:いいえ
要件:
Dotfuscator がこの属性の使用を認識し、デバッグ チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
[差し込みを有効にする]オプションが有効である。
この属性が含まれている入力アセンブリの入力オプション、差し込み属性の使用が有効(既定の設定)である。
差し込まれたデバッグ チェックが遠隔測定を送信するようにするには、次の条件のすべてを満たしている必要があります。
Dotfuscator で構成をビルドする際に、[デバッグ チェック メッセージの送信]オプションが有効である。
実行時、チェックが実行されるときに、インストルメンテーションがあらかじめ設定されている(
SetupAttribute
でアノテーションが付けられた他のメソッドを呼び出すことにより設定されます)。
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:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
ExtendedKeyMethodArguments:アノテーションが付けられたメソッドのどの引数(ある場合)をユーザー定義データとして、デバッグ チェックの遠隔測定と一緒に送信するかを指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定の設定では、どの引数も送信されません。
このプロパティの構成方法の詳細については、メソッド パラメーターを拡張キーとして自動的に送信するを参照してください。
ExtendedKeySourceElement:デバッグ チェックの遠隔測定と一緒に送信するユーザー定義データが格納されている、コード要素の種類を指定します。このコード要素は、拡張キー ソースと呼ばれます。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定値は None で、チェックの遠隔測定は ExtendedKeyMethodArguments で指定されたユーザー定義データのみを送信します。
MethodArgument、Field、または Property が指定された場合、チェックは
IDictionary<string, string>
型のメソッド引数、フィールド、またはプロパティに格納されているデータを使用します(非ジェネリックのIDictionary
型の使用も許可されています)。Method が指定された場合、チェックは
IDictionary<string, string>()
署名付きメソッドを呼び出し、その戻り値を使用します(非ジェネリックのIDictionary()
署名付きメソッドの使用も許可されています)。DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、None を使用してください。
ExtendedKeySourceName:拡張キー ソースの名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- ExtendedKeySourceElement が None または DefaultAction でない限り、指定する必要があります。
ExtendedKeySourceOwner:拡張キー ソースを宣言する型の名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- 既定値は、アノテーションが付けられたメソッドを定義している型です。
ShelfLifeCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所として Shelf Life チェックを差し込むよう、Dotfuscator に指示します。
この属性を使用するには、Shelf Life Activation Key が必要です。
旧バージョンの Dotfuscator では、この属性は InsertShelfLifeAttribute
という名前でした。
その属性の使用は現在推奨されていないため、ShelfLifeCheckAttribute
を使用することをお勧めします。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能:いいえ
要件:
Dotfuscator がこの属性の使用を認識し、Shelf Life チェックを差し込むようにするには、次の条件のすべてを満たしている必要があります。
[差し込みを有効にする]オプションが有効である。
この属性が含まれている入力アセンブリの入力オプション、差し込み属性の使用が有効(既定の設定)である。
この属性の ActivationKeyFile プロパティが有効な Shelf Life Activation Key を参照している。
次の条件のいずれかを満たしている。
属性の ExpirationDate プロパティが設定されている(チェックにより Shelf Life トークンが埋め込まれる場合)
属性の ShelfLifeTokenSource プロパティが設定されている(実行時に、チェックに Shelf Life トークンを取得させる 場合)
差し込まれた Shelf Life チェックが遠隔測定を送信するようにするには、次の条件のすべてを満たしている必要があります。
Dotfuscator で構成をビルドする際に、[Shelf Life メッセージの送信]オプションが有効である。
実行時、チェックが実行されるときに、インストルメンテーションがあらかじめ設定されている(
SetupAttribute
でアノテーションが付けられた他のメソッドを呼び出すことにより設定されます)。
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 トークン ソースを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。
ExtendedKeyMethodArguments:アノテーションが付けられたメソッドのどの引数(ある場合)をユーザー定義データとして、Shelf Life チェックの遠隔測定と一緒に送信するかを指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定の設定では、どの引数も送信されません。
このプロパティの構成方法の詳細については、メソッド パラメーターを拡張キーとして自動的に送信するを参照してください。
ExtendedKeySourceElement:Shelf Life チェックの遠隔測定と一緒に送信するユーザー定義データが格納されている、コード要素の種類を指定します。このコード要素は、拡張キー ソースと呼ばれます。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。既定値は None で、チェックの遠隔測定は ExtendedKeyMethodArguments で指定されたユーザー定義データのみを送信します。
MethodArgument、Field、または Property が指定された場合、チェックは
IDictionary<string, string>
型のメソッド引数、フィールド、またはプロパティに格納されているデータを使用します(非ジェネリックのIDictionary
型の使用も許可されています)。Method が指定された場合、チェックは
IDictionary<string, string>()
署名付きメソッドを呼び出し、その戻り値を使用します(非ジェネリックのIDictionary()
署名付きメソッドの使用も許可されています)。DefaultAction は現在推奨されていません。これと同じ動作を行わせるには、None を使用してください。
ExtendedKeySourceName:拡張キー ソースの名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- ExtendedKeySourceElement が None または DefaultAction でない限り、指定する必要があります。
ExtendedKeySourceOwner:拡張キー ソースを宣言する型の名前を指定します。
警告: このプロパティの使用は現在推奨されておらず、今後の Dotfuscator のバージョンからは削除されます。- 既定値は、アノテーションが付けられたメソッドを定義している型です。
RootCheckAttribute
この属性でアノテーションが付けられたメソッドを、チェックを単独で行う場所としてルート チェックを差し込むよう、Dotfuscator に指示します。
名前空間:PreEmptive.Attributes
適用対象:メソッド
1 つのコード要素で複数個使用可能:いいえ
要件:
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:アプリケーション通知シンクを宣言する型の名前を指定します。
- 既定値は、アノテーションが付けられたメソッドを定義している型です。