Схема защиты базируется на проверке номера версии хранящегося в памяти электронного ключа. Механизм проверки позволяет работать с новой версией приложения только если в ключе будет записано соответствующее значение. При этом младшие версии будут работать с этим же ключом (т.е. приложение v.1 будет работать с ключом для приложения v.1.1).


Полностью автоматический режим


Внимание!

При реализации этой схемы лицензирования не рекомендуется использовать полностью автоматический режим

Ключ программируется самостоятельно

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту «Редактор памяти ключей Guardant» (grdutil.exe), а защита выполняется GUI-утилитой LicenseWizard.exe («Мастер лицензирования и автоматической защиты»)

Запустить «Guardant Интегратор»

Нажать рограммирование электронных ключей]

При помощи утилиты программирования электронных ключей «Редактор памяти ключей Guardant» (grdutil.exe) создать новый образ нажав [Ctrl+N], или:

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

  • для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

  • Двойным кликом на поле открыть его свойства

  • Вкладка «Ключ ECC60»

  • Нажать [Экспорт в bin-файл автозащиты] и выполнить сохранение *.bin-файла открытого ключа

Записать образ в ключ нажав [Ctrl+W], или:

Запустить LicenseWizard.exe

Нажать [Пустой проект]

Настройка параметров нового проекта:

  • «Способ программирования ключей» выбрать «Ключ программируется разработчиком самостоятельно»
  • «Средство лицензирования (как защищаться от копирования)» в выпадающем списке «Использовать аппаратный ключ модели:» указать модель ключа

  • Нажать [Продолжить]

Создание нового проекта:

  • Указать имя проекта и каталог, в котором сохраняться файлы проекта

  • Нажать [Продолжить]

Выбор ключа:

  • Выбрать нужный ключ из списка подсоединенных

  • Нажать [Продолжить]

Выбор защищаемых приложений:

  • Нажать [Добавить] и в проводнике Windows выбрать защищаемые файлы

  • На вкладке «Лицензирование» указать размер вопроса алгоритма (16, 32 или 64 для AES128) и номер (числовое имя) (узнать номер алгоритма можно в grdutil.exe, посмотрев столбец [Тип] — например, если для нужного алгоритма в столбце [Тип] указанно Алгоритм 00 (AES128), то номер будет 0)

  • Для усиления защиты лучше включить опцию «Использовать алгоритм ЭЦП», нажать […] и в проводнике Windows выбрать ранее сохраненный (п. 4) *.bin-файл открытого ключа

  • Нажать [Дополнительные настройки]
  • Активировать опцию «Проверять поле версия» и задать нужный номер версии в соответствующем текстовом поле
  • Нажать [<< Вернуться]
  • Включить нужные опции защиты на вкладке «Защита»

  • Включить нужные сервисные опции на вкладке «Сервис»

  • Нажать [Продолжить]

После завершения работы мастера защищенное приложение и дополнительные файлы будут в каталоге указанном на шаге №4, в подкаталоге «Result»

Выпуск новой версии приложения

Для защиты новой версии приложения необходимо использовать тот же образ (маску) ключа, который применялся при защите предыдущей версии. Нужно только записать большее значение в поле «Версия» и выполнить защиту как описано выше, с указанием нового значения версии в дополнительных настройках лицензирования (шаг №11). Записать новую версию в ключ клиента нужно при помощи удаленного обновления.

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту «Редактор памяти ключей Guardant» (grdutil.exe), а защита выполняется консольной утилитой grdarmor.exe («Guardant Armor»)

Запустить «Guardant Интегратор»

Нажать рограммирование электронных ключей]

При помощи утилиты программирования электронных ключей «Редактор памяти ключей Guardant» (grdutil.exe) создать новый образ нажав [Ctrl+N], или:

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

  • Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

  • Двойным кликом на поле открыть его свойства

  • Вкладка «Ключ ECC60»

  • Нажать [Экспорт в bin-файл автозащиты] и выполнить сохранение *.bin-файла открытого ключа

Добавить нужное значение в поле «Версия»:

  • Выделить поле в редакторе
  • Меню «Образ ключа»
  • Нажать [Свойства поля]
  • В текстовом поле задать нужное значение и нажать [ОК]

Свойства поля можно также открыть двойным щелчком мыши

Записать образ в ключ нажав [Ctrl+W], или:

Подготовить защищаемое приложение — выполнить его сборку с генерацией MAP-файла сопоставления

Подготовить файл (*.prc или *.ini) c перечислением защищаемых функций

Запустить стандартное Windows-приложение «Командная строка» и перейти в папку «Bin», установленного Guardant SDK («по умолчанию» C:\Program Files (x86)\Guardant\SDK7\Bin)

Запустить grdarmor.exe c параметрами привязки, защиты и нужным файлом защищаемых функций (*.prc или *.ini)

grdarmor.exe -ENVELOPE_MODE=H:5:8 -GS3S -uv=1 -OUT=./PrcProtect -PRC=app.prc -MAP=app.map app.exe

grdarmor.exe -ENVELOPE_MODE=S -GS3S -uv=1 -OUT=./IniProtect -INI=app.ini -MAP=app.map app.exe

Используется *.prc-файл, аппаратный режим работы конверта и USB-ключ Guardant Sign. Защищенное приложение запуститься если в ключе записано значение версии >=1

Используется *.ini-файл, программный режим работы конверта и USB-ключ Guardant Sign. Защищенное приложение запуститься если в ключе записано значение версии >=1

Выпуск новой версии приложения

Для защиты новой версии приложения необходимо использовать тот же образ (маску) ключа, который применялся при защите предыдущей версии. Нужно только записать большее значение в поле «Версия» и выполнить защиту как описано выше, с указанием нового значения версии (например, -uv=2). Записать новую версию в ключ клиента нужно при помощи удаленного обновления.



Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту «Редактор памяти ключей Guardant» (grdutil.exe), а обфускация кода .Net-приложения выполняется консольной утилитой CodeObfuscator.exe

Важно!

Если совместно с обфускацией кода .Net-приложения будет производится и его защита с переносом кода в защищенное хранилище, то должна соблюдаться следующая последовательность использования утилит:

  1. Утилита обфускации CodeObfuscator.exe
  2. Утилита защиты кода CodeProtect.exe

Запустить «Guardant Интегратор» 

Нажать рограммирование электронных ключей]

При помощи утилиты программирования электронных ключей «Редактор памяти ключей Guardant» (grdutil.exe) создать новый образ нажав [Ctrl+N], или:

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

  • для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

  • Двойным кликом на поле открыть его свойства

  • Вкладка «Ключ ECC60»

  • Нажать [Экспорт в bin-файл автозащиты] и выполнить сохранение *.bin-файла открытого ключа

Добавить нужное значение в поле «Версия»:

  • Выделить поле в редакторе
  • Меню «Образ ключа»
  • Нажать [Свойства поля]
  • В текстовом поле задать нужное значение и нажать [ОК]

Свойства поля можно также открыть двойным щелчком мыши

Записать образ в ключ нажав [Ctrl+W], или:

Запустить стандартное Windows-приложение «Командная строка» и перейти в папку «Bin», установленного Guardant SDK («по умолчанию» C:\Program Files (x86)\Guardant\SDK7\Bin)

Запустить CodeObfuscator.exe c параметрами привязки и защиты

CodeObfuscator.exe /GS3S=0:16::1:app.exe.bin /INIT /SO /SE /ATR=1 /UV=1 /OUT=./Result /MAP=app.map app.exe

.Net-приложение обфусцируется с применением шифрования строковых констант при помощи аппаратного электронного USB-ключа Guardant Sign. Защищенное приложение запуститься если в ключе записано значение версии >=1

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту «Редактор памяти ключей Guardant» (grdutil.exe), а защита кода .Net-приложения выполняется консольной утилитой CodeProtect.exe

Важно!

Если совместно с защитой кода .Net-приложения будет производится и его обфускация, то должна соблюдаться следующая последовательность использования утилит:

  1. Утилита обфускации CodeObfuscator.exe
  2. Утилита защиты кода CodeProtect.exe

Запустить «Guardant Интегратор» 

Нажать рограммирование электронных ключей]

При помощи утилиты программирования электронных ключей «Редактор памяти ключей Guardant» (grdutil.exe) создать новый образ нажав [Ctrl+N], или:

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

  • для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

  • Двойным кликом на поле открыть его свойства

  • Вкладка «Ключ ECC60»

  • Нажать [Экспорт в bin-файл автозащиты] и выполнить сохранение *.bin-файла открытого ключа

Добавить нужное значение в поле «Версия»:

  • Выделить поле в редакторе
  • Меню «Образ ключа»
  • Нажать [Свойства поля]
  • В текстовом поле задать нужное значение и нажать [ОК]

Свойства поля можно также открыть двойным щелчком мыши

Записать образ в ключ нажав [Ctrl+W], или:

Запустить стандартное Windows-приложение «Командная строка» и перейти в папку «Bin», установленного Guardant SDK («по умолчанию» C:\Program Files (x86)\Guardant\SDK7\Bin)

Запустить CodeProtect.exe c параметрами привязки и защиты

CodeProtect.exe /GS3S=0:16::1:app.exe.bin /PER=10 /ATR=1 /UV=1 /OUT=./Result /MAP=app.map app.exe

10 процентов методов .Net-приложения будут зашифрованы при помощи аппаратного электронного USB-ключа Guardant Sign и размещены в защищенном контейнере. Защищенное приложение запуститься если в ключе записано значение версии >=1

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту «Редактор памяти ключей Guardant» (grdutil.exe), а защита выполняется консольной утилитой nwkey32.exe

Запустить «Guardant Интегратор» 

Нажать рограммирование электронных ключей]

При помощи утилиты программирования электронных ключей «Редактор памяти ключей Guardant» (grdutil.exe) создать новый образ нажав [Ctrl+N], или:

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

  • для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

  • Двойным кликом на поле открыть его свойства

  • Вкладка «Ключ ECC60»

  • Нажать [Экспорт в bin-файл автозащиты] и выполнить сохранение *.bin-файла открытого ключа

Добавить нужное значение в поле «Версия»:

  • Выделить поле в редакторе
  • Меню «Образ ключа»
  • Нажать [Свойства поля]
  • В текстовом поле задать нужное значение и нажать [ОК]

Свойства поля можно также открыть двойным щелчком мыши

Записать образ в ключ нажав [Ctrl+W], или:

Запустить стандартное Windows-приложение «Командная строка» и перейти в папку «Bin», установленного Guardant SDK («по умолчанию» C:\Program Files (x86)\Guardant\SDK7\Bin)

Запустить nwkey32.exe c параметрами привязки и защиты

nwkey32.exe /GS3S=0:16::1:app.exe.bin /IMPORT_HOOK=30:5 /RIP_CODE=10 /T=5 /ATR=1 /UV=1 /OUT=./Result /MAP=app.map app.exe

Приложение будет защищено с использованием аппаратного электронного USB-ключа Guardant Sign. При этом будет защищено 30 процентов импортируемых функций по 5 инструкций из каждой функции, а также для инструкций в теле приложения существует 10-процентная вероятность переноса в виртуальную машину. Защищенное приложение запуститься если в ключе записано значение версии >=1