Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
_Toc485195646
_Toc485195646
Anchor
_Toc493314435
_Toc493314435
Anchor
_Toc493322638
_Toc493322638
Anchor
_Toc493322774
_Toc493322774
Anchor
_Toc495289560
_Toc495289560
Anchor
_Toc20393238
_Toc20393238
Anchor
_Toc101339714
_Toc101339714
Anchor
_Toc326164998
_Toc326164998
Принцип автозащиты

Основа автоматической защиты исполняемых Native-приложений – вакцина, выполненная в виде универсального внешнего модуля. Все функции защиты поддерживаются этим модулем, что позволяет унифицировать процесс защиты.
Автозащита исполняемых Native-приложений работает следующим образом:
В тело защищаемого приложения вписывается небольшой исполняемый модуль (внутренняя вакцина). В момент запуска приложения он загружает из отдельного файла внешнюю вакцину. И уже эта внешняя вакцина производит необходимые проверки и преобразования кода защищенного приложения и запускает его.
Кроме того, использование внешнего модуля защиты усиливает стойкость к изучению логики ее работы при помощи отладчиков.
Файл вакцины для исполняемых Native-приложений называется GrdVkc32.dll и входит в комплект автоматической защиты.
Важно!

Anchor
VaccineLocation
VaccineLocation
В момент запуска защищенного приложения вакцина GrdVkc32.dll должна находиться там, где ее может найти функция LoadLibrary (это может быть текущий каталог, системные каталоги Windows, каталог, в котором находится само защищенное приложение, один из каталогов списка PATH).

Anchor
_Ограничения_автозащиты_Native-приложени
_Ограничения_автозащиты_Native-приложени
Anchor
_Toc326164999
_Toc326164999
Ограничения автозащиты Native-приложений

Важно!
1. Автозащита должна выполняться на ключе той же модели, что будет поставляться с защищенной программой.
2. Для успешной установки и работы автозащиты в ключе, к которому привязывается приложение, должен содержаться алгоритм типа GSII64 или AES.
3. Определитель аппаратного алгоритма в ключе, используемом при защите, должен быть идентичен определителю этого же алгоритма в ключе из комплекта поставки защищенного приложения.

  • Не поддерживаются самораспаковывающиеся архивыZIP, RAR и т. д.
  • Не поддерживаются программы-мастера установки приложений, созданные в специализированных средах разработки: Wise Installer, Install Shield и других.
  • Не гарантируется корректная защита или последующая работа приложения, которое перед защитой было упаковано специальным упаковщиком EXE-файлов: UPX, ASPACK и др.
  • Не гарантируется корректная защита EXE- файлов, кодкоторых был предварительно защищен от модификации или анализа

...

Anchor

...

AutoprotectUtils
AutoprotectUtils
Anchor
_Утилиты_автоматической_защиты
_Утилиты_автоматической_защиты
Anchor
_Toc493314436
_Toc493314436

...

Anchor
_Toc495289561
_Toc495289561
Anchor
_Toc20393239
_Toc20393239
Anchor
_Toc101339715
_Toc101339715
Anchor
OLE_LINK68
OLE_LINK68
Anchor
_NwKey32.exe._Консольная_утилита
_NwKey32.exe._Консольная_утилита
Anchor
_Toc326165000
_Toc326165000
001 NwKey32.exe. Консольная утилита автозащиты Native-приложений

Защита исполняемых файлов Native-приложений (т. е. EXE-файлов PE-формата) производится строчной утилитой NwKey32.exe.
Утилиту автозащиты с выбранными опциями можно вызывать из командной строки или BAT-файла.
Утилита автоматической защиты внедряет в код приложения набор команд (программный модуль), с помощью которых происходит загрузка внешней вакцины. Также утилита выполняет необходимые преобразования защищаемого приложения в соответствии с выбранным режимом защиты.

Anchor
_Toc493314437
_Toc493314437
Anchor
_Toc495289562
_Toc495289562
Anchor
_Toc20393240
_Toc20393240
Anchor
_Toc101339716
_Toc101339716
Файлы, необходимые для процесса защиты

Для защиты исполняемого Native-приложения необходимо наличие следующих файлов в одной директории:

...

Важно!
1. Если файл NvCodes.dat отсутствует, приложения будут защищаться с демо-кодами.
2. Файл NvCodes.dat необходим только для утилиты автоматической защиты и программирования ключей. Сами защищенные приложения не нуждаются в этом файле. Ни в коем случае не передавайте его своим клиентам!

Файлы, необходимые для работы защищенного Native-приложения

Для работы защищенного приложения необходимо наличие следующих файлов в одной директории:

...

Anchor
_Toc493314438
_Toc493314438
Anchor
_Toc495289563
_Toc495289563
Anchor
_Toc20393241
_Toc20393241
Anchor
_Toc101339717
_Toc101339717

Порядок защиты Native-приложения

Перед началом защиты подсоедините к компьютеру электронный ключ нужного типа.
Формат вызова утилиты автоматической защиты:
NwKey32.exe [опции] [путь]список_файлов
или
NwKey32.exe [опции] @[путь]filename.fil
Укажите в командной строке необходимые для защиты параметры и нажмите на кнопку [Enter]. Утилита приступит к защите, выдавая по ходу работы необходимые сообщения:

...

Утилита завершит защиту текущего файла и закончит работу.
Процесс защиты можно прервать в любой момент, нажав Esc.

Anchor
_Toc493314439
_Toc493314439
Anchor
_Toc495289564
_Toc495289564
Anchor
_Toc20393242
_Toc20393242
Anchor
_Toc101339718
_Toc101339718
Коды ошибок NwKey32.exe

Утилита NwKey32.exe может возвращать следующие коды ошибок:

Код ошибки

Описание

0

Процесс успешно завершен

1

Процесс прерван пользователем

2

Ошибка распределения памяти

3

Неверная опция

4

Файл *.MSG не найден

5

Файл имеет необрабатываемый формат

6

Некорректно заданы алгоритмы для привязки к ключу; алгоритм, указанный в опции SIGN[=N:FileName.Ext], не является ECC

7

Электронный ключ не найден

8

Файл уже защищен

9

Файл уже существует

10

Файл невозможно переименовать

11

Ошибка обмена с электронным ключом

32

Ошибка открытия файла

33

Невозможно изменить размер файла

34

Ошибка чтения из файла

35

Ошибка записи в файл

36

Переполнение. Выравнивание сегмента слишком велико

37

Невозможно защитить файл базы данных

38

Невозможно защитить DLL-файл

39

Слишком много сегментов в защищаемом файле (более 32)

40

Найден распределенный сегмент

41

Невозможно изменить режим преобразования кода

42

Неподдерживаемый формат

43

Некорректный электронный ключ

44

Исчерпан ресурс

45

Для защиты используйте NwKey.exe

128

Некорректный файл параметров защиты

129

Счетчик инсталляций истек

Anchor
_Сводная_таблица_опций
_Сводная_таблица_опций
002 Сводная таблица опций защиты Native-приложений

Опции автоматической защиты Native-приложений сгруппированы в таблицы по типам. В каждой таблице, наряду с названием опции и ее кратким описанием, указано, с какими ключами семейства Guardant она используется.

Anchor
_Toc493314440
_Toc493314440
Опции установки типа электронного ключа

Опция

Описание

Модель

/GS3S[=[N]:[L]:[ID]:[S[<FileName.bin>]]

Привязать к Guardant Time/Sign

Time/Sign

/GN3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]]

Привязать к Guardant Time/SignNet

