Защита исполняемых файлов Native-приложений (т. е. EXE-файлов PE-формата) производится строчной утилитой NwKey32.exe.
Утилиту автозащиты с выбранными опциями можно вызывать из командной строки или BAT-файла.
Утилита автоматической защиты внедряет в код приложения набор команд (программный модуль), с помощью которых происходит загрузка внешней вакцины. Также утилита выполняет необходимые преобразования защищаемого приложения в соответствии с выбранным режимом защиты.
Для защиты исполняемого Native-приложения необходимо наличие следующих файлов в одной директории:
Файл | Описание |
NwKey32.exe | Строчная утилита автоматической защиты |
GrdVkc32.dll | Внешняя вакцина |
NvCodes.dat | Служебный файл с информацией о кодах доступа к ключу |
NwKey32.msg | Файл с сообщениями об ошибках |
ImportWalker.dll | Реализация защиты таблицы импорта от восстановления(см. опцию /IMPORT_HOOK) |
ProfilerManager.dll | Библиотека Native-профайлера |
Важно!
1. Если файл NvCodes.dat отсутствует, приложения будут защищаться с демо-кодами.
2. Файл NvCodes.dat необходим только для утилиты автоматической защиты и программирования ключей. Сами защищенные приложения не нуждаются в этом файле. Ни в коем случае не передавайте его своим клиентам!
Для работы защищенного приложения необходимо наличие следующих файлов в одной директории:
Файл | Описание |
GrdVkc32.dll | Внешняя вакцина |
Перед началом защиты подсоедините к компьютеру электронный ключ нужного типа.
Формат вызова утилиты автоматической защиты:
NwKey32.exe [опции] [путь]список_файлов
или
NwKey32.exe [опции] @[путь]filename.fil
Укажите в командной строке необходимые для защиты параметры и нажмите на кнопку [Enter]. Утилита приступит к защите, выдавая по ходу работы необходимые сообщения:
Утилита завершит защиту текущего файла и закончит работу.
Процесс защиты можно прервать в любой момент, нажав Esc.
Утилита 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 | Счетчик инсталляций истек |
Опции автоматической защиты Native-приложений сгруппированы в таблицы по типам. В каждой таблице, наряду с названием опции и ее кратким описанием, указано, с какими ключами семейства Guardant она используется.
Опция | Описание | Модель |
/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 |
Опция | Описание | Модель |
---|---|---|
/UI[=[0x]...] | Проверять уникальность ID электронного ключа (используется заданное значение, либо значение из поля ID ключа) | Все |
/US[=[0x]...] | Проверять уникальность серийного номера электронного ключа (используется заданное значение, либо значение из поля серийного номера ключа) | Все |
/UV[=[0x]...] | Проверять версию (используется заданное значение, либо значение из поля версии ключа) | Все |
/UM[=[0x]...] | Проверять маску (используется заданное значение, либо значение из поля образа ключа) | Все |
/UN[=[0x]...] | Проверять номер программы (используется заданное значение, либо значение из поля номера программы ключа) | Все |
/NOA | Не использовать аппаратные алгоритмы | Все |
/T=xx | Проверять наличие электронного ключа периодически,через заданные интервалы времени | Все |
/EXIT_DELAY | Отложить завершение приложения при отсутствии ключа | Все |
/USB_DONGLE_CONTROL | Контролировать извлечение USB-ключа из порта компьютера | Все с USB-интерфейсом |
/RC[=xx] | Если ключ не найден, проверять его наличие и выводить сообщение об отсутствии ключа заданное число раз | Все |
Опция | Описание | Модель |
---|---|---|
/CEN | Не кодировать загружаемую часть приложения | Все |
/IDEN | Отключить кодирование инициализированных данных | Все |
/V | Проверять целостность приложения | Все |
/NOS | Не «очищать» приложение | Все |
/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* | Выбрать режим лицензирования: по хэндлам (H), рабочим станциям (S) или процессам (P) | Сетевые ключи |
/MN=xx | Использовать систему управления лицензиями | Сетевые ключи |
Опция | Описание | Тип ключа |
---|---|---|
/MSG=[путь].msg* | Брать сообщения вакцины из файла *.MSG(имя_утилиты.MSG – по умолчанию) | Все |
/SPLASH[=Filename.bmp] | Показать заставку при старте защищенного приложения | Все |
/OUT=D:\PATH | Задать путь, по которому будут скопированы защищенные файлы (по умолчанию это каталог с исходными файлами) | Все |
/Q | Запретить вывод сообщений утилиты защиты | Все |
/SILENT | Запретить вывод сообщений защищенного приложения | Все |
Опции этой группы позволяют задать модель электронного ключа Guardant, к которой будет «привязано» защищенное приложение.
Описание:
Указание модели ключей, к которым будет привязано приложение:
GS3S | GN3S | GC | GS3 | GN3 | GS2 | GN2 | GSP |
Time/Sign | Time/Sign Net | Code | Stealth III | Net III | Stealth II | Net II | SP |
Дополнительные параметры:
N | Номер симметричного алгоритма шифрования GSII64 или AES, который будет использован при автозащите. Для Guardant Code обязательный параметр |
L | Длина вопроса алгоритму, 8 <= L<= 256, где L - число, кратное 8 |
ID | ID электронного ключа, к-й будет использован при установке защиты |
S | Номер алгоритма электронной цифровой подписи ECC160 |
FileName.bin | Файл, содержащий открытый ключ ЭЦП для алгоритма ECC160.По умолчанию - PUBKEY_08.BIN, расположенный в текущей директории |
Если при защите использовались опции этой группы, запуск защищенного приложения будет возможен только при наличии электронного ключа, т. к. приложение при защите настраивается на код доступа и привязывается к ключу заданного типа, подсоединенному к компьютеру на момент защиты.
Можно задавать одновременно несколько опций из этой группы – в любом сочетании. При этом защищенное приложение будет запущено, если хотя бы один из заданных типов электронных ключей Guardant будет подсоединен к компьютеру.
1. Нотация
Дополнительные параметры указываются через символ-раздели-тель – двоеточие. Необязательные параметры можно пропускать, при этом если за пропущенным следуют другие параметры, то символ : требуется печатать.
Пример:
/GS3S=:::2
Привязка к Guardant Sign с умолчательным алгоритмом шифрования и алгоритмом типа ECC160 под номером 2 (с открытым ключом по умолчанию); ID не указывается.
2. Алгоритм шифрования
При задании дополнительных параметров N и L в процессе защиты будут использоваться симметричные алгоритмы шифрования GSII64 или AES с указанным номером и длиной вопроса.
Если параметр N не задан, то процесс защиты будет выполнен с алгоритмом по умолчанию.
Параметры алгоритма по умолчанию зависят от типа ключа:
Модель | Умолчательные параметры симметричного алгоритма шифрования |
---|---|
Sign/Time | GS3S=0:8 |
Sign/Time Net | GN3S=0:8 |
Code | Умолчательный алгоритм отсутствует. Параметр N обязателен |
Stealth III | GS3=0:8 |
Net III | GN3=0:8 |
Stealth II | GS2=4:8 |
Net II | GN2=4:8 |
SP | GSP=3:8 |
Если алгоритм по умолчанию для указанного типа ключа отсутствует в прошивке ключа, будет выдана соответствующая ошибка.
Если параметр L не задан, алгоритм будет вызван с длиной вопроса по умолчанию. При использовании неверного значения L будет выдана соответствующая ошибка.
3. Выбор ключа для защиты из нескольких подсоединненых к портам
Если к компьютеру подсоединены несколько ключей одной модели, то чтобы выбрать для проведения защиты определенный ключ, следует указать его ID при помощи одноименного параметра. ID задается в десятичном (ID=1234), или в шестнадцатеричном (0xABCD) виде.
4. Проверка цифровой подписи
При установленном параметре S защищенное приложение будет автоматически, наряду с регулярными вызовами GrdTransform, вызывать последовательность функций GrdSign – GrdVerifySign для выработки и проверки ЭЦП случайного числа.
Модель | Умолчательные параметры алгоритма ЭЦП |
---|---|
Sign/Time | GS3S=:::8:PUBKEY_08.BIN |
Sign/TimeNet | GN3S=:::8:PUBKEY_08.BIN |
Code | - |
Stealth III | Не поддерживается |
Net III | Не поддерживается |
Stealth II | Не поддерживается |
Net II | Не поддерживается |
SP | GSP=:::2:PUBKEY_08.BIN |
Если при работе с алгоритмом ECC160 (параметр S установлен) не задан параметр FileName.bin, то будет использован умолчательный открытый ключ PUBKEY_08.BIN из текущего каталога.
Важно!
1. В ключах, которые передаются клиентам вместе с защищенным приложением, должны быть созданы алгоритмы с таким же номером, определителем и длиной запроса, какие были указаны при защите.
2. Если опции этой группы не использовались, приложение не будет привязано к электронному ключу (т. е. оно будет запускаться и в случае, когда ни один из электронных ключей не подсоединен к компьютеру). Однако оно будет защищено от отладчиков. Вы можете использовать эту возможность, например, для защиты приложений, которые без электронного ключа работают в демо-режиме.
Пример:
NwKey32.exe /GS3S=5:::2 /GS3::12345678 MyProg.exe
Защищенное Win32-приложение MyProg.exe будет запускаться в случае, если к компьютеру подсоединен ключ Guardant Sign с симметричным алгоритмом #5 (длина вопроса по умолчанию) и ECC-алгоритмом #2 (открытый ключ по умолчанию) или Guardant Stealth III с умолчательными параметрами и ID=12345678.
Причем для ключа Guardant Sign в процессе работы будет вырабатываться и проверяться цифровая подпись случайного числа, генерируемого вакциной.
Опции этой группы позволяют настроить защищаемое приложение на параметры электронного ключа, с которым оно должно будет работать (задать дополнительные условия поиска ключа), а также задать особенности поведения защиты при работе этого приложения.
Опции можно использовать совместно в любой комбинации, а также с опциями из других групп, за исключением случаев, особо оговоренных ниже.
Важно!
Если ни одна из опций установки типа ключа не задана, то все опции из рассматриваемой группы будут недоступны (их использование бессмысленно, т. к. приложение вообще не будет привязано к какому-либо электронному ключу).
Тип электронного ключа:
Все
Описание:
Эта опция служит для «привязки» приложения к уникальному параметру ключа 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).
Тип электронного ключа:
Все
Значение параметра:
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).
Тип электронного ключа:
Все
Значение параметра:
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.
Тип электронного ключа:
Все
Значение параметра:
Единица, степени числа 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 для примера, описанного выше по тексту.
Тип электронного ключа:
Все
Значение параметра:
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 для примера, описанного выше по тексту.
Тип электронного ключа:
Все
Описание:
По умолчанию приложения, защищенные автозащитой, активно используют аппаратный алгоритм электронного ключа. Это значительно повышает уровень стойкости автоматической защиты, т. к. вводит в нее элемент преобразования данных.
Если же в памяти ключа по каким-то причинам нет алгоритмов GSII64 (для Guardant Code – AES), например, когда она используется для хранения других данных, автоматическая защита будет работать корректно лишь в том случае, когда она станет не обращаться к аппаратному алгоритму в процессе защиты.
Чтобы отказаться от использования аппаратного алгоритма для автоматической защиты, нужно запустить утилиту NwKey32.exe с опцией /NOA.
Пример:
NwKey32.exe /GS3S /NOA MyProg.exe
Защищенное таким образом приложение не будет использовать аппаратные алгоритмы GSII64 при проверке ключа Guardant Sign.
Тип электронного ключа:
Локальные USB-ключи
Описание:
Опция позволяет защищенному приложению отслеживать присутствие локального USB-ключа Guardant в порту компьютера. Если в процессе работы приложения ключ извлекается из порта, то выводится соответствующее сообщение, и приложение реагирует, как это указано в описании опции /RC.
Пример:
NwKey32.exe /GS3S /USB_DONGLE_CONTROL MyProg.exe
Приложение MyProg.exe привязано к ключу Guardant Sign, причем происходит контроль присутствия ключа в порту. Если ключ вынуть во время работы приложения, то будет выдано сообщение типа «Не найден электронный ключ».
Тип электронного ключа:
Все
Значение параметра:
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 будет опрашивать ключ в течение всего времени работы, с интервалами в пять минут.
Тип электронного ключа:
Все
Значение параметра:
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 раз выводить сообщение.
Тип электронного ключа:
Все
Значение параметра:
1<=x<=600 секунд, по умолчанию 120
Описание:
Если в процессе работы защищенного приложения ключ не будет обнаружен, то, при использовании данной опции, приложение выведет на экран сообщение о принудительном завершении работы приложения через заданное время.
Это даст возможность пользователю сохранить наработанные данные и корректно завершить работу с приложением, например, в случае выходе ключа из строя.
Пример:
Nwkey32.exe /GS3 /EXIT_DELAY=60 MyProg.exe
При отсутствии ключа Guardant Sign приложение MyProg.exe выведет сообщение о завершении работы приложения через 1 минуту.
Тип электронного ключа:
Все
Описание:
Данная опция отключает кодирование секций защищаемого приложения.
Пример:
NwKey32.exe /GS3S /T=10 /CEN MyProg.exe
Пример защиты приложения MyProg.exe с ключом Guardant Sign. MyProg.exe не будет закодирован (опция /CEN). Проверка наличия ключа Guardant Sign будет производиться приложением в течение всего времени его работы с интервалами в 10 минут.
Тип электронного ключа:
Все
Описание:
Рекомендуется ставить в случаях, когда загрузчику ОС необходимо использовать эти данные до точки входа в программу. Т. е., если защищенное приложение запускается некорректно, то можно выставить эту опцию. Следует заметить, что защищенность приложения при установке этой опции уменьшается. Т. о., по умолчанию, опция отключена, и инициализированные данные кодируются (за исключением ряда секций, которые всегда не кодируются).
Пример:
NwKey32.exe /GS3S /IDEN MyProg.exe
Инициализированные данные приложения MyProg.exe, защищенного ключом Guardant Sign, не будут закодированы.
Тип электронного ключа:
Все
Описание:
Защищенные Windows-приложения из-за особенностей своего строения не обладают способностью самовосстановления. Однако они при запуске проверяют свою целостность и сигнализируют о ее нарушении. В этом случае рекомендуется восстановить приложение с дистрибутива или с резервной копии.
Пример:
NwKey32.exe /V MyProg.exe
Размер защищенного приложения MyProg.exe будет контролироваться. Приложение не привязано к ключу.
Тип электронного ключа:
Все
Описание:
Обычно автозащита удаляет из Native-приложений данные, не входящие в состав сегментов. Это позволяет в большинстве случаев удалить забытую отладочную информацию и даже зачастую сэкономить на размере защищенного приложения: файл станет меньше, чем был до защиты.
Однако в некоторых случаях подобное «очищение» негативно сказывается на дальнейшей работе приложений, т. к. некоторые из них могут хранить свои важные данные нестандартным образом в произвольном месте EXE-файла. Например, в FoxPro-приложениях, интерпретируемый байт-код хранится нестандартно – не в соответствующем сегменте, а просто в конце EXE-файла.
Опция / NOS (No Strip, не очищать приложение) позволяет отменить операцию «очистки». Если защищенное Windows-приложение работает некорректно, защитите его с опцией /NOS.
Пример:
NwKey32.exe /GS3S /NOS MyProg.exe
Пример защиты Native-приложения с ключом Guardant Sign. При защите из приложения не будут удалены данные, не входящие в состав его сегментов (т. е. приложение не будет «очищено»).
Тип электронного ключа:
Все
Значение параметра:
1<=N<=20
Описание:
Опция задает число независимых таблиц вопросов-ответов к аппаратному или программному алгоритму.
Если опция не указана, автозащита будет использовать 2 таблицы.
В целях повышения стойкости защиты можно установить /ATR и увеличить число таблиц. При этом увеличивается количество вопросов от защищенного приложения к электронному ключу, что дает большие гарантии в защите приложения от специальных утилит-фильтров, которые может использовать хакер.
Необходимо помнить, что большое значение /ATR ведет к существенному увеличению времени работы автозащиты.
Пример:
NwKey32.exe /GS3S /ATR=4 MyProg.exe
Пример задает 4 таблицы вопросов-ответов приложения к алгоритму GSII64 ключа Guardant Sign.
Тип электронного ключа:
Все
Описание:
Опция включает режим сжатия секций защищаемого Native-файла. Это позволяет уменьшить (при наличии такой возможности) размер приложения. Распаковка требуемых секций исполняемого файла будет происходить во время выполнения.
Пример:
NwKey32.exe /GS3S /PACK MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign и сжато.
Тип электронного ключа:
Все
Описание:
При использовании опции защищенное Native-приложение будет контролировать атрибуты страниц памяти в процессе работы и восстанавливать исходные значения в случае их изменения.
Злоумышленник, исследуя защищенное приложение, может пытаться изменить атрибуты страниц памяти в своих целях. Опция /CPA препятствует этой практике.
Важно!
Категорически запрещается использовать опцию /CPA, если приложение защищено Guardant API!
Пример:
NwKey32.exe /GS3 /CPA MyProg.exe
Приложение MyProg.exe, привязанное к ключу Guardant Sign, будет контролировать атрибуты страниц памяти. Приложение не использует Guardant API.
Тип электронного ключа:
Все
Описание:
Некоторые библиотеки, импортируемые защищаемым Native-приложением, могут содержать секцию .tls. При использовании таких библиотек, необходимо включать эту опцию, в противном случае могут возникать непредвиденные ошибки.
Пример:
NwKey32.exe /GS3S /IMPLICIT_LINKING_SUPPORT /PACK MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign с поддержкой неявного связывания и сжатием.
Тип электронного ключа:
Все
Значение параметра:
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-приложения.
Тип электронного ключа:
Все
Значение параметра:
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.
Тип электронного ключа:
Все
Значение параметра:
1<=%<=100 | Вероятность переноса инструкции в тело виртуальной машины, по умолчанию 50 |
FileName.Ext | Путь к map-файлу. Необязательный параметр |
Описание:
Опция разрешает утилите автозащиты извлечь ряд инструкций из тела защищаемого 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:\Mypath\MyApp.map MyProg.exe
Приложение будет привязано к Guardant Sign. Для инструкций в теле приложения существует 40-процентная вероятность переноса в виртуальную машину. Используется map-файл MyApp.map.
NwKey32.exe /GS3S /RIP_CODE=50:\Mypath\ MyProg1.exe MyProg2.exe
Приложения MyProg1.exe и MyProg2.exe будут привязаны к Guardant Sign. Для инструкций в теле приложений существует 50-процентная вероятность переноса в виртуальную машину. Используются map-файлы из каталога D:\Mypath.
Тип электронного ключа:
Все
Значение параметра:
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.
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, причем лицензии будут распределяться по процессам: каждая запущенная копия приложения получит отдельную лицензии.
Тип электронного ключа:
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 для примера, описанного выше по тексту.
Тип электронного ключа:
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 недели до окончания заданного срока начнет выводиться предупреждение об этом.
Тип электронного ключа:
Локальные
Описание:
Процедура ограничения числа запусков приложения состоит из последовательных обязательных этапов:
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.
Тип электронного ключа:
Современные, начиная с Guardant Sign
Значение параметра:
1<=limit<=1000, по умолчанию 10
Описание:
Для приложений, защищенных современными ключами Guardant в режиме ограничения количества запусков, можно выводить на экран предупреждение об оставшемся числе запусков.
Необязательный параметр опции (limit) задает число оставшихся запусков приложения, по достижении которого при каждом старте программы будет выводиться предупреждение.
Пример:
NwKey32.exe /GS3S /DСA /LICENSE_COUNTER MyProg.exe
Приложение MyProg.exe будет привязано к электронному ключу Guardant Sign и ограничено по числу запусков. За 10 запусков до окончания заданного количества начнет выводиться предупреждение об этом.
Тип электронного ключа:
Современные, начиная с 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 запусков до окончания заданного количества начнет выводиться предупреждение об этом, а также предложение посетить сайт разработчиков.
Тип электронного ключа:
Все
Описание:
Если при запуске защищенного приложения происходит какая-либо ошибка, вакцина выдает соответствующее сообщение, и приложение прекращает работу.
Сообщения при защите ПО берутся из файла .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.
Тип электронного ключа:
Все
Значение параметра:
Графический файл формата bmp
Описание:
При старте защищенного приложения в некоторых случаях может наблюдаться небольшая задержка. Это связано с тем, что автозащита выполняет необходимые проверки и преобразования защищенного файла. Чтобы пользователь не был введен в заблуждение в ожидании старта приложения, можно в момент запуска выводить специальную заставку – стандартную или собственную.
Если опция указана без дополнительного параметра, то будет выведена стандартная заставка из ресурсов внешней вакцины GrdVkc32.dll.
Пример:
NwKey32.exe /GS3S /SPLASH=MyPicture.bmp MyProg.exe
При старте приложения MyProg.exe, защищенного на ключ Guardant Sign, будет выводиться заставка из файла MyPicture.bmp.
Тип электронного ключа:
Все
Описание:
По умолчанию защищенные файлы помещаются в тот же каталог, в котором находятся исходные файлы (последние при этом переименовываются в файлы с расширением .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.
Тип электронного ключа:
Все
Описание:
Обычно в процессе работы утилита защиты выводит на экран различные сообщения, которые позволяют ориентироваться в ходе выполнения процесса защиты: информация, считанная из ключа, режимы защиты программ и данных, сообщения об ошибках и т. п.
Однако утилита может быть запущена из внешней программы, имеющей оконный интерфейс. В этом случае сообщения утилиты могут испортить информацию, выдаваемую внешней программой.
Для запрета вывода сообщений на экран надо запустить утилиту защиты с опцией /Q.
В случае возникновения ошибки утилита прервет сеанс защиты,а тип ошибки можно определить по коду возврата.
Пример:
NwKey32.exe /GS3S /Q MyProg.exe
Тип электронного ключа:
Все
Описание:
В некоторых случаях защищенное приложение не должно выводить на экран никаких сообщений (например, при работе сервисов Windows).
Для запрета вывода сообщений защищенного приложения на экран предназначена опция /SILENT.
Пример:
NwKey32.exe /GS3S /SILENT MyProg.exe
Утилита защиты может за один сеанс работы защитить несколько файлов. Список файлов для защиты должен задаваться в командной строке после указания всех опций защиты, при этом файлы должны разделяться пробелами, например:
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. Обратите внимание на то, что вы обязательно должны указывать расширения файлов, составляющих список (исключения составляют файлы данных без расширений), либо маску, заданную символами "{}" или "?{*}".
Может возникнуть ситуация, когда из-за обилия параметров и (или) файлов будет превышен максимально допустимый размер командной строки. Чтобы избежать этого, можно использовать так называемый списковый файл.
Списковый файл – это обычный текстовый файл, имеющий расширение .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.