Code Protection and Obfuscator For .Net, Licensing And Copy Protection for .Net, ActiveX and MFC

Creating Secure, Effective And Hassle-Free Trial License Strategies For Your Software

Today, customers expect to be able to try out your app before they can make the decision to purchase. As a software developer, you cannot afford not to make a trial version of your software available for potential customers to download and try at their own convenience. However, it is equally important that you make the trial version of the app secure enough so that it is limited in some way in terms of time or functionality, yet provide a way for customers to evaluate it in a simple and hassle-free way. This article discusses various effective ways to achieve this goal using the trial or evaluation license functionality of CryptoLicensing, our licensing, copy-protection and hardware-locking solution for software licensing.


Trial License Limits


Time Based Limits

CryptoLicensing supports creating trial licenses with various time based limits. They are as follows:

Limit Usage Days

This is the most common way to implement trial periods for software. This type of trial license allows you to specify the the maximum number of days that your software can be used.

Limit Unique Usage Days

Another way to limit trial periods is to allow a maximum number of different unique days that your software can be used for. This setting is different from the 'Usage Days' setting in that, it allows the user to use your software at his/her own convenience. For example, the user may use it for the second time 5 days after the first time, and the third time, 10 days after the second time. This usage is counted as 3 unique days instead of 15 days (number of days since first use). Depending on the way your software is typically used by evaluation users, you may want to use such a type of trial license.

Limit Executions

This type of evaluation license allows you to specify the maximum number of times that your software can be used or executed.

Limit Run-Time

This CryptoLicensing trial license type allows you to specify the maximum run-time (in minutes) that your software can be used for during any single execution of your app.

Limit Cumulative Run-Time

This trial license type allows you to specify maximum cumulative (over many runs) run-time (in minutes) that your software can be used for. Note that this setting is different from the 'Limit Run-Time' license type, in that the run-time of each execution is added (hence cumulative) when determining if the run-time has been exceeded.


Functionality Based Limits

In additional to using a time based limits for evaluation or trial licenses, often it is advisable to limit the functionality of your software in trial mode. For example, you may disable specific modules or specific features like printing, import, export, reporting, etc.

CryptoLicensing makes it very easy to do this by enabling you to query whether the license is an evaluation license via a single API method call (CryptoLicense.IsEvaluationLicense). If this method returns true, you know that the license has one or more time-based trial limits discussed above, and you can then decide how to limit the functionality of your software.


Deploying Trial Licenses

The most common and preferred way to deploy trial licenses with your software is by hard-coding a trial license code in the source code of your software. If a full license cannot be found and loaded, the hard-coded trial license is used and validated instead and used to control the execution of your software. This means that the default operating mode of your software is the trial/evaluation mode.


Protections Against Common Trial-Bypass Strategies


Multiple Installs

The trial licensing scheme in CryptoLicensing is implemented in such a way that even if the user uninstalls your software and re-installs it, the trial period is not reset. The trial data is stored in an obscure registry location (this behavior can be overridden to store to a different/additional location) and the date persists even if your software is uninstalled and reinstalled. Therefore, the trial periods resumes from where it left off the last time your software was run.


Date Tampering

Another common way to bypass the trial checks is by rolling back the system date. CryptoLicensing has a special setting called Enable Tamper Checking which can be used in conjunction with the other trial settings like Max Usage Days, etc. When this setting is used, CryptoLicensing tracks the date and time when your software was last used. The next time your software runs, CryptoLicensing checks this with the current system datetime and if a date rollback is detected, license validation fails.


Verifying System Time Remotely

CryptoLicensing can also verify the current system datetime with a remote server to ensure that the datetime is not rolled back or otherwise tampered with.


Other Considerations When Using Trial Licenses


Extending The Trial Period

To extend the trial period for potential customers, you can simply generate a new trial license code using CryptoLicensing and send it to them. Each license code generated by CryptoLicensing is unique and each license code stores its evaluation data separately, so sending a new trial license code will give potential customers a new evaluation period. Further, if you wish, the new license code can have different limits (for example, fewer 'Max Usage Days').


Easy Switching Between Trial And Full Version

After customers purchase your software, you should enable them to easily switch to the full version of the software. This is vastly desirable than requiring them to uninstall the trial version and install the full version as it reduces the hassle for customers and enhances their user-experience. CryptoLicensing facilitates this easily because all its license codes, whether trial or full, are unique and self-contained in terms of the settings and limits they encode.



More Information About CryptoLicensing - .Net Edition | MFC Edition| ActiveX Edition
          Download CryptoLicensing - .Net Edition| MFC Edition| ActiveX Edition
Have a question? Email us.