Time/Sign Net

/GC=N:L[:[ID]:[S]:[<FileName.bin>]]

Привязать к Guardant Code/CodeTime

Code/Code Time

/GS3[=[N]:[L]:[ID]]

Привязать к Guardant Stealth III

StealthIII/Net III

/GN3[=[N]:[L]:[ID]]

Привязать к Guardant Net III

Net III

/GS2[=[N]:[L]:[ID]]

Привязать к Guardant Stealth II

Stealth II /Net II

/GN2[=[N]:[L]:[ID]]

Привязать к Guardant Net II

Net II

/GSP[=[N]:[L]:[ID]:[S[<FileName.bin>]]

Привязать к софтверному ключу Guardant SP

SP

Anchor
_Toc493314441
_Toc493314441
Опции привязки к электронному ключу

Опция

Описание

Модель

/UI[=[0x]...]

Проверять уникальность ID электронного ключа (используется заданное значение, либо значение из поля ID ключа)

Все

/US[=[0x]...]

Проверять уникальность серийного номера электронного ключа (используется заданное значение, либо значение из поля серийного номера ключа)

Все

/UV[=[0x]...]

Проверять версию (используется заданное значение, либо значение из поля версии ключа)

Все

/UM[=[0x]...]

Проверять маску (используется заданное значение, либо значение из поля образа ключа)

Все

/UN[=[0x]...]

Проверять номер программы (используется заданное значение, либо значение из поля номера программы ключа)

Все

/NOA

Не использовать аппаратные алгоритмы

Все

/T=xx

Проверять наличие электронного ключа периодически,через заданные интервалы времени

Все

Anchor
OLE_LINK52
OLE_LINK52
Anchor
OLE_LINK59
OLE_LINK59
Anchor
_Hlk140492605
_Hlk140492605
/EXIT_DELAY

Отложить завершение приложения при отсутствии ключа

Все

/USB_DONGLE_CONTROL

Контролировать извлечение USB-ключа из порта компьютера

Все с USB-интерфейсом

/RC[=xx]

Anchor
OLE_LINK62
OLE_LINK62
Если ключ не найден, проверять его наличие и выводить сообщение об отсутствии ключа заданное число раз

Все

Anchor
_Toc493314442
_Toc493314442
Опции, влияющие на защищенность приложения

Опция

Описание

Модель

/CEN

Не кодировать загружаемую часть приложения

Все

/IDEN

Отключить кодирование инициализированных данных

Все

/V

Проверять целостность приложения

Все

/NOS

Не «о

Anchor
таблицы
таблицы
чищать» приложение

Все

/ATR[=N]

Задать число таблиц вопросов-ответов к алгоритму

Все

/PACK

Упаковать секции исполняемого файла

Все

/CPA

Контролировать атрибуты страниц

Все

/IMPLICIT_LINKING_SUPPORT

Поддержка неявного связывания DLL

Все

/IMPORT_HOOK [=%:L]

Защищать импортируемые функции

Все

/IMPORT_HOOK_LIST

Защищать импортируемые функции по списку

Все

/RIP_CODE[=%[:FileName.Ext]]

Извлечь инструкции из тела приложения

Все

/RIP_CODE_LIST

Извлечь инструкции из тела приложения по списку

Все

Опции, касающиеся ограничений работы приложения

Опция

Описание

Модель

/LICENSE_TIME[=limit]

Вывести предупреждение об оставшемся времени работы

Для ключей с RTC

/DCA

Ограничить число запусков приложения

Локальные

/LICENSE_COUNTER[=limit]

Вывести предупреждение об оставшемся числезапусков

Только для Sign и выше

/LICENSE_URL=string

Вывести ссылку на сайт разработчика приложения

Только для Sign и выше

Сетевые опции

Опция

Описание

Модель

*/LOGIN_MODE=H

S* *

P*

Выбрать режим лицензирования:

Anchor
_Hlt326161444
_Hlt326161444
по хэндлам (H), рабочим станциям (S) или процессам (P)

Сетевые ключи

/MN=xx

Использовать систему управления лицензиями

Сетевые ключи

Anchor
_Toc493314445
_Toc493314445
Сервисные опции

Опция

Описание

Тип ключа

/MSG=[путь].msg*

Брать сообщения вакцины из файла *.MSG(имя_утилиты.MSG – по умолчанию)

Все

/SPLASH[=Filename.bmp]

Показать заставку при старте защищенного приложения

Все

/OUT=D:\PATH

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

Все

/Q

Запретить вывод сообщений утилиты защиты

Все

/SILENT

Запретить вывод сообщений защищенного приложения

Все

Anchor
_Toc485195648
_Toc485195648
Anchor
_Toc493314448
_Toc493314448
Anchor
_Toc493322640
_Toc493322640
Anchor
_Toc493322776
_Toc493322776
Anchor
_Toc495289567
_Toc495289567
Anchor
_Toc20393245
_Toc20393245
Anchor
_Toc101339721
_Toc101339721
Anchor
_Опции_автоматической_защиты
_Опции_автоматической_защиты
Anchor
_Toc326165001
_Toc326165001
003 Опции автоматической защиты

Anchor
_Toc495289568
_Toc495289568
Anchor
_Toc20393246
_Toc20393246
Anchor
_Toc101339722
_Toc101339722
Anchor
_Опции_установки_типа
_Опции_установки_типа
Опции установки типа электронного ключа

Опции этой группы позволяют задать модель электронного ключа Guardant, к которой будет «привязано» защищенное приложение.

Anchor
_Установить_привязку_к
_Установить_привязку_к
Anchor
_Привязать_к_типу
_Привязать_к_типу
Привязать к типу ключа:/GS3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]], /GN3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]], /GC N:L[:[ID]:[S]:[<FileName.bin>]], /GS3[=[N]:[L]:[ID]], /GN3[=[N]:[L]:[ID]], /GS2[=[N]:[L]:[ID]], /GN2[=[N]:[L]:[ID]], /GSP[=[N]:[L]:[ID]:[S]:[<FileName.bin>]]

Описание:
Указание модели ключей, к которым будет привязано приложение:

...


Если при работе с алгоритмом ECC160 (параметр S установлен) не задан параметр FileName.bin, то будет использован умолчательный открытый ключ PUBKEY_08.BIN из текущего каталога.
Важно!
1. В ключах, которые передаются клиентам вместе с защищенным приложением, должны быть созданы алгоритмы с таким же номером, определителем и длиной запроса, какие были указаны при защите.
2. Если опции этой группы не использовались, приложение не будет привязано к электронному ключу (т. е. оно будет запускаться и в случае, когда ни один из электронных ключей не подсоединен к компьютеру). Однако оно будет защищено от отладчиков. Вы можете использовать эту возможность, например, для защиты приложений, которые без электронного ключа работают в демо-режиме.

Anchor
_Toc463859238
_Toc463859238
Пример:
NwKey32.exe /GS3S=5:::2 /GS3::12345678 MyProg.exe
Защищенное Win32-приложение MyProg.exe будет запускаться в случае, если к компьютеру подсоединен ключ Guardant Sign с симметричным алгоритмом #5 (длина вопроса по умолчанию) и ECC-алгоритмом #2 (открытый ключ по умолчанию) или Guardant Stealth III с умолчательными параметрами и ID=12345678.
Причем для ключа Guardant Sign в процессе работы будет вырабатываться и проверяться цифровая подпись случайного числа, генерируемого вакциной.

