[.NET compilation and its weakness]
.NET program are compiled into MSIL, a Microsoft intermediate programming language in which anyone can find MetaData about your code and project.
Numerous freely available decompilers are able to produce almost 1-to-1 output code using any .NET syntax. That means all your code, once compiled, can be decompiled and stolen.
[A solution : NETGuard.IO obfuscation]
NETGuard includes numerous advanced protection and obfuscation layers to prevent decompilers from recovering your original code.
NETGuard also includes watchdog system protection techniques to prevent your obfuscated files from being tampered. More Info »
NETGuard transform the MSIL code directly and produces a code that does the same thing but in a different way. Maths are a good metaphore to understand the logic behind obfuscation :
10 = 5 + 5
10 = 1 + 2 - (6 - 3) + 7 - 2 + 5
The two above math expression leads to the same result but one is more complexe than the other : this is obfuscation.