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:
- Configure the Checks on the configuration file 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 more information, 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:
- Xamarin assemblies
- .NET Core assemblies
- .NET 5+ assemblies
Testing
To test how the Debugging Checks injected into your application react to a debugger's presence, do the following: