Monday, October 13, 2025 - 10:46

 

This article synthesizes the best practices for implementing software protection with PC Guard. The central recommendations focus on robust project configuration, enhanced security measures, and a seamless end-user experience. 

The most critical element is the Application Signature, which uniquely identifies project files, enables seamless updates, and allows for shared licensing across multiple applications. 

To prevent common runtime issues, applications must be configured to support restricted user accounts, though initial activation should be performed with administrator rights. 

Security can be significantly improved by integrating the Protection Interface for advanced license management and using Run-Time Encryption (RTE) to keep code encrypted in memory. Finally, automating the protection process via command line and the activation process using the Activation Center (ACEN) is recommended for efficiency. 

For user trust and system compatibility, it is highly advised to digitally sign all protected applications after the protection process is complete.

1. Core Project Configuration and Management

Proper initial setup and ongoing management of protection project files are foundational to successful implementation.

1.1. Choosing the Protection Method

Four primary protection methods are available, which can be combined with various features to suit specific scenarios:

  • PLAIN
  • REMOTE
  • NETWORK
  • USB

1.2. The Critical Role of the Application Signature

The Application Signature is described as "probably the most important option in project settings." Its correct implementation is crucial for several key functions:

  • Unique Identification: It uniquely identifies all project files.
  • Shared Licensing: Applications sharing the same signature also share the same license information on remote computers. This allows a group of applications to be activated with a single activation code.
  • Seamless Updates: It enables the installation of application updates without requiring users to re-enter an activation code, provided the original application and the update share the same signature.

1.3. Project File and Report Management

It is imperative to always save project files and protection reports. These files are essential for generating future activation codes and for protecting subsequent program updates. Regular backups of these files are strongly recommended.

2. Security Enhancement and Integration

Several practices are outlined to improve the general security of a protected application beyond the default settings.

2.1. Utilizing the Protection Interface

The Protection Interface serves as the bridge between the application's code and the embedded protection code. Its use offers significant advantages:

  • License Status Awareness: The application can query the protection code to obtain the current license status and other valuable information.
  • Advanced Interaction: The application can call advanced functions to interact directly with the protection code.
  • Enhanced Security: It allows for additional license management tasks and the implementation of custom activation dialogs, which improves the overall security posture.

The protection code itself gains control on startup to perform checks on license status, demo limitations, and application integrity before decrypting the application and passing control to it.

2.2. Implementing Run-Time Encryption (RTE)

For improved security, the use of RTE blocks within the application's code is recommended.

  • Persistent Encryption: "RTE encrypted code always stays encrypted in memory."
  • Dynamic Management: The protection code manages these blocks by decrypting them only when required for execution and immediately re-encrypting them afterward.

2.3. Customizing the Interface DLL

The default name of the interface .dll file can and should be changed in the Customization settings. After renaming, this customized DLL must be distributed with the protected application. The "Auto copy required modules" option in system settings can automate the process of copying the renamed DLL after protection.

3. End-User Environment and Experience

Considerations for the end-user's operating environment are crucial for avoiding common errors and ensuring a smooth experience.

3.1. Supporting Restricted User Accounts

Administrator access is not always available to end users, making it vital to configure the application for restricted user accounts.

  • Default Setting: By default, restricted users are permitted to access the application, as the "Windows users access control" option is set to "All users."
  • Preventing Errors: Failure to properly support restricted accounts can lead to error messages such as 00000005 or 00000000.
  • Activation Requirement: The first-time activation of the software should be performed by a user with administrator rights to prevent issues when multiple restricted users access the application on the same machine.

3.2. Customizing User Interface

To move away from the default user interface, developers should use custom dialogs. This allows the protection-related interactions to align with the application's branding and user experience.

3.3. Digital Signing for Trust and Compatibility

It is "highly recommended to digitally sign protected application with your valid code signing certificate."

  • Timing: The digital signature must be applied after the application has been protected.
  • Configuration: The "Prevent file modifications" option in security settings must be disabled before signing.

4. Automation, Testing, and Support

Automating processes and conducting thorough testing are key to efficient deployment and maintenance.

4.1. Automating the Protection and Activation Processes

  • Protection Automation: The command line interface can be used to automate the protection process for applications.
  • Activation Automation: For developers planning to automate the activation process for clients, the Activation Center (ACEN) is the recommended solution. PC Guard versions 06.00.0300 and later include support for this web licensing model.

4.2. Best Practices for Testing

Before any distribution to end users, the protected application must be tested thoroughly.

  • Avoiding Conflicts: When testing different protection strategies or project settings, a different Application Signature should be used for each strategy to avoid conflicts.
  • Test-Specific Signatures: The source suggests using a clear naming convention for test builds, such as TEST0001, TEST0002, TEST0003, and so on.

4.3. Accessing Support

If issues arise, developers are encouraged to first consult the knowledge base for solutions to common problems. If a solution cannot be found, the support department can be contacted directly.