Versions Compared

Key

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

Основные операции по программированию ключей можно выполнять из командной строки. Это особенно удобно в тех случаях, когда необходимо отделить обязанности по работе с Редактором образа и базой данных от обязанностей по прошивке и обновлению памяти ключа подготовленными данными.

Предполагается, что всю подготовку данных для прошивки ключа выполняет программист-разработчик системы защиты приложения, а операции по прошивке и обновлению памяти ключей возлагаются, например, на менеджера по продажам. Д

AnchorOLE_LINK30OLE_LINK30ля Для удобства работы и автоматизации процесса программирования ключей разработчик может создать GUI-утилиту или набор BAT-файлов на основе строчных команд GrdUtil.exe.

GrdUtil.exe предоставляет строчные команды для выполнения следующих действий:

  • Запись образа в ключ
  • Удаленное обновление ключа
  • Завершение процедуры удаленного обновления ключа
  • Локальное обновление ключа

 

Info
titleВажно!

...

  1. Для успешного

...

  1. выполнения операций тип записываемого образа и тип программируемого ключа должны совпадать.

...

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

...

  1. Все числа, передаваемые в командную строку, должны быть в шестнадцатеричной системе счисления.

...

Опция

Описание

-mask(name, version)

Записать в ключ содержимое шаблона образа из БД GrdUtil.
name, version – имя и версия шаблона образа

-user(user_name)

Зарегистрировать прошивку ключа на указанного пользователя.
user_name – имя конечного пользователя

-infile(file.nsd)

Записать в ключ содержимое файла образа.
file.nsd – имя файла формата .nsd, который используется как источник обновления

-dongleID(hex)

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

...

Сочетания опций

Описание

-write –mask(name, version)

Записать в ключ шаблон образа с указанным именеми версией. Прошивка будет зарегистрирована в базе данных на конечного пользователя Anonymous

-write –mask(name, version)-user(user_name)

Записать в ключ шаблон образа с указанным именеми версией. Прошивка будет зарегистрирована в базе данных на указанного конечного пользователя

-write –infile(file.nsd)

Записать в ключ маску из указанного файла

-write –infile(file.nsd) -mask(name, version)

Записать в ключ маску из указанного файла. Прошивкас указанным именем и версией будет зарегистрирована в базе данных на конечного пользователя Anonymous

-write –infile(file.nsd) -mask(name, version)-user(user_name)

Записать в ключ маску из указанного файла. Прошивкас указанным именем и версией будет зарегистрирована в базе данных на указанного конечного пользователя

...

Для обновления памяти ключа, находящегося у конечного пользователя, служит команда -remote(query, outfile), где query - запрос на обновление, полученный от конечного пользователя, а outfile - имя текстового файла, в который будет помещен дамп обновления.
В качестве источника данных может использоваться шаблон образа из базы данных и образ из файла .nsd. При обновлении происходит полная перезапись содержимого ключа.
Полученный дамп обновления необходимо передать конечному пользователю для завершения процесса удаленного обновления. Подробное описание процедуры удаленного обновления см. в разделе Удаленное обновление.
Команда -remote(query, outfile) имеет несколько опций:

Опция

Описание

-mask(name, version)

Создать дамп обновления на основе содержимого шаблона образа.
name, version – имя и версия шаблона образа из базы данных GrdUtil.exe

-infile(file.nsd)

Создать дамп обновления на основе содержимого файла образа.
file.nsd – имя файла формата .nsd, который используется как источник обновления

Опции команды -remote(query, outfile) можно использовать в следующих сочетаниях:

Сочетания опций

Описание

-remote(query, outfile) -mask(name, version)

Создать дамп обновления на основе содержимого шаблона образа с указанным именем и версией. Прошивка будет зарегистрирована в базе данных на текущего конечного пользователя

-remote(query, outfile) -infile(file.nsd)

Создать дамп обновления на основе содержимого указанного файла образа.

-remote(query, outfile) -infile(file.nsd)-mask(name, version)

Создать дамп обновления на основе содержимого указанного файла образа. Прошивка с указанным именем и версией будет зарегистрирована в базе данных на текущего конечного пользователя

...

Для завершения обновления памяти ключа, находящегося у конечного пользователя, служит команда -complete (final_query), где final_query – код-подтверждение, полученный от конечного пользователя. Код-подтверждение содержит информацию об итоге обновления.
Завершение удаленного обновления необходимо только в случае работы в режиме базы данных GrdUtil.exe. Подробное описание процедуры завершения удаленного обновления см. в разделе Удаленное обновление.

...

Команда

...

Описание

...

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

...

Для обновления памяти ключа, подсоединенного к порту компьютера разработчика, служит команда -local.
В качестве источника данных может использоваться шаблон образа из базы данных и образ из файла .nsd. При обновлении происходит полная перезапись содержимого ключа.
Команда -local имеет несколько опций:

Опция

Описание

-mask(name, version)

Записать в ключ содержимое шаблона образа.
name, version – имя и версия шаблона образа

-infile(file.nsd)

Записать в ключ содержимое файла образа.
file.nsd – имя файла формата .nsd, который используется как источник обновления

...

Сочетания опций

Описание

-local –mask(name, version)

Записать в ключ содержимое шаблона образа с указанным именем и версией. Прошивка будет зарегистрированав базе данных на текущего конечного пользователя

-local –infile(file.nsd)

Записать в ключ содержимое указанного файла образа

...

Если при работе с командной строкой GrdUtil необходимо получать код возврата, то для этой цели следует использовать WinAPI.
Так, например, при создании дочернего процесса с помощью CreateProcess(), код ошибки может быть получен при помощи функции GetExitCodeProcess().
Распространенные коды возврата:

...

Код ошибки

...

Описание

...

0x00000000

...

Операция завершилась успешно

...

0x00000001

...

Ошибка в процессе записи ключа

...

0x00000002

...

Не найден файл

...

0x1000019F

...

Ошибка задания параметров командной строки

...

0x100001B4

...

  1.