Want to protect your .NET code from reverse engineering?
Obfuscation is better than nothing, but it doesn't go far enough.
Encryption? Well the encrypted MSIL has to be decrypted before the CLR can handle it, meaning there's an opportunity for a hacker to obtain the key.
Code splitting, where you deliver sensitive parts of your application on external hardware such as a smart card or a dongle offers a higher level of protection, but it has disadvantages (expense, inconvenience and not least pushing out updates or patches!).
Software Licensing and Protection Services can help you protect, package, license, sell and control your software.
To protect your IP you can select certain functionality for one-way transformation, and this transformed code runs within a secure virtual machine (SVM), with each vendor receiving a unique SVM as shown below:
In a nutshell, your transformed code remains permanently unreadable. Check out the below video for more details, plus an overview of the licensing and activation functionality which gives you feature-level control/activation. Nice!