Tuesday, June 16, 2026 - 10:10

 

The PC Guard Software Copy Protection System "Updates Policy" provides software developers with granular control over the distribution and activation of software updates for remote applications. 

The system distinguishes between free, paid, and limited updates primarily through the use of Update IDs, Application Signatures, and Program IDs.

Key takeaways include:

  • Update Identification: Updates are tracked using a numeric Update ID, where a higher value signifies a newer version.
  • Monetization Strategies: Developers can offer "Free Updates" (sharing the same project settings) or "Paid Updates" (requiring a new activation code by changing application signatures).
  • Temporal and Version Constraints: Limited update policies allow developers to restrict free updates based on a specific number of days post-activation, fixed date ranges, or specific ranges of Update IDs.
  • Validation Mechanism: The protection code automatically validates if a new update is permitted based on stored license data and the current policy, updating the license to the highest allowed Update ID upon success.

Update Categorization

The policy defines three primary categories for application updates, determining whether an end-user must acquire a new activation code.

1. Free Updates

Free updates utilize the same Application Signature and Program ID as the previous version. They are identified by an increased Update ID.

  • Behavior: These updates are automatically activated if a valid license exists on the remote computer.

2. Paid Updates

To categorize an update as paid, the developer changes the Application Signature and Program ID.

  • Behavior: The application ignores existing licenses, generates a new Site/MID code pair, and requires a unique activation code.
  • Impact: The existing license for the previous version remains unaffected and functional. The Update ID is typically reset to zero.

3. Limited (Free) Updates

These updates are governed by specific "Updates Policy" settings. They permit free updates only if the update meets predefined temporal or version-based criteria.

Configurable Policy Options

The Updates Policy is disabled by default. When enabled, it is governed by one mandatory setting and several optional constraints.

OptionRequirementDescription
Allow updates for xxxx daysMandatorySpecifies the number of days (1-9999) after activation that updates can be installed.
Allow upgrade for a fixed periodOptionalSets a specific "start date - end date" window during which updates can be installed.
Allow only a limited range of updatesOptionalRestricts the remote computer to running only Update IDs within a specified start/end range.
Allow upgrade to this version from a rangeOptionalRestricts the current version so it only upgrades from a specific range of previous Update IDs.

 

Implementation and Deployment

The Updates Policy is embedded within the protected application during the protection process.

Modifying Policies on Remote Computers

There are two primary methods for updating an existing policy on a remote computer:

  1. Via New Update: The developer increases the Update ID and enables the "Change active updates policy on remote computers" option. When the user runs the new update, the policy is refreshed.
  2. Via License Extension: If the "license extension" and "activation file" features are enabled, a developer can embed a new policy in an activation file. This requires setting a "license extension special flag" when generating the file, allowing the policy to change without a full software update.

Validation Logic and Data Management

The protection code performs a specific sequence of checks whenever an update (an application with a higher Update ID) is executed on a remote machine.

License Data Storage

  • Highest ID Only: License data on the remote computer stores only the highest allowed Update ID previously detected.
  • Shared Data: License data is shared across all applications using the same Application Signature and Program ID.

Validation Workflow

When a new update is run, the system compares the new Update ID against the stored ID:

  1. If New ID ≤ Existing ID: The update is allowed to run, provided it does not violate the "limited range of updates" policy.
  2. If New ID > Existing ID:
    • The system checks if the validity period (days after activation) has expired. If expired, it triggers an UpdatesPolicy_Error.
    • If a fixed period is defined, the system verifies the current date is within that range.
    • If all checks pass, the protection code updates the license data with the new, higher Update ID and permits the application to run.