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