.NET applications are easy to disassemble if they haven't been obfuscated. SmartAssembly is an obfuscator that helps protect your application against reverse-engineering, cracking, and modification.
- Name mangling
Changes the names of methods and fields to make it hard to understand their purpose.
- Control flow obfuscation
Converts the code inside methods to 'spaghetti code' to make it difficult to see how the application works.
References dynamic proxy
Creates a proxy for calls to methods outside of your assembly to make it hard to find external calls.
Encodes the strings used in your software to hide such information as passwords and SQL queries.
Resources compression and encryption
Compresses and encrypts managed resources to make them hard to understand, and to reduce the size of the assembly.
Removes non-useful metadata to make the code harder to reverse-engineer, reduce the size of the assembly, and improve loading time.
Takes all the DLLs and merges dependencies into the main assembly, so you don't have to load lots of DLL files, and so that they can also be obfuscated.
Dependencies compression and embedding
Compresses and embeds your dependencies into your main assembly, simplifying the deployment of your software and reducing the size of your program.
Method parent obfuscation
Moves methods in your code by changing the class they are in, making it harder to understand how methods and classes relate to each other.
Strong name signing with tamper protection
Signs your assembly and helps to protect it against modification (the additional tamper protection is not available in the Standard edition).
Excludes a member from obfuscation using custom attributes directly in your code.