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

Protection Studio  инструмент для лицензирования и защиты файлов программ. Защищенные файлы программ привязываются к компоненту (к конкретной лицензии или к ограниченному набору подходящих лицензий), код и данные для их запуска подвергаются такому преобразованию, которое сохраняет их работоспособность, но при этом защищает код и связанные с ним данные от анализа и модификации.

Для преобразования файлов программ используется проект защиты. Файлы программ, добавленные в проект защиты, обрабатываются утилитой совместно, в комплексе.

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

Не рекомендуется защищать распространенные сторонние библиотеки и утилиты, такие как Qt. Это не только может нарушить условия использования сторонней библиотеки, но и не имеет смысла, если это часть проекта с открытым кодом. Также это приводит к существенному замедлению работы программы.

Поддерживаемые файлы

Protection Studio поставляется в нескольких вариантах:

  • для ОС Windows x86 (32 бита),
  • ОС Windows x64 (64 бита),
  • ОС Linux x64 (64 бита).

Варианты Protection Studio для ОС Windows и ОС Linux поддерживают разные файлы программ (см. ниже).

Вариант Protection Studio для ОС Windows x86 имеет ограничение на общий размер памяти процесса – максимально 4 Гб, поэтому не всегда способен обработать крупные файлы программ. Кроме того, максимальный размер файла программы для любого варианта Protection Studio составляет чуть менее 2 Гб.

Характеристики файлов

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

Приведены сведения только о поддерживаемых на данный момент файлах программ. Поддержка ограничивается операционными системами Windows семейства NT и дистрибутивами операционной системы GNU/Linux.

По виду файла:

  • нативные – имеющие нативный формат PE или ELF, содержащие код для нативной целевой платформы (x86 или x64),
  • .NET имеющие формат .NET, содержащие байт-код на языке низкого уровня MSIL (CIL).

По типу файла:

  • приложение файл, содержащий исполняемый код и данные для запуска программы:
    • в Windows это обычно файлы с расширением exe,
    • в Linux это обычно файлы без расширения или файлы a.out.
  • библиотека (разделяемая библиотека, динамическая библиотека) файл, содержащий исполняемый код, который отделен от данных для запуска программы:
    • в Windows это обычно файлы с расширением dll,
    • в Linux это обычно файлы с расширением so, указанием версии в имени файла и префиксом lib, наподобие libdl.so.2.
      Отдельный файл необходим по архитектурным причинам, обычно, чтобы использовать один и тот же код в нескольких приложениях.
      Библиотека загружается либо при запуске программы (как зависимость), либо во время ее работы (как плагин).

По формату файла:

  • PE нативный формат для Windows,
  • ELF нативный формат для Linux,
  • .NET особый формат для реализаций .NET (таких, как .NET Framework, .NET Core, .NET версий 5 и выше, .NET Standard), для Windows (все) и Linux (все кроме .NET Framework).

По целевой платформе (целевой архитектуре, целевой машине) файла:

  • x86 (i386, i686 (частично), IA-32 (частично), x32 (подмножество)) целевая платформа для 32-битных версий Windows,
  • x64 (x86-64, AMD64) целевая платформа для 64-битных версий Windows и Linux,
  • AnyCPU особая платформа для реализаций .NET, представляющая байт-код языка низкого уровня MSIL (CIL), обычно неотличимая от x86.

Конфигурацией файла программы называется комбинация формата и платформы.

В графическом интерфейсе Protection Studio, на вкладке Программы, в списке файлов программ, для каждого файла указывается его формат и платформа.

Поддержка файлов программ

Поддержка файлов программ вариантами Protection Studio для ОС Windows и ОС Linux:

Конфигурация файла программыВарианты для WindowsВариант для Linux
PE x86(plus) (minus) 
PE x64(plus) (minus) 
ELF x64(minus) (plus) 
.NET Framework версии 4.0 и выше для любой платформы(plus) (minus) 
.NET Core версии 2.0 и выше для любой платформы(plus) (plus) 
.NET версии 5.0 и выше для любой платформы(plus) (plus) 
.NET Standard версии 2.0 и выше для любой платформы(plus) (plus) 

В зависимости от используемого языка и toolchain (компилятора), файлы нативных программ могут защищаться:

  • успешно в полном объеме,
  • ограниченно,
  • не защищаться.

Поддержка файлов программ:

ЯзыкиToolchainВендорСистемаПоддержкаПримечания
C/C++MSVC (Visual C++)MicrosoftWindows  (plus)  
C/C++GCC (GNU Compiler Collection)GNULinux(plus)Кроме статически собранных файлов приложений
C/C++C++Builder (из состава RAD)Embarcadero (ранее Borland)Windows  (plus)  
RustRustC (deb-пакет rustc)GNULinux  (plus)  
Go (Golang)GCC (deb-пакет gccgo-go)GNULinux  (plus)  
Go (Golang)Golang (deb-пакет golang)go.devLinux  (minus)  
Delphi, PascalDelphiEmbarcadero (ранее Borland)Windows, Linux(plus)Ограниченная поддержка для Linux
PascalFree Pascal CompilerLazarusLinux(plus)Ограниченная поддержка для Linux
C#Microsoft .NET platform, dotnetMicrosoftWindows, Linux(plus)См. про поддержку реализаций .NET в таблице выше

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

Для файлов программ, собранных с помощью GNU Compiler Collection (GCC), не гарантируется поддержка статически собранных файлов приложений. Это обусловлено тем, что в процессе защиты генерируется библиотека защиты, которая должна динамически подключаться приложением.

Не гарантируется поддержка файлов программ, подключающих статически движки JavaScript (в частности, V8 или Chromium).

Установка

Protection Studio поставляется в составе Guardant SLK.

Чтобы начать работу с Protection Studio, скачайте и установите инструментарий Guardant SLK.

После установки Guardant SLK ярлык утилиты появится на рабочем столе. После запуска потребуется пройти авторизацию. Для этого используйте логин и пароль от аккаунта в системе Guardant Station.

С чего начать?

Привяжите файл к лицензии → 

См. также

Интеграция с build-сервером → 

Технологии → 

  • No labels