General information

This article describes the sequence of actions in the graphic version of the Guardant Protection Studio utility for native and .NET applications protection.

Terms and definitions

Freeze all threads – instant suspension of the protected program when the Guardant key is removed from the PC.

Feature is a functional part of the program that needs to be licensed. Features can be executable files, modules, fragments of program code, individual functions, or the entire program.

Access code is a unique identifier and a set of passwords for embedding into the protected program, owned by the developer using Guardant technologies.

Obfuscation of public interfaces  symbol obfuscation of public methods and properties.

Code flow obfuscation  obfuscation level of the protected program code execution sequence, in which the code is divided into several blocks, fake blocks are added to it, and their execution sequence is hidden from analysis.

Symbol obfuscation  replacement of type names, events, properties and methods with a random set of characters.

Strings encryption encryption of string constants in the protected program.

Native application protection algorithm

  1. Create a Protection project.
  2. Add a program or its part that needs to be protected and associated with a license.
  3. Specify the directory in which the protected program will be saved.

    To protect the CI/CD software, it is important that all files and folders involved in the project are stored on one disk.

  4. Bind the program to the corresponding feature in the Guardant Station system.
  5. Specify whether a license must be checked on a protected program launch.

    For plugin libraries and services, check on startup should be disabled.

  6. Select program sections for encryption.
  7. Select program functions for protection (upload .map file if available)

    For protection, it is necessary to select functions that are important from the program's operating point of view and that are regularly used. However, selecting a very large number of functions or too "heavy" ones can lead to a significant speed decrease in the protected program's operating.

    Protected functions cannot be used without a Guardant key with the required license, since they will not be decrypted. This mechanism is a guarantee of license checking presence during the operation of the protected program.

  8. Bind the program to the corresponding product in the Guardant Station system.
  9. Set the feature search mode to which the program is linked and determine the key type for its search.
  10. Install the splash file (if necessary).
  11. Change the text of standard messages that the protected program will display when license-related events occur (if necessary).
  12. Specify the output directory for dynamic libraries required for the protected program to operate (hereinafter referred to as dynamic libraries).
  13. Specify whether the protected program should display messages about license-related events to the user.
  14. Specify whether to track the extraction of the key from the user's computer on which the protected program is running.
  15. Specify access codes.
  16. Specify the common name of dynamic libraries.
  17. Specify whether to suspend threads.
  18. Save the Protection project.
  19. When using the graphic interface, click the Protect button; when using the console mode, enter the corresponding command with the required options in the command line (terminal).

.NET application protection algorithm

To protect a .NET application in Guardant Protection Studio x86, you must install .NET Core 3.1 runtime x86; to protect it in Guardant Protection Studio x64, you must install .NET Core 3.1 runtime x64.

To run a protected .NET program, you must install .NET 6 runtime x64.

  1. Create a Protection project.
  2. Add a program or its part that needs to be protected and associated with a license.
  3. Specify the directory in which the protected program will be saved.
  4. To protect the CI/CD software, it is important that all files and folders involved in the project are stored on one disk.

  5. Bind the program to the corresponding feature in the Guardant Station system.
  6. Specify whether a license must be checked on a protected program launch.

    For plugin libraries and services, check on startup should be disabled.

  7. Specify the need to forward exceptions.
  8. Specify the program functions that need to be protected.
  9. Bind the program to the corresponding product in the Guardant Station system.
  10. Set the feature search mode to which the program is linked and determine the key type for its search.
  11. Change the text of standard messages that the protected program will display when license-related events occur (if necessary).
  12. Specify the output directory for dynamic libraries.
  13. Specify whether the protected program should display messages about license-related events to the user.
  14. Specify whether to track the extraction of the key from the user's computer on which the protected program is running.
  15. Specify access codes.
  16. Specify the common name of dynamic libraries.
  17. Specify the need for symbol obfuscation.
  18. Specify the need for obfuscation of public interfaces
  19. Obfuscation of public interfaces is used only in conjunction with symbol obfuscation.

  20. Specify the need for code flow obfuscation.
  21. Specify the need for string encryption.
  22. Save the Protection project.
  23. When using the graphic interface, click the Protect button; when using the console mode, enter the corresponding command with the required options in the command line (terminal).


  • No labels