Как узнать размеры блоков в ключе?

Добрый день!

Используем ваши ключи 2 и 3 версии. Вопрос, как в Delphi узнать размеры блоков в ключе, точнее узнать адрес своего дампа памяти. И вообще возможно ли как то работать с таблицей алгоритмов, узнавать расположение блоков и их размер?

Re: Как узнать размеры блоков в ключе?

Ещё вопрос. Возможно ли в ключ записать названия модулей (в таблице лицензий) и считывать их из ключа.

Re: Как узнать размеры блоков в ключе?

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

https://forum.guardant.ru/uploads/legacy/0/0/89/thumb/p15vs3kojqqql19v4t1mqma1cteg.jpg

Во втором томе пользовательской документации можно найти подробное описание структуры маски (для ключей S2 и S3 последняя версия SDK с документацией - 5.4; можем также выслать по запросу в hotline).
Также процесс формирования и записи маски рассмотрен в уроке 3.4 обучающих материалов при помощи библиотеки writemask (распространяемой в качестве примера самостоятельного формирования маски в исходном коде в SDK, правда на C++).

После записи маски в ключ все обращения  к алгоритмам происходят по их номерам (п/п).

Названия модулей таблицы LMS могут быть заданы и сохранены в БД, однако запись их в ключ не предусмотрена форматом маски ключа.

Re: Как узнать размеры блоков в ключе?

Прошу прощения, то есть в динамике, не зная адрес блока его прочитать нельзя? Нужно обязательно в коде указывать адреса?

Re: Как узнать размеры блоков в ключе?

Если предположить, что ключ используется только в качестве носителя информации и его память не защищена аппаратными запретами, то дамп можно поискать в памяти, считав все ее содержимое.

При этом считать данные, защищенные запретами на чтение (установка которых происходит при записи маски), нельзя, даже зная адрес, по которому они расположены.

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

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