Anchor
_Toc495289569
_Toc495289569
Anchor
_Toc20393247
_Toc20393247
Anchor
_Toc101339723
_Toc101339723
Anchor
_Опции_привязки_к
_Опции_привязки_к
Опции привязки к электронному ключу

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

Anchor
_Toc463859239
_Toc463859239
Anchor
_Toc493314453
_Toc493314453
Anchor
_Проверять_ID_ключа:
_Проверять_ID_ключа:
Проверять ID ключа:/UI[=[0x]...]

Тип электронного ключа:
Все
Описание:
Эта опция служит для «привязки» приложения к уникальному параметру ключа Guardant – его идентификационному номеру (ID). Защищенное c этой опцией приложение будет запускаться лишь в том случае, если к компьютеру подсоединен именно тот электронный ключ, с использованием которого была произведена защита программы (или ID которого был указан в опции).
Если опция указана в виде /UI, приложение будет привязано к ID того электронного ключа, который был подсоединен к компьютеру на момент защиты. Чтобы привязать приложение к ID какого-либо другого из ключей, присоединенных к компьютеру, укажите его значение в опции после знака «=». Для того чтобы написать ID в шестнадцатеричной системе счисления, укажите перед ним префикс «0x».
ID современных ключей Guardant можно узнать, запустив утилиту диагностики grddem32.exe, а также через команду Ключ | Информация о ключе утилиты GrdUtil.exe.
Важно!
ID ключа – уникальная величина. Нельзя ни изменить ID ключа, ни изготовить ключ с нужным ID. Поэтому в случае выхода ключа из строя придется менять не только ключ, но и само защищенное приложение.
Примеры:
NwKey32.exe /GN3S /UI myprog.exe
NwKey32.exe /GS2 /UI=912459016 myprog.exe
В первом примере защищенное Win32-приложение MyProg.exe будет запускаться только с тем из ключей Guardant Sign Net (опция /GN3S), который был подсоединен к компьютеру на момент защиты приложения (опция /UI, используется ID подсоединенного ключа). Во втором примере MyProg.exe будет запущен только с тем из ключей Guardant Stealth II (опция /GS2), который имеет ID=912459016 в десятичной системе счисления (опция /UI=912459016).

Anchor
_Toc463859240
_Toc463859240
Anchor
_Toc493314455
_Toc493314455
Anchor
_Проверять_серийный_номер
_Проверять_серийный_номер
Проверять серийный номер ключа:/US [=[0x]s]

Тип электронного ключа:
Все
Значение параметра:
0<=s<=65535
Описание:
Для привязки приложения к конкретному ключу также служит опция /US. В этом случае защищенное приложение будет запускаться только тогда, когда подсоединен электронный ключ, имеющий в поле серийного номера то значение, какое было задано при защите приложения.
Этот режим защиты более «мягкий», чем предыдущий: он использует параметр ключа, который можно записать в ключ. Следовательно, если ключ выйдет из строя, легко можно изготовить ключ с таким же серийным номером и заменить неисправный.
Важно!
При привязке к ключу Guardant и одновременно при задании опции в виде /US, привязка будет произведена к серийному номеру подсоединенного ключа Guardant. Это правило действует и на опции привязки ко всем остальным параметрам ключей: к версии, маске, номеру программы и т. п. (они будут рассмотрены ниже).
Примеры:
NwKey32.exe /GS3S /US MyProg.exe
NwKey32.exe /GC /US=0xFFFE MyProg.exe
NwKey32.exe /GN3S /GS3 /US MyProg.exe
В первом примере защищенное приложение MyProg.exe будет запускаться только с тем из ключей Guardant Sign (опция /GS3S), который был подсоединен к компьютеру на момент защиты приложения (опция /US, используется серийный номер подсоединенного ключа).
Во втором примере MyProg.exe будет запущен только с тем из ключей Guardant Code, который имеет серийный номер FFFE в шестнадцатеричной системе счисления (опция /US=0xFFFE).
В третьем примере MyProg.exe будет запущен только с тем из ключей Guardant Sign Net или Guardant Stealth III (опции /GS3 и /GN3S), который имеет серийный номер, как у подсоединенного на момент защиты ключа Guardant Sign Net и Guardant Stealth III (опция /US).

Anchor
_Toc463859241
_Toc463859241
Anchor
_Toc493314457
_Toc493314457
Anchor
_Проверять_версию_защищенного
_Проверять_версию_защищенного
Проверять версию защищенного приложения:/UV[=[0x]v]

Тип электронного ключа:
Все
Значение параметра:
0<=v<=255
Описание:
Опция /UV служит для привязки приложений к значению, записанному в поле версии ключа. Этот режим удобен в случае, если часто выходят новые версии программного обеспечения. Он позволяет легко решать проблему обновления ПО.
Предположим, изначально программный продукт имеет версию 1.0. Тогда при его защите нужно задать опцию /UV=10, и записать это же значение в поле версии ключа, с которым будет работать версия продукта.
В дальнейшем, когда появится новая версия программного продукта (предположим, это версия 1.1), и будет необходимо обновить продукт старым клиентам, не нужно будет давать им новый электронный ключ. Вместо этого просто защитите новую версию с указанием опции /UV=11. Скорректировать поле версии в своем электронном ключе клиент сможет сам, получив от разработчика нужные данные и воспользовавшись утилитой дистанционного программирования ключей. После этого пользователь сможет работать как с новой, так и со старой версией программного продукта.
Дело в том, что защищенное с этой опцией приложение не только проверяет наличие ключа, но и анализирует содержимое его поля версии. Приложение запускается только в том случае, если версия в поле ключа больше или равна версии, заданной при защите приложения. Значит, если пользователь где-либо достанет защищенную копию новой версии продукта, он не сможет с ней работать до тех пор, пока не скорректирует поле версии в своем ключе. А сделать этого сам он не сможет, т. к. не знает, какая информация для этого нужна.
Пример:
NwKey32.exe /GS3S /UV MyProg.exe
NwKey32.exe /GS3S /GS3 /UV=11 MyProg.exe
В первом случае производится привязка приложения MyProg.exe к номеру версии, записанному в поле подсоединенного ключа (предположим, что в поле ключа было записано 10, т. е. версия 1.0). Защищенное приложение будет запущено в случае, если подсоединен ключ Guardant Sign со значением 10 или больше в его поле версии. Во втором случае происходит защита обновленного приложения MyProg.exe версии 1.1 (опция /UV=11). В этом случае приложение станет работоспособным, после того как конечный пользователь запишет значение 11 в поле версии своего ключа Guardant Stealth III или получит от вас новую улучшенную модель ключа Guardant Sign, с записанным значением 11 в поле версии. При этом он сможет работать как со старой, так и с новой версией MyProg.exe.

Anchor
_Toc463859242
_Toc463859242
Anchor
_Toc493314459
_Toc493314459
Anchor
_Проверять_маску:_/UM[[0x]mmmmm]
Проверять маску:/UM[=[0x]m]

