...
Все современные модели локальных ключей Guardant позволяют лицензировать работу приложения, ограничивая количество его запусков. Это удобная технология, как для создания демо-версий, так и в других случаях.
Чтобы ограничить число запусков приложения:
1. Запустите утилиту программирования ключа GrdUtil.exe, загрузите нужный файл образа.
2. Выберите аппаратный алгоритм, который будет использоваться для защиты. Установите нужное число запусков программы с помощью 4-хбайтового счетчика алгоритма, как это описано ниже.
Важно! Автозащита
1. Для ограничения числа запусков приложения можно использовать только алгоритмы типа GSII64 или AES128.
2. В процессе автозащиты происходит множественный вызов аппаратного алгоритма, и если запрограммировать ключ до автозащиты, то указанное заранее значение счетчика уменьшится. По этой причине лучше предварительно защитить исполняемый файл с помощью Мастера автозащиты или строчной утилиты, и только потом прописать в ключ нужное значение счетчика.
3. Запишите маску в ключ.
Теперь при каждом старте приложения счетчик алгоритма автоматически будет декрементироваться на единицу – в случае использования автозащиты, либо, в случае использования Guardant API, декрементировать счетчик нужно самостоятельно, производя вызов алгоритма.
После того, как значение счетчика обнулится, приложение перестанет запускаться.
...
1. Выберите в маске аппаратный алгоритм, который будет использоваться для защиты, и выполните команду меню Редактировать | Свойства поля.
2. В появившемся диалоге Свойства поля, вкладка Свойства алгоритма/ защищенной ячейки, установите флаг С уменьшением счетчика и задайте значение счетчика в появившемся поле:
3. Нажмите на кнопку [Применить] и закройте диалог.
Запишите маску в ключ.
...
Электронные ключи Guardant Time/ Net Time / Code Time оснащены часами реального времени и позволяют ограничивать астрономическое время работы защищенного приложения. Anchor
Смысл технологии ограничения времени заключается в том, что работоспособность алгоритма зависит от таймера (RTC), встроенного в ключ.
С помощью ключей с часами реального времени можно реализовывать различные лицензионные политики, влияющие на время работы защищенного приложения:
- Приложение сможет работать только после активации алгоритма, которая произойдет по наступлению указанной даты
- Приложение перестанет работать после деактивации алгоритма, которая произойдет по наступлению указанной даты
- Срок работы приложения ограничен заданным периодом работоспособности, т. н. «временем жизни», алгоритма. Алгоритм активируется при первом запуске приложения и деактивируется по истечению «времени жизни»
...
...
Установка
...
временной
...
зависимости
...
алгоритма
UI Steps | |
---|---|
|
...
|
...
|
...
|
...
|
...
...
|
...
|
...
Элементы управления диалога «Временные зависимости»:
|
...
|
...
|
...
|
FlipTime. Изменение ответов
...
алгоритма через указанный период времени
В ключах с RTC реализована технология FlipTime, позволяющая автоматически изменять значения, возвращаемые алгоритмом ключа по наступлению заданного временного значения.
Важно!
UI Text Box | ||
---|---|---|
| ||
Технология FlipTime неприменима к ячейкам типа «Загружаемый код» в ключах Guardant Code Time! |
FlipTime – это механизм, модифицирующий часть определителя алгоритма по достижению указанной при программировании ключа даты. Причем это изменение не однократное, определитель будет продолжать изменяться через заданный промежуток времени (в днях). Соответственно, всякий раз после изменения определителя, алгоритм будет возвращать другие значения в ответ на запросы.
Чтобы использовать механизм FlipTime, разработчик должен знать, какие ответы вернет алгоритм в каждом случае. Для решения этой задачи в комплект разработчика включена консольная утилита FlipTime.exe, генерирующая массивы вопросов-ответов алгоритму для каждого факта изменения определителя.
Чтобы активировать механизм FlipTime: 1.
- Выделите в маске ключа c RTC нужный алгоритм, выполните команду меню
...
- Образ ключа | (Поле) Свойства поля
...
- и перейдите на вкладку Временные зависимости.
...
- Установите флаг Алгоритм изменяется каждые… и в появившемся поле задайте период (в днях) изменения алгоритма.
...
- С помощью комбинированного поля/календаря определите дату, по достижении которой механизм FlipTime будет задействован.
...
- Сохраните маску и запишите ее в ключ (команда меню Ключ |
...
- (Операции с ключом) Записать образ в ключ).
...
- Запустите утилиту FlipTime.exe и, следуя ее указаниям, получите массивы вопросов-ответов алгоритма после каждого факта изменения определителя.
...
- Используйте полученные массивы в приложении согласно заданным временным зависимостям.
...
UI Text Box | ||
---|---|---|
| ||
|
...
|
Технология FlipTime дает разработчику возможность реализовать изощренную стратегию защиты, при которой защитные механизмы будут видоизменяться через заданное время без дополнительного перепрограммирования ключа.
Установка запрета на изменение времени
В ключах Guardant Time/ Time Net/ Code Time можно задавать новое значение для встроенного таймера при помощи специальной функции Guardant API (см. описание GrdSetTime).
Однако если такая необходимость и возникает, то, как правило, на этапе программирования ключа (например, при реализации утилиты прошивки ключа, альтернативной GrdUtil.exe).
И, наоборот, для защиты приложения это несет угрозу, потому что при некоторых обстоятельствах (к примеру, компрометации кодов доступа), станет возможным перепрограммирование таймера ключа и незаконное продление лицензии.
Поэтому в ключах с таймером предусмотрена возможность блокировать на низком уровне вызов функции GrdSetTime.
UI Text Box | ||
---|---|---|
| ||
Важно! Категорически не рекомендуется менять умолчательное значение без особой необходимости. |
Чтобы проверить, блокирована ли возможность изменения времени в ключе, выполните его диагностику (см. предыдущий пункт или описание утилиты диагностики). Глобальный флаг ProtectTime должен быть установлен:
В случае отсутствия блокировки изменения времени в ключе загрузите в Редактор нужный образ RTC-ключа, проверьте состояние флага Запретить изменение времени, и если он не установлен, выполните команду меню Ключ | (Режимы) Запретить изменение времени в ключе. После этого запишите образ в ключ.
В результате в ключе будет выставлен глобальный флаг GrdGF_Pro-tectTime (см. описание GrdProtect), и изменение состояния таймера станет невозможным без инициализации памяти ключа.