Debugging Check
A Debugging Check is a type of Check that detects if a debugger is attached to the application.
For example, if an attacker launches the application in a debugger in order to reverse engineer the application or extract or manipulate sensitive data, a Debugging Check can detect the debugger and react by notifying the application and hindering the attacker. In other words, a Debugging Check detects and reacts to unauthorized debugging of your application.
Configuring Debugging Checks
To have Dotfuscator inject Debugging Checks into your application, first enable Checks.
Then, configure the Checks in the Config Editor or by annotating your source code with DebuggingCheckAttribute
.
Both of these methods allow you to specify various properties that determine how the Check operates; for a full listing, see the DebuggingCheckAttribute
section of the Check Attributes page.
Unsupported Application Types
Dotfuscator can inject Debugging Checks into all .NET assemblies except for the following:
- .NET Core 3.0 and below assemblies
- Xamarin assemblies
- MAUI assemblies
Testing
To test how the Debugging Checks injected into your application react to a debugger's presence, run the protected application and attach to it with a debugger, such as Visual Studio, MDbg, or WinDbg. Exercise the locations of your Debugging Checks to observe how the application reacts to being run in a debugger.