You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Общая информация

В данной статье описана последовательность действий в графической версии утилиты Guardant Protection Studio для защиты нативных и .NET программ.

Термины и определения


Заморозка потока
– мгновенная приостановка работы защищенной программы при извлечении ключа Guardant.

Компонент – функциональная часть программы, которую необходимо лицензировать. Компонентами могут быть исполняемые файлы, модули, фрагменты программного кода, отдельно взятые функции или вся программа целиком.

Код доступа – уникальный идентификатор и набор паролей для встраивания в защищаемую программу, принадлежащий разработчику, использующему технологии Guardant.

Обфускация внешних интерфейсов – обфускация символов для публичных методов и свойств.

Обфускация потока выполнения – степень запутывания последовательности выполнения кода защищаемой программы, при которой код разбивается на несколько блоков, в него добавляются фальшивые блоки, и последовательность их выполнения скрывается от анализа.

Обфускация символов – замена имен типов, событий, свойств и методов случайным набором символов.

Шифрование строк – шифрование строковых констант в защищаемой программе.

Алгоритм защиты нативных программ

  1. Создать Проект защиты.
  2. Добавить программу или ее часть, которую необходимо защитить и привязать к лицензии.
  3. Указать директорию, в которой будет сохранена защищенная программа.
    Для защиты программы для CI/CD необходимо, чтобы все файлы и папки были сохранены на одном диске.
  4. Привязать программу к соответствующему компоненту в системе Guardant Station.
  5. Указать необходимость проверки лицензии при запуске защищенной программы.

    Для библиотек-плагинов и сервисов необходимо отключить проверку лицензии при запуске.

  6. Выбрать секции программы для шифрования.
  7. Выбрать функции программы для защиты (при наличии загрузить .map файл).

    Для защиты необходимо выбирать важные с точки зрения работы программы функции, которые регулярно используются. При этом выбор очень большого количества функций или слишком «тяжеловесных» может привести к серьезному уменьшению скорости работы защищенной программы.

    Защищенные функции невозможно использовать без наличия ключа с нужной лицензией, т. к. они не будут расшифрованы. Этот механизм является гарантией проверки наличия лицензии во время работы защищенной программы.

  8. Привязать программу к соответствующему продукту в системе Guardant Station.
  9. Задать режим поиска компонента, к которому привязана программа, и определить тип ключа для его поиска.
  10. Установить файл заставки (при необходимости).
  11. Изменить текст стандартных сообщений, которые будет выводить защищенная программа при наступлении событий, связанных с лицензией (при необходимости).
  12. Задать выходную директорию для динамических библиотек, необходимых для работы защищенной программы (далее – динамические библиотеки).
  13. Указать необходимость вывода пользователю защищенной программы сообщений о событиях, связанных с лицензией.
  14. Указать необходимость отслеживания извлечения ключа из компьютера пользователя, на котором запущена защищенная программа.
  15. Указать коды доступа.
  16. Задать общее имя динамических библиотек.
  17. Указать необходимость приостановки потоков.
  18. Сохранить Проект защиты.
  19. При использовании графического интерфейса – нажать кнопку Защитить (Protect), при использовании консольного – ввести в командную строку (терминал) соответствующую команду с необходимыми опциями.

Алгоритм защиты .NET программ

Для защиты .NET программы в Guardant Protection Studio x86 необходимо установить .NET Core 3.1 runtime x86, для защиты в Guardant Protection Studio x64 – .NET Core 3.1 runtime x64.

Для запуска защищенной .NET программы необходимо установить .NET 6 runtime x64.

  1. Создать Проект защиты.
  2. Добавить программу или ее функциональную часть, которую необходимо защитить и привязать к лицензии.
  3. Указать директорию, в которой будет сохранена защищенная программа.

    Для защиты программы для CI/CD необходимо, чтобы все файлы и папки были сохранены на одном диске.

  4. Привязать программу к соответствующему компоненту в системе Guardant Station.
  5. Указать необходимость проверки лицензии при запуске защищенной программы.

    Для библиотек-плагинов и сервисов необходимо отключить проверку лицензии при запуске.

  6. Указать необходимость проброса исключений.
  7. Указать функции программы, которые необходимо защитить.
  8. Привязать программу к соответствующему продукту в системе Guardant Station.
  9. Задать режим поиска компонента, к которому привязана программа, и определить тип ключа для его поиска.
  10. Изменить текст стандартных сообщений, которые будет выводить защищенная программа при наступлении событий, связанных с лицензией (при необходимости).
  11. Задать выходную директорию для динамических библиотек.
  12. Указать необходимость вывода пользователю защищенной программы сообщений о событиях, связанных с лицензией.
  13. Указать необходимость отслеживания извлечения ключа из компьютера пользователя, на котором запущена защищенная программа.
  14. Указать коды доступа.
  15. Задать общее имя динамических библиотек.
  16. Указать необходимость обфускации символов.
  17. Указать необходимость обфускации внешних интерфейсов.

    Обфускация внешних интерфейсов применяется  только совместно с обфускацией символов.

  18. Указать необходимость обфускации потока выполнения.
  19. Указать необходимость шифрования строк.
  20. Сохранить Проект защиты.
  21. При использовании графического интерфейса – нажать кнопку Защитить (Protect), при использовании консольного – ввести в командную строку (терминал) соответствующую команду с необходимыми опциями.



  • No labels