Blog post provides a detailed analysis of the "Demo Mode" feature for software secured with remote protection. The core function of Demo Mode is to enable a trial or evaluation period for an end-user, delaying the requirement for a mandatory activation code. By default, applications with remote protection demand activation on their first run; enabling Demo Mode bypasses this, allowing access for a predefined period or number of uses.
Trial Period Functionality: Demo Mode allows users to evaluate an application before purchasing an activation code. Activation can be performed at any point, both during and after the trial period expires.
Persistent Evaluation: The system is designed to be tamper-resistant. A user cannot gain additional evaluation time by uninstalling and reinstalling the protected application. The software will either restore the correct remaining evaluation time or, if expired, refuse to run without activation.
Configurable User Interaction: The visibility of the activation dialog during the trial is configurable. It can be set to appear on every launch, not appear at all until the trial ends, or be invoked manually by the user via a special key combination.
Extendable Trials: The evaluation period can be extended by issuing a special activation code. This can either reset the original trial limitations (e.g., grant another 30 days) or apply new, custom limitations defined within an "extended activation code."
Security Consideration: The use of Demo Mode with remote protection is explicitly noted as being "less secure than using remote protection without demo limitations."
Core Functionality of Demo Mode
When an application is protected using the remote protection method, its default behavior is to request a valid activation code upon its initial launch. The integration of Demo Mode alters this flow by introducing an evaluation period. During this period, the end-user can access the application without activation. Once the evaluation period expires, the application will revert to requiring a valid activation code to function.
User Activation Flow and Interface
The user's interaction with the activation system during the demo period is determined by specific project settings.
Activation Dialog Display: An activation dialog box will appear on each launch of the application if any of the following options are enabled:
- Display execution limitation counter
- Display date limitation counter
- Always display activation dialog box From this dialog, the user has the choice to either enter a valid activation code or select the default "Enter application" radio button and click "Continue" to proceed in demo mode.- Automatic Start: If the aforementioned options are not enabled, the protected application will launch automatically without displaying the activation dialog during the evaluation period.
- User-Invoked Dialog: The "Special key pop-up enabled" option provides a mechanism for the end-user to manually trigger the activation dialog. This is accomplished by pressing a designated special key or keys before running the application.
- Post-Expiration Behavior: Regardless of the settings, once the evaluation period expires, the protected application will invariably display the activation dialog on startup and will not run until a valid activation code is provided.
Security and Evaluation Persistence
The system incorporates measures to prevent circumvention of the trial limitations. End-users cannot reset or extend the evaluation period by deleting, uninstalling, and then reinstalling the protected application. The system will maintain the state of the trial period:
- If the evaluation period has expired, the application will refuse to work.
- If the evaluation period is still valid, the system will restore the correct evaluation counters.
Demo Mode Extension Mechanism
The evaluation period is not fixed and can be extended for the user by issuing a specific type of activation code flagged for this purpose. This extension can be applied both during the active evaluation period or after it has expired.
Types of Extension
1. Default Demo Extension:
This is achieved by issuing an activation code with the "Extend evaluation period" special flag enabled.
By default, this action applies the original demo limitations again. For example, if the initial trial was set for 30 days and 100 runs, the extension will grant an additional 30 days and 100 runs.
This feature is only available if the demo mode is configured with date or execution limitations.
It cannot be used to extend a trial based on a "default fixed date limitation." An attempt to do so will result in the message: "Evaluation period for this program can't be extended!"
2. Custom Demo Extension:
It is possible to override the default trial limitations by using "extended activation codes" (also known as extend activation settings).
This method allows for the application of custom demo limitations for the extension, which are different from the default project limitations originally compiled into the protected application.
User Notification
Upon successful activation with a demo mode extension code, the protected application will display the following message, prompting user action: "Evaluation period successfully extended! Please restart the application."