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