デバッグ チェックは、アプリケーションにデバッガーがアタッチされていないかどうかを検出するタイプのチェックです。
たとえば、攻撃者がアプリケーションをリバース エンジニアリングしたり機密データを抽出または操作したりするために、デバッガー環境でアプリケーションを起動した場合には、デバッグ チェックはデバッガーを検出し、アプリケーションに通知したり、攻撃者を妨害したりして対応することができます。 つまり、デバッグ チェックはアプリケーションに対する不正なデバッグを検出して対応します。
デバッグ チェックの構成
Dotfuscator でアプリケーションにデバッグ チェックを差し込むには、次のようにします。
- チェックを有効にします。
- チェックのユーザー インターフェイスを使用するか、
DebuggingCheckAttributeのアノテーションをソース コードに付けることにより、チェックを構成します。
これらのどちらの方法でも、チェックの動作を決めるさまざまなプロパティを指定できます。
詳細については、[チェック]属性ページの DebuggingCheckAttribute セクションを参照してください。
サポートされないアプリケーションの種類
Dotfuscator は、以下に挙げる .NET アセンブリ以外のすべての .NET アセンブリにデバッグ チェックを差し込むことができます。
- Xamarin アセンブリ
- .NET Core アセンブリ
- .NET 5+ アセンブリ
テスト
アプリケーションに差し込まれたデバッグ チェックがデバッガーの存在に対応する動作をテストするために、保護されているアプリケーションを実行し、それに Visual Studiom、MDbg、WinDbg などのデバッガーをアタッチします。 デバッグ チェックを入れた場所を実行して、アプリケーションが、デバッガーを起動した状態で実行されるとどのように対応するかを観察します。