Общая информация
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 это обычно файлы с расширением
- библиотека (разделяемая библиотека, динамическая библиотека) – файл, содержащий исполняемый код, который отделен от данных для запуска программы:
- в Windows это обычно файлы с расширением
dll, - в Linux это обычно файлы с расширением
so, указанием версии в имени файла и префиксомlib, наподобиеlibdl.so.2.Отдельный файл необходим по архитектурным причинам, обычно, чтобы использовать один и тот же код в нескольких приложениях.
Библиотека загружается либо при запуске программы (как зависимость), либо во время ее работы (как плагин).
- в Windows это обычно файлы с расширением
По формату файла:
- 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 для ОС Windows и ОС Linux:
| Конфигурация файла программы | Варианты для Windows | Вариант для Linux |
|---|---|---|
| PE x86 | ||
| PE x64 | ||
| ELF x64 | ||
| .NET Framework версии 4.0 и выше для любой платформы | ||
| .NET Core версии 2.0 и выше для любой платформы | ||
| .NET версии 5.0 и выше для любой платформы | ||
| .NET Standard версии 2.0 и выше для любой платформы |
В зависимости от используемого языка и toolchain (компилятора), файлы нативных программ могут защищаться:
- успешно в полном объеме,
- ограниченно,
- не защищаться.
Поддержка файлов программ:
| Языки | Toolchain | Вендор | Система | Поддержка | Примечания |
|---|---|---|---|---|---|
| C/C++ | MSVC (Visual C++) | Microsoft | Windows | | |
| C/C++ | GCC (GNU Compiler Collection) | GNU | Linux | Кроме статически собранных файлов приложений | |
| C/C++ | C++Builder (из состава RAD) | Embarcadero (ранее Borland) | Windows | | |
| Rust | RustC (deb-пакет rustc) | GNU | Linux | | |
| Go (Golang) | GCC (deb-пакет gccgo-go) | GNU | Linux | | |
| Go (Golang) | Golang (deb-пакет golang) | go.dev | Linux | | |
| Delphi, Pascal | Delphi | Embarcadero (ранее Borland) | Windows, Linux | Ограниченная поддержка для Linux | |
| Pascal | Free Pascal Compiler | Lazarus | Linux | Ограниченная поддержка для Linux | |
| C# | Microsoft .NET platform, dotnet | Microsoft | Windows, Linux | См. про поддержку реализаций .NET в таблице выше |
Список поддерживаемых файлов программ может быть расширен в последующих реализациях Protection Studio.
Для файлов программ, собранных с помощью GNU Compiler Collection (GCC), не гарантируется поддержка статически собранных файлов приложений. Это обусловлено тем, что в процессе защиты генерируется библиотека защиты, которая должна динамически подключаться приложением.
Не гарантируется поддержка файлов программ, подключающих статически движки JavaScript (в частности, V8 или Chromium).
Установка
Protection Studio поставляется в составе Guardant SLK.
Чтобы начать работу с Protection Studio, скачайте и установите инструментарий Guardant SLK.
После установки Guardant SLK ярлык утилиты появится на рабочем столе. После запуска потребуется пройти авторизацию. Для этого используйте логин и пароль от аккаунта в системе Guardant Station.
С чего начать?
См. также