.NET Reactor
User guide


In addition to source protection, .NET Reactor provides thorough class and member obfuscation complemented by different exclusion schemes, use of non-printable characters in obfuscated names, and even incremental obfuscation, which always generates the same obfuscation strings for type and member names.
Obfuscation mangles type and member names. The obfuscation process converts a program into an equivalent one that is much more difficult to reverse engineer. The advantage of this method is that it runs on standard hardware and without any changes to virtual machines or available interpreters.
.NET Reactor fully supports declarative obfuscation. Declarative obfuscation allows you to directly define which types and members should be excluded from obfuscation. This can be done by using the custom attribute System.Reflection.ObfuscationAttribute in your source code. .NET Reactor automatically detects the attribute and excludes the corresponding types and members from obfuscation.
The Obfuscation node: