When you compile a program written for the Microsoft .NET framework, the program you provide to your users is not compiled into a native executable program, but instead is translated into something called the Common Intermediate Language instructions (CIL). CIL is half way between source code and native code, and is interpreted by the .NET framework when your program is run, rather than executed directly as machine code. Because of this, the source code of your application or library can be easily reproduced. Tools such as .NET Reflector (www.red-gate.com/products/reflector/) can reproduce source code from a compiled .NET assemblies in seconds, and in the .NET language of your choice! Clearly, commercial software distributed to end users without some form of protection is wide open to piracy and intellectual property theft.
The traditional solution to intellectual property protection in .NET is to use ‘obfuscation’, indeed Microsoft make an obfuscation utility available to Visual Studio users.
Its’ main features are :
Intellectual property protection
Native Code generation
Control Flow Obfuscation
Resource Encryption and Compression
Protects full applications and libraries (dlls)
Powerful licensing system
Create trial versions of your software
Set an expiration date
Limit use to a fixed number of days after installation
Limit by number of uses
Limit to use for no more than a set number of minutes each invocation
Limit trial version functionality
Easily turn your trial version into a fully licensed version
License your software
Permanently (non expiring license)
By time period (i.e rent your software)
By number of uses (i.e software as a service)
Software development kit
Integrate license checking into you assembly and extend licensing functionality
Extend licensing functions with bespoke extensions.