PreEmptive Protection - Dotfuscator 4.31
User Guide

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 sending incident telemetry, 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 code injection. Then, configure the Checks via the user interface, 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.

Supported Application Types

Dotfuscator can inject Debugging Checks into all .NET assemblies except for the following:

  • Xamarin assemblies
  • Unity assemblies
  • When using the "Exit" Action, Silverlight assemblies that do not target Windows Phone 8 or 8.1


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.

Dotfuscator Version Copyright © 2017 PreEmptive Solutions, LLC