Тип электронного ключа:
Все
Значение параметра:
Единица, степени числа 2 в диапазоне 1<=m<65535
Описание:
Если продукт состоит из нескольких самостоятельных программных модулей, для его защиты можно воспользоваться опцией /UM. Эта опция позволяет выборочно разрешать или запрещать пользователю запуск определенных модулей из состава программного комплекса.
Например, электронный переводчик состоит из трех программ: MyProg1.exe – демо-версия с ограниченными возможностями, MyProg2.exe – англо-русский переводчик и MyProg3.exe – французско-русский переводчик.
Пусть сначала распространяется демо-версия, а затем, по мере надобности, клиенты докупают интересующие их программы-переводчики. Использование опции /UM облегчит задачу распространения такого продукта.
Защищенные в этом режиме приложения используют поле битовой маски в качестве набора семафоров, каждый из которых разрешает или запрещает запуск программы с номером, присвоенным ей при защите. При запуске программа проверяет значение соответствующего бита в поле битовой маски и, если он равен 1, приложение запускается.
При защите необходимо указать в опции /UM номер для каждого защищаемого приложения (его можно указывать в десятичной или – с использованием префикса «0x» – в шестнадцатеричной системе счисления). Например, MyProg1.exe номер 1, MyProg2.exe – номер 2 и MyProg3.exe – номер 4, т. к. числу 1 соответствует бит #0, числу 2 – бит #1, а числу 4 – бит #2.
В поле Битовая маска электронного ключа записывается число 1.
В этом случае можно включать в комплект поставки все три приложения. Однако клиент сможет запустить лишь MyProg1.exe, т. к. в поле маски его электронного ключа записано значение, соответствующее номеру только этого приложения (т. е. 1).
Если в дальнейшем клиент захочет использовать и MyProg2.exe, он, при помощи переданной разработчиком информации, утилитой дистанционного программирования скорректирует значение маски своего ключа, записав в нее число 3. Теперь он сможет запускать не только MyProg1.exe, но и MyProg3.exe, т. к. числу 3, теперь записанному в ключе, соответствуют биты #0 и #1.
Разрядность поля битовой маски – 16 бит. При защите желательно выбирать для программ такие номера, которые соответствуют единственному установленному биту, т. е. 1, 2, 4, 8, 16, 32, 64 и т. д. Присвоение других номеров может привести к возникновению некорректной ситуации при проверке маски.
Если указать опцию без параметра, то при защите будет использовано значение поля «Битовая маска», содержащееся в памяти ключа, подсоединенного к порту во время защиты.
Пример:
NwKey32.exe /GS3S /UM=1 MyProg1.exe
NwKey32.exe /GS3S /UM=2 MyProg2.exe
NwKey32.exe /GS3S /UM=4 MyProg3.exe
Показаны вызовы утилиты защиты приложений ключом Guardant Sign для примера, описанного выше по тексту.

Anchor
_Toc463859243
_Toc463859243
Anchor
_Toc493314461
_Toc493314461
Anchor
_Проверять_номер_программы:
_Проверять_номер_программы:
Проверять номер программы:/UN[=[0x]n]

Тип электронного ключа:
Все
Значение параметра:
0<=n<=255
Описание:
Эта опция будет полезна в случае, если есть несколько различных программных продуктов (например, электронная бухгалтерия и программа складского учета), и все они защищены с помощью ключей Guardant. В этом случае можно привязывать их к одним и тем же параметрам ключа, сделав в то же время невозможным работу обоих продуктов с одним и тем же ключом.
Необходимо присвоить каждому продукту свой номер (пусть, например, электронная бухгалтерия будет иметь номер 0, а программа складского учета – номер 1) и защищать их с опцией /UN.
Тогда в поле номера программы ключей, предназначенных для работы с электронной бухгалтерией, нужно записать значение 0, а для программы складского учета – значение 1. Все остальные параметры защиты можно сделать одинаковыми. Защищенное в таком режиме приложение будет проверять значение поля номера программы, поэтому невозможно будет запустить электронную бухгалтерию с ключом, предназначенным для работы с программой складского учета, и наоборот.
Все продаваемые ключи имеют в поле номера программы значение 0. Поэтому можно воспользоваться этой опцией, даже если в настоящий момент существует только один программный продукт. Ведь в будущем количество продуктов может увеличиться, – и тогда не нужно будет беспокоиться о том, как не допустить нелегального использования новой продукции старыми клиентами.
Пример:
NwKey32.exe /GS3S /UN=0 mybuh.exe
NwKey32.exe /GS3S /UN=1 mysklad.exe
Показаны вызовы утилиты защиты приложений ключом Guardant Sign для примера, описанного выше по тексту.

Anchor
_Toc463859244
_Toc463859244
Anchor
_Ref491490614
_Ref491490614
Anchor
_Не_использовать_аппаратный
_Не_использовать_аппаратный
Anchor
_Toc493314463
_Toc493314463
Anchor
_Не_использовать_аппаратные
_Не_использовать_аппаратные
Не использовать аппаратные алгоритмы:/NOA

Тип электронного ключа:
Все
Описание:
По умолчанию приложения, защищенные автозащитой, активно используют аппаратный алгоритм электронного ключа. Это значительно повышает уровень стойкости автоматической защиты, т. к. вводит в нее элемент преобразования данных.
Если же в памяти ключа по каким-то причинам нет алгоритмов GSII64 (для Guardant Code – AES), например, когда она используется для хранения других данных, автоматическая защита будет работать корректно лишь в том случае, когда она станет не обращаться к аппаратному алгоритму в процессе защиты.
Чтобы отказаться от использования аппаратного алгоритма для автоматической защиты, нужно запустить утилиту NwKey32.exe с опцией /NOA.
Пример:
NwKey32.exe /GS3S /NOA MyProg.exe
Защищенное таким образом приложение не будет использовать аппаратные алгоритмы GSII64 при проверке ключа Guardant Sign.

Контролировать извлечение USB-ключа из порта компьютера:/USB_DONGLE_CONTROL

Тип электронного ключа:
Локальные USB-ключи
Описание:
Опция позволяет защищенному приложению отслеживать присутствие локального USB-ключа Guardant в порту компьютера. Если в процессе работы приложения ключ извлекается из порта, то выводится соответствующее сообщение, и приложение реагирует, как это указано в описании опции /RC.

Anchor
_Toc463859248
_Toc463859248
Anchor
_Toc493314471
_Toc493314471
Пример:
NwKey32.exe /GS3S /USB_DONGLE_CONTROL MyProg.exe
Приложение MyProg.exe привязано к ключу Guardant Sign, причем происходит контроль присутствия ключа в порту. Если ключ вынуть во время работы приложения, то будет выдано сообщение типа «Не найден электронный ключ».

Проверять наличие электронного ключа периодически:/T=x

Тип электронного ключа:
Все
Значение параметра:
1<=x<=60 минут, только целые числа
Описание:
Можно проверять наличие электронного ключа не только при запуске, но и в течение всего сеанса работы защищенного приложения через заданные промежутки времени.
Такая возможность обеспечивается опцией /T=x, где «x» – значение промежутка между двумя проверками в минутах.
Если при очередной проверке ключ не будет обнаружен, защищенное приложение выдаст на экран соответствующее сообщение, либо звуковой сигнал. Работа приложения будет блокирована до тех пор, пока пользователь не подсоединит ключ и не нажмет кнопку для повтора.
Пример:
NwKey32.exe /GS3S /T=05 MyProg.exe
NwKey32.exe /GS3S /T=5 MyProg.exe
Эквивалентные примеры защиты приложения MyProg.exe с ключом Guardant Sign. MyProg.exe будет опрашивать ключ в течение всего времени работы, с интервалами в пять минут.

Anchor
OLE_LINK63
OLE_LINK63
Anchor
_Выводить_сообщение_об
_Выводить_сообщение_об
Выводить сообщение об отсутствии ключа заданное число раз:/RC[=x]

