Understanding Protection with Dotfuscator
Dotfuscator provides a multi-layer approach to application protection. Each of those layers provides an important piece of an overall protection strategy - if one layer is compromised, the other layers continue to provide effective protection, making it harder and harder for an attacker to accomplish their goal. And not only are there multiple layers, but each layer has advanced features that are more robust than the simple techniques used by other obfuscation products.
The first layers of protection are the Obfuscation transforms, which operate on compiled code to make reverse-engineering difficult or impossible:
The next layers of protection are the Checks that occur while the protected program runs. When the program detects an attacker is attempting to tamper or reverse-engineer it, it can defend itself with custom logic. Checks include:
The remaining layers strengthen overall application protection:
Dotfuscator also provides features that help you build, deploy, and debug obfuscated assemblies. These include:
Finally, there are a number of additional concepts that apply to projects that use individual language features or target specific assemblies. You can read more about these under Advanced Obfuscation Topics.