You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

003 Опции автоматической защиты

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

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

Проверять 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).

Проверять серийный номер ключа:/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).

Проверять версию защищенного приложения:/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.

Проверять маску:/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 для примера, описанного выше по тексту.

Проверять номер программы:/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 для примера, описанного выше по тексту.

Не использовать аппаратные алгоритмы:/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.
Пример:
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 будет опрашивать ключ в течение всего времени работы, с интервалами в пять минут.

Выводить сообщение об отсутствии ключа заданное число раз:/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 минуту.

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

Отменить кодирование приложения:/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. При защите из приложения не будут удалены данные, не входящие в состав его сегментов (т. е. приложение не будет «очищено»).

Задать число таблиц вопросов-ответов к алгоритму:/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-приложение будет контролировать атрибуты страниц памяти в процессе работы и восстанавливать исходные значения в случае их изменения.
Злоумышленник, исследуя защищенное приложение, может пытаться изменить атрибуты страниц памяти в своих целях. Опция /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-приложения.

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

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

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]]

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

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(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.

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

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

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.

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

Выбрать режим лицензирования:/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, причем лицензии будут распределяться по процессам: каждая запущенная копия приложения получит отдельную лицензии.

Использовать систему управления лицензиями:/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 для примера, описанного выше по тексту.

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

Вывести предупреждение об оставшемся времени использования/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.

Вывести предупреждение об оставшемся числе запусков/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 запусков до окончания заданного количества начнет выводиться предупреждение об этом.

Выдать ссылку на сайт разработчика приложения/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 запусков до окончания заданного количества начнет выводиться предупреждение об этом, а также предложение посетить сайт разработчиков.

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

Задать собственные сообщения вакцины:/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.

Задать выходной путь:/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.

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

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

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

Тип электронного ключа:
Все
Описание:
В некоторых случаях защищенное приложение не должно выводить на экран никаких сообщений (например, при работе сервисов 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

Может возникнуть ситуация, когда из-за обилия параметров и (или) файлов будет превышен максимально допустимый размер командной строки. Чтобы избежать этого, можно использовать так называемый списковый файл.
Списковый файл – это обычный текстовый файл, имеющий расширение .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.

  • No labels