Тип электронного ключа:
Все
Значение параметра:
0<=x<=255
Описание:
Если в процессе работы защищенного приложения ключ не будет обнаружен, то можно проверять его наличие и выводить сообщение об отсутствии ключа заданное число раз. Для этого служит опция /RC[=x], где x - число проверок ключа.
Применение этой опции дает возможность пользователю сохранить наработанные данные и корректно завершить работу с приложением, например, в случае выхода ключа из строя.
Если опция не указана, сообщение будет выводиться 50 раз.
При отсутствии ключа на экран выводится диалог с сообщением и кнопками [Retry] и [Cancel]. После нажатия [Retry] программа продолжает работать ~ 10 – 30 сек, а затем проверяет ключ. Если ключ не найден, вновь выводится сообщение, если найден – приложение продолжает работать в штатном режиме.
Если после заданного числа проверок ключ не будет обнаружен, то выводится вышеописанное сообщение с кнопкой [Ok], после нажатия которой приложение завершает работу.
Пример:
Nwkey32.exe /GC /RC=10 MyProg.exe
Приложение MyProg.exe будет проверять наличие ключа Guardant Code и при его отсутствии 10 раз выводить сообщение.

Отложить завершение приложения при отсутствии ключа:/EXIT_DELAY[=x]

Тип электронного ключа:
Все
Значение параметра:
1<=x<=600 секунд, по умолчанию 120
Описание:
Если в процессе работы защищенного приложения ключ не будет обнаружен, то, при использовании данной опции, приложение выведет на экран сообщение о принудительном завершении работы приложения через заданное время.
Это даст возможность пользователю сохранить наработанные данные и корректно завершить работу с приложением, например, в случае выходе ключа из строя.
Пример:
Nwkey32.exe /GS3 /EXIT_DELAY=60 MyProg.exe
При отсутствии ключа Guardant Sign приложение MyProg.exe выведет сообщение о завершении работы приложения через 1 минуту.

Anchor
_Опции,_влияющие_на
_Опции,_влияющие_на
Опции, влияющие на защищенность приложения

Anchor
_Toc463859253
_Toc463859253
Anchor
_Toc493314481
_Toc493314481
Отменить кодирование приложения:/CEN

Тип электронного ключа:
Все
Описание:
Данная опция отключает кодирование секций защищаемого приложения.
Пример:
NwKey32.exe /GS3S /T=10 /CEN MyProg.exe
Пример защиты приложения MyProg.exe с ключом Guardant Sign. MyProg.exe не будет закодирован (опция /CEN). Проверка наличия ключа Guardant Sign будет производиться приложением в течение всего времени его работы с интервалами в 10 минут.

Отключить кодирование инициализированных данных:/IDEN

Тип электронного ключа:
Все
Описание:
Рекомендуется ставить в случаях, когда загрузчику ОС необходимо использовать эти данные до точки входа в программу. Т. е., если защищенное приложение запускается некорректно, то можно выставить эту опцию. Следует заметить, что защищенность приложения при установке этой опции уменьшается. Т. о., по умолчанию, опция отключена, и инициализированные данные кодируются (за исключением ряда секций, которые всегда не кодируются).
Пример:
NwKey32.exe /GS3S /IDEN MyProg.exe
Инициализированные данные приложения MyProg.exe, защищенного ключом Guardant Sign, не будут закодированы.

Проверять целостность приложения:/V

Тип электронного ключа:
Все
Описание:
Защищенные Windows-приложения из-за особенностей своего строения не обладают способностью самовосстановления. Однако они при запуске проверяют свою целостность и сигнализируют о ее нарушении. В этом случае рекомендуется восстановить приложение с дистрибутива или с резервной копии.
Пример:
NwKey32.exe /V MyProg.exe
Размер защищенного приложения MyProg.exe будет контролироваться. Приложение не привязано к ключу.

Не «очищать» приложение:/NOS

Тип электронного ключа:
Все
Описание:
Обычно автозащита удаляет из Native-приложений данные, не входящие в состав сегментов. Это позволяет в большинстве случаев удалить забытую отладочную информацию и даже зачастую сэкономить на размере защищенного приложения: файл станет меньше, чем был до защиты.
Однако в некоторых случаях подобное «очищение» негативно сказывается на дальнейшей работе приложений, т. к. некоторые из них могут хранить свои важные данные нестандартным образом в произвольном месте EXE-файла. Например, в FoxPro-приложениях, интерпретируемый байт-код хранится нестандартно – не в соответствующем сегменте, а просто в конце EXE-файла.
Опция / NOS (No Strip, не очищать приложение) позволяет отменить операцию «очистки». Если защищенное Windows-приложение работает некорректно, защитите его с опцией /NOS.
Пример:
NwKey32.exe /GS3S /NOS MyProg.exe
Пример защиты Native-приложения с ключом Guardant Sign. При защите из приложения не будут удалены данные, не входящие в состав его сегментов (т. е. приложение не будет «очищено»).

Anchor
_Задать_число_таблиц
_Задать_число_таблиц
Задать число таблиц вопросов-ответов к алгоритму:/ATR=N

Тип электронного ключа:
Все
Значение параметра:
1<=N<=20
Описание:
Опция задает число независимых таблиц вопросов-ответов к аппаратному или программному алгоритму.
Если опция не указана, автозащита будет использовать 2 таблицы.
В целях повышения стойкости защиты можно установить /ATR и увеличить число таблиц. При этом увеличивается количество вопросов от защищенного приложения к электронному ключу, что дает большие гарантии в защите приложения от специальных утилит-фильтров, которые может использовать хакер.
Необходимо помнить, что большое значение /ATR ведет к существенному увеличению времени работы автозащиты.
Пример:
NwKey32.exe /GS3S /ATR=4 MyProg.exe
Пример задает 4 таблицы вопросов-ответов приложения к алгоритму GSII64 ключа Guardant Sign.

Упаковать секции исполняемого файла:/PACK

Тип электронного ключа:
Все
Описание:
Опция включает режим сжатия секций защищаемого Native-файла. Это позволяет уменьшить (при наличии такой возможности) размер приложения. Распаковка требуемых секций исполняемого файла будет происходить во время выполнения.
Пример:
NwKey32.exe /GS3S /PACK MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign и сжато.

Контролировать атрибуты страниц:/CPA

Тип электронного ключа:
Все
Описание:
При использовании опции защищенное Native-приложение будет контролировать атрибуты страниц памяти в процессе работы и восстанавливать исходные значения в случае их изменения.
Злоумышленник, исследуя защищенное приложение, может пытаться изменить атрибуты страниц памяти в своих целях. Опция

Anchor
OLE_LINK9
OLE_LINK9
/CPA препятствует этой практике.
Важно!
Категорически запрещается использовать опцию /CPA, если приложение защищено Guardant API!
Пример:
NwKey32.exe /GS3 /CPA MyProg.exe
Приложение MyProg.exe, привязанное к ключу Guardant Sign, будет контролировать атрибуты страниц памяти. Приложение не использует Guardant API.

Включить поддержку неявного связывания:/IMPLICIT_LINKING_SUPPORT

Тип электронного ключа:
Все
Описание:
Некоторые библиотеки, импортируемые защищаемым Native-приложением, могут содержать секцию .tls. При использовании таких библиотек, необходимо включать эту опцию, в противном случае могут возникать непредвиденные ошибки.
Пример:
NwKey32.exe /GS3S /IMPLICIT_LINKING_SUPPORT /PACK MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign с поддержкой неявного связывания и сжатием.

Защитить импортируемые функции:/IMPORT_HOOK[=%:L]

