DeployLX Licensing is the most advanced copy protection system you can use for your .NET projects. This topic discusses the techniques used by DeployLX to protect your software.
When a license is requested at runtime DeployLX searches the user's system for a license. A valid license has a valid signature and all the runtime restrictions defined by the included limits are met.
To add protection to your software run the Project Wizard from the DeployLX Manager. The keys created are used to ensure that the licenses you create cannot be modified by the end user.
DeployLX adds a default license and license helper class to perform validation. Add a call to the LicenseHelper.Require method to check for a valid license in your application.
License files are used to grant use of the protected software to authorized users. Each license file contains a collection of licenses. A license defines usage rights for a specific edition of the product.
When you create a license file and save it DeployLX signs the license with the license signing keys created by the Project Wizard. During the signing process the licenses are encrypted using the same keys to prevent unauthorized users from tampering with the license.
DeployLX includes 35 built-in limits that control how and when the protected software can be used. When a license is validated each limit is compared against the current runtime environment to determine if execution should proceed.
A license may contain any number of limits to support very complex license rules to meet your specific license requirements.
See the Using Limits to Control the Use of Your Software topic for more details.
DeployLX Licensing provides the best copy protection you can get for your .NET projects. However the best protection is still only as strong as it's weakest link. In .NET that is the MSIL code stored in your assembly which can be easily read and modified. Use some sort of tool to protect the MSIL code.
We recommend that you use CodeVeil, the only tool that actually encrypts your MSIL code, but at least some obfuscator should be used.