Page tree
Skip to end of metadata
Go to start of metadata

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

При помощи программы GrdUtil.exe

Это наиболее простой и предпочтительный способ создания защищенных ячеек. GrdUtil.exe предоставляет для этого удобный оконный интерфейс. Для создания защищенной ячейки или дескриптора аппаратного алгоритма нужно лишь указать свойства будущего объекта – всю остальную работу программа выполнит сама. Она создаст системные таблицы, запишет в ключ дескрипторы ячеек и установит запреты на чтение/запись занимаемой ими области памяти.
При помощи GrdUtil.exe можно также добавлять новые защищенные ячейки, изменять их свойства, и, при необходимости, удалять.

При помощи специальных функций Guardant API

Этот способ значительно сложнее. Он состоит из следующих этапов:

  1. В случае если в ключе уже есть алгоритмы, все их нужно сначала удалить при помощи GrdInit или GrdTRU_SetKey (при использовании технологии защищенного удаленного программирования ключей Trusted Remote Update).
  2. С адреса kmAlgoAddr записываются системные таблицы.
  3. Со следующего после таблицы байта записываются дескрипторы защищенных ячеек.
  4. Операцией GrdProtect устанавливаются запреты на чтение и запись для области памяти, занимаемой дескрипторами, а в поле kmAlgoNum записывается количество защищенных ячеек. С этого момента дескрипторы невозможно будет считать.

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

  • No labels