Тип электронного ключа:
Все
Значение параметра:
1<=%<=100, по умолчанию 30
1<=L<=100, по умолчанию 5
Описание:
Во избежание установки точек останова на начало импортируемых функций, рекомендуется включать эту опцию.
Запрещается устанавливать /IMPORT_HOOK совместно с /IMPORT_HOOK_LIST
Параметр % определяет тот процент импортируемых функций, которые будут защищены таким образом.
Параметр L определяет количество инструкций из каждой импортируемой функции, которые должны быть защищены.
Пример:
NwKey32.exe /GS3 /IMPORT_HOOK=100:10 /PACK MyProg.exe
Все импортируемые приложением MyProg.exe функции будут защищены. Также будет по возможности уменьшен размер защищенного Native-приложения.

Anchor
_Защитить_импортируемые_функции
_Защитить_импортируемые_функции
Защитить импортируемые функции по списку:/IMPORT_HOOK_LIST[=MyApp.exe_IH.piw]

Тип электронного ключа:
Все
Значение параметра:

...


Описание:
/IMPORT_HOOK_LIST позволяет выбрать из списка и защитить импортируемые функции.
Запрещается устанавливать /IMPORT_HOOK_LIST совместно с /IMPORT_HOOK
При установке опции в одной директории с защищаемым файлом должен находиться конфигурационный файл с именем типа MyApp.exe_IH.piw, в котором содержится список защищаемых/незащищаемых функций импорта.
Дизассемблирование и анализ функций импорта приложения, а также генерирование конфигурационного файла, выполняется автоматически при помощи профилировщика, который можно использовать как отдельно (NativeProfilerGUI.exe), так и вызывать из Мастера лицензирования и автозащиты.
В результате работы профилировщика создается ini-файл, в котором знаком «+» отмечены функции для защиты, а знаком «-» – те функции импорта, которые защищать не следует.
Сгеренированный Мастером конфигурационный файл можно редактировать и в дальнейшем использовать при защите функций импорта из командной строки.
Пример:
NwKey32.exe /GS3S /IMPORT_HOOK_LIST MyProg.exe
Все импортируемые приложением MyProg.exe функции, отмеченные «+» в файле MyProg.exe_IH.piw, будут защищены на ключ Guardant Sign. На момент защиты файл MyProg.exe_IH.piw, первоначально созданный профилировщиком Мастера лицензирования и автозащиты, должен находиться в одной директории с защищаемым приложением MyProg.exe.

Извлечь инструкции из тела приложения/RIP_CODE[=%[:Filename.Ext]]

Тип электронного ключа:
Все
Значение параметра:

...

Описание:
Опция разрешает утилите автозащиты извлечь ряд инструкций из тела защищаемого Native-приложения и перенести их в тело виртуальной машины.
Запрещается устанавливать /RIP_CODE совместно с /RIP_CODE_LIST
Если защищается несколько приложений, то параметр FileName.Ext должен указывать путь к папке, содержащий map-файлы приложений с именами, идентичными именам защищаемых приложений. Путь должен оканчиваться символом «\». Второй параметр обязательным не является.
Примеры:
NwKey32.exe /GS3S /RIP_CODE=10 MyProg.exe
Приложение будет привязано к Guardant Sign. Для инструкций в теле приложения существует 10-процентная вероятность переноса в виртуальную машину.
NwKey32.exe /GS3S /RIP_CODE=40(big grin):\Mypath\MyApp.map MyProg.exe
Приложение будет привязано к Guardant Sign. Для инструкций в теле приложения существует 40-процентная вероятность переноса в виртуальную машину. Используется map-файл MyApp.map.
NwKey32.exe /GS3S /RIP_CODE=50(big grin):\Mypath\ MyProg1.exe MyProg2.exe
Приложения MyProg1.exe и MyProg2.exe будут привязаны к Guardant Sign. Для инструкций в теле приложений существует 50-процентная вероятность переноса в виртуальную машину. Используются map-файлы из каталога D:\Mypath.

Anchor
_Извлечь_инструкции_из
_Извлечь_инструкции_из
Извлечь инструкции из тела приложения по списку/RIP_CODE_LIST[=MyApp.exe_RC.prc]

Тип электронного ключа:
Все
Значение параметра:

...

Описание:
Опция разрешает утилите автозащиты извлечь заранее намеченные инструкции из тела защищаемого Native-приложения и перенести их в тело виртуальной машины.
Запрещается устанавливать /RIP_CODE_LIST совместно с /RIP_CODE
При установке опции в одной директории с защищаемым файлом должен находиться конфигурационный файл с именем типа MyApp.exe_RC.prc, в котором содержится список защищаемых/незащищаемых инструкций.
Дизассемблирование и анализ инструкций приложения, а также генерирование конфигурационного файла, выполняется автоматически при помощи профилировщика, который можно использовать как отдельно – (NativeProfilerGUI.exe), так и вызывать из Мастера лицензирования и автозащиты.
Для успешной работы профилировщика требуется наличие в одной директории с защищаемым приложением его файла сопоставления (имя_файла.map), который создается при компиляции приложения
В результате работы профилировщика создается ini-файл, в котором знаком «+» отмечены инструкции для защиты, а знаком «-» – те инструкции, которые извлекать не следует.
Сгеренированный Мастером конфигурационный файл можно редактировать и в дальнейшем использовать его при защите из командной строки.
Пример:
NwKey32.exe /GS3S /RIP_CODE_LIST MyProg.exe
Приложение будет привязано к Guardant Sign. Выбранные инструкции будут перенесены в виртуальную машину, согласно списку, содержащемуся в файле MyProg.exe_RC.prc. На момент защиты файл MyProg.exe_RC.prc, первоначально созданный профилировщиком Мастера лицензирования и автозащиты, должен находиться в одной директории с защищаемым приложением MyProg.exe.

Anchor
_Проверять_цифровую_подпись
_Проверять_цифровую_подпись
Сетевые опции автозащиты

Anchor
_Выбрать_режим_лицензирования:
_Выбрать_режим_лицензирования:
Выбрать режим лицензирования:/LOGIN_MODE=H | S | P

Тип электронного ключа:

Guardant Sign Net/ Time Net/ Net III/ Net II
Описание:
Опция позволяет выбрать режим лицензирования сетевого приложения.
Важно
Подробную информацию по режимам лицензирования см. в главе Защита сетевых приложений
Установка параметра P задает режим лицензирования по процессам. В этом случае, каждый процесс (по сути, копия защищенного приложения) будет получать отдельную лицензию.
При указании параметра H (/LOGIN_MODE=H) лицензии будут выделяться на каждый создаваемый хэндл.
Так как автозащита оперирует единственным хэндлом, то в случае, если приложение не использует Guardant API, распределение по хэндлам не будет отличаться от распределения по процессам (P).
Однако при комбинации GrdAPI и автозащиты хэндлов будет уже 2 и может произойти перерасход лицензий.
При указании параметра S (/LOGIN_MODE=S) лицензии будут распределяться по рабочим станциям. Т. е. будет ограничиваться число рабочих станций, на которых одновременно запущены копии защищенного приложения.
Пример:
NwKey32.exe /GN3S /LOGIN_MODE=P MyProg.exe
Сетевое приложение MyProg.exe будет привязано к ключу Guardant Sign Net, причем лицензии будут распределяться по процессам: каждая запущенная копия приложения получит отдельную лицензии.

Anchor
_Использовать_систему_управления
_Использовать_систему_управления
Использовать систему управления лицензиями:/MN=x

