Общая информация
Меню Настройки предназначено для задания основных настроек проекта, которые применяются ко всем файлам программ или иным образом определяют поведение проекта в целом.
Общие настройки
Выходная папка (Result directory)
Позволяет выбрать папку, в которую будут сохранены файлы, сгенерированные в результате защиты программы:
- защищенные файлы программы. Если для конкретного файла программы не задана явно его собственная выходная папка, см. страницу Меню Программы.
- библиотека защиты,
- файл отчета о защите result.xml (только, если защищается хотя бы один файл нативной программы),
- файлы сопоставления имен символов symbols-framework.map (для .NET Framework) и symbols-core.map (для .NET Core и .NET версии 5 или выше) (только, если защищается хотя бы один файл программы .NET, и при этом включена настройка Обфускация символов) .
Изменить папку можно с помощью:
- нажатия на значок папки,
- редактирования текстового поля.
Файл result.xml содержит подробную информацию об ошибках и предупреждениях, возникающих при защите файлов программы.
Файлы symbols-framework.map и symbols-core.map содержат имена символов .NET до и после символьной обфускации. Эта информация предназначена только для обнаружения и отладки проблем и может выборочно компрометировать защиту. Дистрибутив защищенной программы не должен включать эти файлы.
Рекомендуется располагать все необходимые файлы и папки на одном диске.
При сохранении проекта защиты для CI/CD все необходимые файлы и папки должны располагаться на одном диске, поскольку при сохранении проекта указываются относительные пути файлов вместо абсолютных. Относительные пути вычисляются от файла проекта защиты.
Блокировка сообщений (Block messages)
Настройка для вывода пользователю защищенной программы сообщений о событиях, связанных с лицензией. Подробнее об алгоритме обработки и отображения ошибок см. на странице Подробности работы автоматически защищенных приложений.
Мониторинг аппаратного ключа (Hardware key monitoring)
Включение этой настройки приведет к тому, что в соответствующем процессе будет создан отдельный поток, отслеживающий события извлечения и подключения аппаратных ключей Guardant.
Так, при извлечении ключа фрагменты защищенных функций выгружаются из процесса, и при следующей попытке обращения к любой защищенной функции либо найдется подходящая лицензия (в соответствии с условиями поиска), либо выведется ошибка лицензирования.
Ошибка лицензирования при извлечении ключа может и не выводиться. Приложение при этом продолжит свою работу, сохранив нужные данные. Поведение приложения зависит от того, какие именно из его функций были защищены.
Мониторинг сетевого ключа (Network key monitoring)
Включение этой настройки приведет к тому, что в соответствующем процессе будет создан отдельный поток, отслеживающий доступность сетевых ключей Guardant.
Так, при недоступности ключа фрагменты защищенных функций выгружаются из процесса, и при следующей попытке обращения к любой защищенной функции либо найдется подходящая лицензия (в соответствии с условиями поиска), либо выведется ошибка лицензирования.
Ошибка лицензирования при извлечении ключа может и не выводиться. Приложение при этом продолжит свою работу, сохранив нужные данные. Поведение приложения зависит от того, какие именно из его функций были защищены.
Перехват исключений для программ .NET из этого отдельного потока невозможен.
Для использования этой настройки необходимо указать интервал проверки.
Коды доступа (Access codes)
Настройка задает набор кодов доступа, используемый для защиты. Как правило, доступен только один набор кодов доступа.
Имя библиотеки защиты (Protection library name)
Настройка задает общее имя библиотеки защиты, которое определяет имена файлов библиотеки защиты для различных платформ.
По умолчанию общее имя библиотеки защиты – protectstorage.
В зависимости от защищаемых файлов программы генерируются соответствующие файлы библиотеки защиты:
- для Windows x86 (32-битная),
- Windows x64 (64-битная),
- Linux x64 (64-битная).
Имена файлов библиотеки защиты нельзя изменить вручную, они изменяются только автоматически при изменении общего имени.
Защита native-приложений (Native applications protection)
Раздел содержит настройки, относящиеся к защите только нативных программ.
Приостановка потоков (Suspend threads)
Данная настройка доступна только для файлов нативных программ, представляющих приложения в формате PE (Windows, файлы *.exe).
Настройка мгновенной приостановки работы защищенной нативной программы при обнаружении ошибки лицензирования.
Это позволяет приостановить работу всей программы до тех пор, пока пользователь не примет решение о том, как обработать ошибку.
Использование настройки актуально для случаев извлечения аппаратного ключа Guardant во время работы программы. Однако, если программа спроектирована определенным образом, настройка может не сработать или отразиться на логике дальнейшей работы программы.
Эту настройку необходимо использовать очень осторожно. В большинстве случаев ее можно не применять, если правильно написать программу и грамотно защитить функции.
Приостановку потоков не рекомендуется использовать, если в коде защищаемых функций или коде функций, вызывающих защищенные функции, активно используются таймеры.
Защита приложений .NET (.NET application protection)
Раздел содержит настройки, относящиеся только к защите программ .NET.
Обфускация символов (Obfuscate symbols)
Разрешает переименование символов, объявленных внутри сборки. Подробнее см. страницу Технологии защиты.
Возможно применение атрибутов обфускации. Подробнее см. страницу Рекомендации и особенности защиты программ.
Обфускация внешних интерфейсов (Obfuscate public interfaces)
Разрешает переименование символов, доступных другим сборкам. Требует включения настройки Обфускация символов.
Эта настройка актуальна при защите набора библиотек.
Например.
Необходимо включить настройку, если в проекте дополнительно защищается приложение, которое должно иметь доступ к этим библиотекам. При этом другие приложения не должны иметь доступа к этим библиотекам.
Необходимо отключить настройку, если требуется, чтобы стороннее приложение могло обращаться к библиотекам без ошибок.
Возможно применение атрибутов обфускации. Подробнее см. страницу Рекомендации и особенности защиты программ.
Обфускация потока управления (Obfuscate control flow)
Задает процент автоматического выбора подходящих для применения данной операции методов. В выбранных методах происходит скрытие последовательности выполнения инструкций. Подробнее см. страницу Технологии защиты.
Возможно применение атрибутов обфускации. Подробнее см. страницу Рекомендации и особенности защиты программ.
Шифрование строк (Encrypt strings)
Включает шифрование строковых констант, объявленных внутри сборки. Подробнее см. страницу Технологии защиты.
Возможно применение атрибутов обфускации. Подробнее на странице Рекомендации и особенности защиты программ.