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

Для успешного обновления загружаемого кода необходимо выполнение следующих условий:

  • У разработчика должна храниться прошивка (файл маски), содержащая ключевые пары для шифрования и подписи загружаемого кода.
  • У конечного пользователя должен находиться электронный ключ Guardant Code, содержащий дескриптор алгоритма с загружаемым кодом, а также закрытый ключ для расшифрования кода и открытый ключ для проверки ЭЦП.
  • Ключевые пары в маске и ключе должны быть идентичны.

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

Само обновление может производиться как при помощи технологии TRU, так и прямой загрузкой GCEXE-файла из защищаемого приложения функцией GrdCodeLoad()

При желании можно сделать процедуру обновления загружаемого кода «прозрачной» для пользователя. Тогда от него потребуется только получить обновление, поместить его рядом с исполняемым файлом приложения (или в специально для этого предназначенную директорию) и запустить приложение.

"MakeGCUpdate.exe" - утилита создания GUI-мастера обновления загружаемого кода.

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

Опции командной строки.

Опция

Назначение

Пример использования

/MASKFILENAME

Извлечение экземпляров загружаемого кода с указанными номерами из файла маски, преобразование их в GCEXE-файлы и интеграция в мастер обновления. Будут обновлены только указанные алгоритмы (экземпляры кода).

/MASKFILENAME="D:\Default.nsd",0,2

/GCEXEFILENAME

Интеграция готового GCEXE-файла в мастер обновления. В ключе будет обновлен экземпляр загружаемого кода с указанным номером.

/GCEXEFILENAME="D:\mp0.gcexe",1    

/OUTFILENAME

Имя создаваемого файл-мастера. Опционально. Если не указано, то имя генерируется по умолчанию

/OUTFILENAME="D:\Updatewizard.exe" 

/DONGLEID

Привязка микропрограмм из маски к определенному ID ключа. Опционально.

/DONGLEID=11ABCDEF

/ver=

Установить версию для мастера обновления

/ver=1,0,0,1

GCEXE-файлы интегрируются в качестве ресурсов приложения. Мастер сам определит интегрированные экземпляры загружаемого кода и попытается прописать их в ключ в процессе обновления.

В данной версии нет никаких привязок к ключам помимо ID. Также программа не может хранить одновременно GCEXE-файлы для нескольких версий ключей. Для каждой версии ключа нужно будет генерировать свой мастер.

Утилита входит в состав Guardant SDK и после его установки находится в директории ..\Guardant\SDK7\VendorTools\ .

Пример использования:

makegcupdate /maskfilename="C:\Code\GuardantCode.nsd",0 /ver=1,0,0,5 /OUTFILENAME="GCWiz.exe"
  • No labels