Тип электронного ключа:
Guardant Sign Net/ Time Net/ Net III/ Net II
Значение параметра:
0<=x<=127
Описание:
Эта опция позволяет учитывать сетевой ресурс каждого модуля, входящего в многомодульное приложение.
Допустим, защищенный программный комплекс состоит из 4-х модулей:MyProg1.exe – Бухгалтерия, MyProg2.exe – Зарплата, MyProg3.exe – Кадры, MyProg4.exe – Канцелярия.
При помощи данной опции можно контролировать использование любого модуля. Для этого необходимо последовательно защитить каждый из модулей с опцией /MN=хх. Если будет использован номер, превышающий количество модулей в таблице лицензий, то при попытке регистрации приложения на сервере Guardant Net будет возвращен код ошибки 10 – Сетевой ресурс программы исчерпан (License counter of Guardant Net exhausted)
Важно!
Для использования системы управления лицензиями необходимо создать в памяти ключа специальное поле Таблица лицензий, в котором прописать количество модулей и ресурс лицензий каждого из них.
Защищенные в этом режиме приложения при запуске регистрируются на сервере Guardant Net и занимают определенный ресурс из таблицы лицензий
Теперь конечный пользователь сможет запускать модули защищенного приложения только на определенном разработчиком количестве рабочих станций.
Пример:
NwKey32.exe /GN3S /MN=00 MyProg1.exe
NwKey32.exe /GN3S /MN=01 MyProg2.exe
NwKey32.exe /GN3S /MN=02 MyProg3.exe
NwKey32.exe /GN3S /MN=03 MyProg4.exe
Показаны вызовы утилиты автозащиты c сетевым ключом Guardant Sign Net для примера, описанного выше по тексту.

Anchor
_Опции,_ограничения_времени
_Опции,_ограничения_времени
Опции, касающиеся ограничений работы приложения

Anchor
_Ограничить_«чистое»_время
_Ограничить_«чистое»_время
Anchor
_Вывести_предупреждение_об
_Вывести_предупреждение_об
Вывести предупреждение об оставшемся времени использования/LICENSE_TIME[=limit]

Тип электронного ключа:
Guardant Time/Net Time/Code Time
Значение параметра:
1<=limit<=365 дней, по умолчанию 14 дней
Описание:
Для приложений, защищенных современными ключами Guardant в режиме ограничения времени, можно выводить на экран предупреждение об оставшемся сроке использования.

Дополнительный параметр опции (limit) задает период до окончания заданного срока работы приложения (в днях), по достижении которого при каждом запуске будет появляться предупреждение.

Пример:
NwKey32.exe /GS3S /LICENSE_TIME MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Time. Время работы приложения будет ограничено на некий заданный период, указанный во временной зависимотси алгоритма GSII64 с номером 0, причем за 2 недели до окончания заданного срока начнет выводиться предупреждение об этом.

Ограничить число запусков приложения/DCA

Тип электронного ключа:
Локальные
Описание:
Процедура ограничения числа запусков приложения состоит из последовательных обязательных этапов:
1. Выполните автозащиту приложения с опцией /DCA и другими необходимыми опциями.
2. Запустите утилиту программирования ключа GrdUtil.exe, загрузите нужный файл образа, установите требуемое число запусков программы с помощью счетчика алгоритма GSII64, как это описано в разделе Программирование времени работы приложения. Запишите маску в ключ.
Теперь при каждом запуске приложения счетчик алгоритма будет автоматически декрементироваться на единицу.
После обнуления счетчика приложение станет неработоспособно. Для увеличения числа запусков приложения, находящегося у конечного пользователя, используйте процедуру удаленного обновления памяти ключа.
Важно!
1. В процессе автозащиты происходит множественный вызов алгоритма ключа, и если запрограммировать ключ перед автозащитой, то выставленное значение числа запусков уменьшится. По этой причине лучше придерживаться указанной выше последовательности действий при ограничении числа запусков.
2. Если в режиме ограничения числа запусков на один ключ защищается несколько приложений, причем для автозащиты используется один и тот же алгоритм, то каждое приложение будет декрементировать один и тот же счетчик алгоритма. К примеру, если программный продукт состоит из двух защищенных приложений MyProg1.exe и MyProg2.exe, и в счетчике алгоритма содержится значение 5, то пользователь, трижды запустив приложение MyProg1.exe, сможет запустить MyProg2.exe только два раза.
3. Опции /T и /DCA несовместимы, т. к. обе используют один и тот же счетчик алгоритма.
Пример:
NwKey32.exe /GS3S=3:8 /DСA MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign. Число запусков приложения будет ограничено на период, указанный в счетчике алгоритма GSII64 с номером 3.

Anchor
_Вывести_предупреждение_об_1
_Вывести_предупреждение_об_1
Вывести предупреждение об оставшемся числе запусков/LICENSE_COUNTER[=limit]

Тип электронного ключа:
Современные, начиная с Guardant Sign
Значение параметра:
1<=limit<=1000, по умолчанию 10
Описание:
Для приложений, защищенных современными ключами Guardant в режиме ограничения количества запусков, можно выводить на экран предупреждение об оставшемся числе запусков.

Необязательный параметр опции (limit) задает число оставшихся запусков приложения, по достижении которого при каждом старте программы будет выводиться предупреждение.
Пример:
NwKey32.exe /GS3S /DСA /LICENSE_COUNTER MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign и ограничено по числу запусков. За 10 запусков до окончания заданного количества начнет выводиться предупреждение об этом.

Anchor
_Выдать_ссылку_на
_Выдать_ссылку_на
Выдать ссылку на сайт разработчика приложения/LICENSE_URL=string

Тип электронного ключа:
Современные, начиная с Guardant Sign
Значение параметра:
Сообщение разработчика, как правило, адрес сайта
Описание:
Для приложений, защищенных современными ключами Guardant в режимах ограничения времени работы или количества запусков, можно выдавать ссылку на сайт разработчика приложения, где пользователь может получить информацию об условиях продления работы программы.
Опция используется только совместно с /LICENSE_COUNTER или /LICENSE_TIME. Ссылка на сайт задается при помощи обязательного параметра string.
Вместе с появлением предупреждения об ограничении работы приложения на экран будет выводиться предложение посетить сайт разработчиков:
В случае согласия пользователя (нажатие на кнопку [Да]), будет запущен браузер и открыт указанный при защите сайт.
Пример:
NwKey32.exe /GS3S /DСA /LICENSE_COUNTER /LICENSE_URL= www.guardant.ru MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign и ограничено по числу запусков. За 10 запусков до окончания заданного количества начнет выводиться предупреждение об этом, а также предложение посетить сайт разработчиков.

Сервисные опции автозащиты

Anchor
_Toc463859269
_Toc463859269
Anchor
_Toc493314513
_Toc493314513
Anchor
_Задать_собственные_сообщения
_Задать_собственные_сообщения
Задать собственные сообщения вакцины:/MSG=[путь]имя_файла

Тип электронного ключа:
Все
Описание:
Если при запуске защищенного приложения происходит какая-либо ошибка, вакцина выдает соответствующее сообщение, и приложение прекращает работу.
Сообщения при защите ПО берутся из файла .MSG и вписываются в вакцину. По умолчанию используется файл со стандартными сообщениями <имя_утилиты_защиты>.MSG, находящийся в каталоге, который содержит соответствующую утилиту защиты.
Файл .MSG представляет собой обычный текстовый файл, состоящий из 16-сообщений, которые может выдавать вакцина при запуске и работе защищенной программы (см. содержимое файла NwKey32.msg).
Можно задавать свои сообщения для вакцины. Для этого нужно отредактировать умолчательный файл. Каждое новое сообщение надо писать в отдельной строке, одно сообщение может состоять только из одной строки, пустые строки в файле .MSG недопустимы.
При защите необходимо указать имя нового файла с сообщениями и, если это нужно, путь к нему в параметре /MSG. Если путь к файлу не указан, то утилита будет искать файл NwKey32.msg в текущем каталоге.
Примеры:
NwKey32.exe /GS3S /MSG=с:\mydir\MyMes1.msg MyProg.exe
Nwkey32.exe /GC /MSG=MyMes2.msg MyProg.exe
В первом случае сообщения вакцины будут считаны из файла MyMes1.msg, находящегося в C:\MyDir, а во втором случае – из файла MyMes2.msg, находящегося в каталоге утилитой NwKey32.exe.

Показать заставку при старте защищенного приложения:/SPLASH[=FileName.bmp]

Тип электронного ключа:
Все
Значение параметра:
Графический файл формата bmp
Описание:
При старте защищенного приложения в некоторых случаях может наблюдаться небольшая задержка. Это связано с тем, что автозащита выполняет необходимые проверки и преобразования защищенного файла. Чтобы пользователь не был введен в заблуждение в ожидании старта приложения, можно в момент запуска выводить специальную заставку – стандартную или собственную.
Если опция указана без дополнительного параметра, то будет выведена стандартная заставка из ресурсов внешней вакцины GrdVkc32.dll.
Пример:
NwKey32.exe /GS3S /SPLASH=MyPicture.bmp MyProg.exe
При старте приложения MyProg.exe, защищенного на ключ Guardant Sign, будет выводиться заставка из файла MyPicture.bmp.

Anchor
_Toc463859272
_Toc463859272
Anchor
_Toc493314519
_Toc493314519
Anchor
_Задать_выходной_путь:
_Задать_выходной_путь:
Задать выходной путь:/OUT=путь

Тип электронного ключа:
Все
Описание:
По умолчанию защищенные файлы помещаются в тот же каталог, в котором находятся исходные файлы (последние при этом переименовываются в файлы с расширением .OLD). При помощи опции /OUT можно задать иной путь, по которому утилита защиты будет помещать защищенные файлы.
Примеры:
NwKey32.exe /GS3S /T=2 /OUT=c:\protect MyProg.exe
NwKey32.exe /GC /T=2 /OUT=c:\protect MyProg.exe
В обоих случаях приложение MyProg.exe при защите будет скопировано в каталог C:\Protect.

Anchor
_Toc463859273
_Toc463859273
Anchor
_Toc493314521
_Toc493314521
Anchor
_Запретить_вывод_сообщений
_Запретить_вывод_сообщений
Запретить вывод сообщений NwKey32.exe в процессе защиты:/Q

Тип электронного ключа:
Все
Описание:
Обычно в процессе работы утилита защиты выводит на экран различные сообщения, которые позволяют ориентироваться в ходе выполнения процесса защиты: информация, считанная из ключа, режимы защиты программ и данных, сообщения об ошибках и т. п.
Однако утилита может быть запущена из внешней программы, имеющей оконный интерфейс. В этом случае сообщения утилиты могут испортить информацию, выдаваемую внешней программой.
Для запрета вывода сообщений на экран надо запустить утилиту защиты с опцией /Q.
В случае возникновения ошибки утилита прервет сеанс защиты,а тип ошибки можно определить по коду возврата.
Пример:
NwKey32.exe /GS3S /Q MyProg.exe

Anchor
_Запретить_вывод_сообщений_1
_Запретить_вывод_сообщений_1
Запретить вывод сообщений защищенного приложения:/SILENT

Тип электронного ключа:
Все
Описание:
В некоторых случаях защищенное приложение не должно выводить на экран никаких сообщений (например, при работе сервисов Windows).
Для запрета вывода сообщений защищенного приложения на экран предназначена опция /SILENT.
Пример:
NwKey32.exe /GS3S /SILENT MyProg.exe

Anchor
_Toc463859274
_Toc463859274
Anchor
_Toc493314523
_Toc493314523
Anchor
_Toc495289573
_Toc495289573
Anchor
_Toc20393251
_Toc20393251
Anchor
_Toc101339727
_Toc101339727
Anchor
_Toc326165002
_Toc326165002
Задание списка файлов для защиты

Утилита защиты может за один сеанс работы защитить несколько файлов. Список файлов для защиты должен задаваться в командной строке после указания всех опций защиты, при этом файлы должны разделяться пробелами, например:
NwKey32.exe /GN3S /PACK /V /Q MyProg1.exe MyProg2.exe MyProg3.exe
В этом случае утилита защитит файлы MyProg1.exe, MyProg2.exe и MyProg3.exe, находящиеся в текущем каталоге сжимая при этом их секции и выполняя проверку целостности. Также будут отключены сообщения утилиты автозащиты.
Список файлов может содержать и полные пути к ним, а также символы "{}" и "?{*}", например:
NwKey32.exe /GS3S C:\MyDir*.exe
NwKey32.exe /GN3S MyExec.exe«C:\My Distrib*.exe» C:\Delphi_Projects*.exe
В первом случае утилита защитит все .EXE-файлы в текущем каталоге, а во втором - файл MyExec.exe и все исполняемые файлы в каталогах C:\My Distrib и C:\delphi_projects. Обратите внимание на то, что вы обязательно должны указывать расширения файлов, составляющих список (исключения составляют файлы данных без расширений), либо маску, заданную символами "{}" или "?{*}".

Anchor
_Toc463859275
_Toc463859275
Anchor
_Toc493314524
_Toc493314524
Anchor
_Toc495289574
_Toc495289574
Anchor
_Toc20393252
_Toc20393252
Anchor
_Toc101339728
_Toc101339728
Anchor
_Toc326165003
_Toc326165003
Использование спискового файла .FIL

Может возникнуть ситуация, когда из-за обилия параметров и (или) файлов будет превышен максимально допустимый размер командной строки. Чтобы избежать этого, можно использовать так называемый списковый файл.
Списковый файл – это обычный текстовый файл, имеющий расширение .FIL и содержащий список файлов для защиты (кодирования). Каждый файл, составляющий список, должен быть записан в отдельной строке, при необходимости можно указывать полные пути и символы "{}" и "?{*}" в файлах. Пример содержимого спискового файла:
"MyProg.exe"
c:\new_project*.exe
c:\project-buh*.exe
c:\new_base\Module*.exe
Чтобы указать утилите, что она должна взять список файлов из спискового файла, его имя нужно вписать в командной строке после указания всех опций защиты (т. е. вместо списка файлов, рассмотренного в предыдущем пункте).
Чтобы утилита смогла отличить списковый файл от обычного, этот параметр командной строки должен начинаться с символа "@":
NwKey32.exe /GS3S @MyFil.fil
NwKey32.exe /GC /IMPLICIT_LINKING_SUPPORT @c:\MyDir\MyFil.fil
В первом случае файлы для защиты будут взяты из спискового файла MyFil.fil, находящегося в текущем каталоге. Во втором случае утилита будет использовать списковый файл MyFil.fil, находящийся в каталоге C:\MyDir.
В командной строке можно задать несколько списковых файлов. Это удобно для группировки защищаемых файлов по типам:
NwKey32.exe /GN3S /GS3S @Sklad_Progs.fil @Others _Utils.fil
В этом случае удобно имена всех исполняемых файлов складского приложения, подлежащих защите, поместить в Sklad_Progs.fil, а имена всех прочих утилит, входящих в поставку – в Others_Utils.fil.