Драйвер guardant что это за драйвер

Передача драйверов

Разработчикам предоставляется несколько способов передачи драйверов конечным пользователям:

Windows

1. Распространение дистрибутива драйверов

Наиболее простым решением является распространение готового дистрибутива драйверов Guardant.
В состав Guardant SDK входят 32- и 64-разрядные версии мультиязычных MSI-пакетов и универсальный EXE-инсталлятор.

Если SDK был установлен в стандартную директорию, то эти файлы будут в папке C:\Program Files (x86)\Guardant\SDK7\Redistribute\Drivers\

Универсальный инсталлятор — автоматически определяет локаль и разрядность системы для установки нужной версии драйвера

GrdDrivers-x86.msi

Дистрибутив х86 версии драйвера Guardant — автоматически определяет локаль системы для выбора русского или английского языка интерфейса установщика. Подходит для централизованной установки через групповые политики в домене

GrdDrivers-x64.msi

Дистрибутив х64 версии драйвера Guardant — автоматически определяет локаль системы для выбора русского или английского языка интерфейса установщика. Подходит для централизованной установки через групповые политики в домене

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

2. Интеграция драйверов в дистрибутив защищенного приложения

Если предполагается устанавливать драйверы Guardant через инсталлятор защищенного приложения, то необходимо включить MSI-пакет с драйверами Guardant в свой комплект установки без изменений.
Драйверы Guardant работают с командной строкой через msiexec. Синтаксис команды должен быть следующим:
msiexec /Option [необязательный параметр]
К примеру, команды для скрытой установки и удаления драйверов должны выглядеть так:

msiexec /i GrdDrivers-x64.msi /quiet

Установить драйвер в «тихом» режиме

msiexec /x GrdDrivers-x64.msi /quiet

Удалить драйвер в «тихом» режиме

Другие опции для Windows Installer можно посмотреть введя в командной строке msiexec без параметров.

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

GrdDrivers.exe /install /quietУстановить драйвер в «тихом» режиме
GrdDrivers.exe /uninstall /quietУдалить драйвер в «тихом» режиме

Внимание!

Если работает UAC, то даже при скрытой установке через EXE-инсталлятор он может вывести пользователю запрос подтверждения на изменения в системе

3. Использование Windows API

Драйверы Guardant можно устанавливать, конфигурировать и удалять из Windows-приложений (например, из программы установки программного продукта) при помощи стандартного Windows API.

Пример для C++ входит в состав Guardant SDK и после его установки в стандартную директорию будет располагаться в папке C:\Program Files (x86)\Guardant\SDK7\Samples\Windows Driver Installation API\

Linux

Для пользователей Linux систем необходимо включать в поставку с защищенным приложением специальное правило для udev.

Установка правила производится при помощи скрипта install.sh

Установка ключей Guardant в операционных системах GNU/Linux

Ключи Guardant работают в OC GNU/Linux (в том числе и в HID-режиме) без установки дополнительных драйверов и демонов, требуя лишь обеспечить имя и разрешение доступа к файлу устройства. Для обращения к ключу используются соответственно Linux USB Device Filesystem или Linux USB HID Device Interface (в случае HID-режима).

Для работы с ключами в ОС GNU/Linux необходимо добавить правило для штатного средства обработки HotPlugging. На большинстве современных дистрибутивов, таким средством является udev (https://ru.wikipedia.org/wiki/Udev). В комплект разработчика включен набор правил для udev (архив udev-rules.tar.gz ). Указанные правила предписывает udev установить права на чтение и запись для файла устройства, представляющего электронный ключ Guardant в системе. Это позволяет обращаться к ключу с привилегиями любого пользователя системы.

Внимание!

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

Установка правил для udev

Для ключей как в драйверном, так и в HID-режиме, и в случае использования файлов-устройств USB Device Filesystem.

Скачать архив udev-rules.tar.gz , распаковать и выполнить установку правил:

После успешной установки правил нужно отсоединить электронный ключ от USB-порта и подсоединить повторно.

Ключ готов к работе с защищенным Linux-приложением.

Имена и доступ к устройствам

Для ключей, работающих в драйверном режиме

Обращение к ключу происходит через Linux USB Device Filesystem. Подробную информацию см. в файле linux/Documentation/usb/proc_usb_info.txt из документации к Linux. Для успешной работы с ключом в системе нужно разрешить доступ на чтение/запись к файлу устройства.

Для ключей, работающих в HID-режиме

Обращение к ключу происходит через Linux USB HID Device Interface (драйвер usbhid). Подробную информацию см. в файле linux/Documentation/usb/hiddev.txt из документации к Linux. Для успешной работы с ключом в системе нужно изменить имена соответствующих устройств на /dev/grdhidN и разрешить доступ на чтение/запись к файлу устройства.

Переменные окружения

Для настройки Guardant API под GNU/Linux следует пользоваться следующими переменными окружения:

GRD_IPC_NAME

директория, в которой процессы будут создавать/открывать для чтения и записи файлы, используемые для синхронизации доступа к ключу. Если переменная не задана, используется значение по умолчанию (/tmp)

USB_DEVFS_PATH

директория LinuxUSBDeviceFilesystem (точка монтирования или директория, содержащая дерево соответствующих устройств).
Если переменная не задана, будет использоваться /dev/bus/usb (если существует), иначе – /proc/bus/usb

Источник

Работа с электронными ключами Guardant

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Современные электронные ключи Guardant поддерживают платформы Windows и Linux. Подготовка ключа к работе на разных платформах имеет свои особенности, которые рассматриваются далее.

Установка ключа в среде Windows

Аппаратные ключи Guardant могут работать как через драйверы Guardant, так и без них (HID-режим, доступен для ключей моделей Guardant Sign/Time/Code и их сетевых версий).
Программные ключи Guardant SP и устаревшие аппаратные ключи Guardant Stealth III/Stealth II работают только через драйвер!

1. Работа ключа через драйвер Guardant

Важно!

Установка драйверов

При инсталляции Комплекта разработчика Guardant драйверы автоматически устанавливаются в операционную систему.
Чтобы переустановить драйверы (установить драйверы на другом компьютере), запустите файл GrdDriversRU.msi (или Setup.exe), который по умолчанию находится в каталоге:

ОС Windows

Каталог по умолчанию

После появления на экране мастера установки следуйте его указаниям. Инсталлятор произведет копирование и установку драйверов для всех типов электронных ключей Guardant независимо от интерфейса подключения.
Важно!

Диагностика ключей Guardant

Для диагностики ключей Guardant воспользуйтесь апплетом Драйверы Guardant из Панели управления Windows.
По нажатию кнопки [Диагностика] вызывается утилита диагностики электронных ключей.
Драйверы Guardant комплектуются утилитой диагностики GrdDem32.exe. Она помогает службе технической поддержки более оперативно проводить диагностику, анализируя сгенерированные утилитой отчеты.

Удаление драйверов

Для удаления драйверов Guardant необходимо воспользоваться меню Установка и удаление программ Панели Управления Windows.
Выберите из списка установленных программ Драйверы Guardant и нажмите на кнопку [Удалить].

Передача драйверов Guardant конечным пользователям

Разработчикам предоставляется несколько способов передачи драйверов конечным пользователям.

1. Распространение дистрибутива драйверов

Наиболее простым решением является распространение готового дистрибутива драйверов Guardant.
В состав ПО Guardant входят 32- и 64-разрядные версии драйверов, файлы которых имеют одинаковое название:

GrdDriversRU.msi

Дистрибутив х86 или х64 с русской версией драйверов Guardant

GrdDriversEN.msi

Дистрибутив х86 или х64 с английской версией драйверов Guardant

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

2. Интеграция драйверов в дистрибутив защищенного приложения

Если предполагается устанавливать драйверы Guardant через инсталлятор защищенного приложения, то необходимо включить MSI-пакет с драйверами Guardant в свой комплект установки без изменений.
Драйверы Guardant работают с командной строкой через msiexec. Синтаксис команды должен быть следующим:
msiexec [необязат. параметр]
К примеру, команды для скрытой установки и удаления драйверов должны выглядеть так:

msiexec /i GrdDriversRU.msi /quiet

Установить драйвер в «тихом» режиме

msiexec /x GrdDriversRU.msi /quiet

Удалить драйвер в «тихом» режиме

Другие опции Windows Installer см. с помощью команды msiexec /?

3. Использование драйверного Guardant API

Драйверы Guardant можно устанавливать, конфигурировать и удалять из Windows-приложений (например, из программы установки программного продукта). Для этого в комплект поставки включена библиотека GrdDrv.dll, содержащая все необходимые функции API.
Описания всех используемых констант и структур данных находятся в файле GrdDrv.h. Можно включить эти файлы в приложение, использующее библиотеку GrdDrv.dll.
Подробно процесс работы с библиотекой описан в примере, написанном на языке C (файл InstDrvTest.c).
В процессе установки приложения файлы GrdDrv.dll и GrdDriversRU.msi (или английская версия GrdDriversEN.msi)должны находиться в одном каталоге.

2. Работа ключа без драйвера. HID-режим

Аппаратные ключи, начиная с Guardant Sign, могут работать ОС семейства Windows без установки драйверов Guardant. Для этого ключи необходимо предварительно перевести в Human Interface Device (HID) режим при помощи утилиты GrdUtil.exe.
При подсоединении ключа в HID-режиме к USB-порту компьютера система распознает ключ как стандартное HID-совместимое устройство, после чего ключ сразу же готов к работе.
Режимы работы ключей Guardant в HID-режиме и со стандартным драйвером для пользователя ничем не отличаются.

Установка ключа в среде Linux

Аппаратные ключи, начиная с Guardant Sign, поддерживают работу в среде Linux, в том числе, в HID-режиме 1 Также поддерживается работа защищенных Windows-приложений под WINE.

Для работы с ключами в ОС GNU/Linux необходимо добавить правило для штатного средства обработки HotPlugging. На большинстве современных дистрибутивов, использующих ядро 2.6.х, таким средством является udev ( http://kernel.org/pub/linux/utils/kernel/ hotplug/udev.html ).
Правило для udev добавляется следующим образом:

Для ключей в драйверном режиме, и в случае использования файлов-устройств USB Device Filesystem

# cp etc/grdnt.udev /etc/udev/rules.d/95-grdnt.rules

Для ключей в HID-режиме

# cp etc/grdnt_hid.udev /etc/udev/rules.d/95-grdnt_hid.rules

Для записи в каталог /etc/udev/rules.d требуются права суперпользователя.

Указанные правила предписывают udev установить права на чтение и запись для файла-устройства, представляющего электронный ключ Guardant в системе. Это позволит обращаться к ключу с привилегиями любого пользователя системы.
Информацию по защите приложений под Linux см. во 2-й части Руководства пользователя.

Источник

Простой способ обнаружения эмуляторов ключа Guardant

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

Задавшись в свое время вопросом: «как определить наличие физического ключа?», мне пришлось немного поштудировать великолепно поданный материал за авторством Павла Агурова в книге «Интерфейс USB. Практика использования и программирования». После чего потратить время на анализ вызовов API функций из трехмегабайтного объектника, линкуемого к приложению, в котором собственно и сокрыта вся «магия» работы с ключом.

В итоге появилось достаточно простое решение данной проблемы не требующее использования оригинальных Guardant API.
Единственный минус — все это жутко недокументированно и техническая поддержка компании Актив даже не будет рассматривать ваши вопросы, связанные с таким использованием ключей Guardant.
Ну и конечно, в какой-то момент весь данный код может попросту перестать работать из-за изменений в драйверах Guardant.
Но пока что, на 27 апреля 2013 года, весь данный материал актуален и его работоспособность проверена на драйверах от версии 5.31.78, до текущей актуальной 6.00.101.

Начиная с Guardant Stealth III и выше, изменился протокол работы с ключом, как следствие поменялись константы IOCTL запросов и содержимое входящего и исходящего буфера. Для нормальной работы алгоритма желательно поддерживать возможности как старых, так и новых ключей, поэтому опишу различия:

Для начала константы IOCTL выглядят так:

Первая для ключей от Guardant Stealth I/II
Вторая для Guardant Stealth III и выше (Sign/Time/Flash/Code)

Отправляя первый запрос на устройство, мы будем ожидать что драйвер нам вернет следующий буфер:

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

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

Общий код получения данных о установленных ключах выглядит так:

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

Драйвер guardant что это за драйвер. Смотреть фото Драйвер guardant что это за драйвер. Смотреть картинку Драйвер guardant что это за драйвер. Картинка про Драйвер guardant что это за драйвер. Фото Драйвер guardant что это за драйвер

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

Но не будем отвлекаться, вы вероятно заметили в вышеприведенной процедуре вызов функции GetPnP_ParentPath(). Данная функция возвращает полный путь к устройству от рута. Выглядит ее реализация следующим образом:

Собственно (вы будете смеяться) детектирование эмулятора будет происходить именно на базе данной строки.
Обычно путь устройства выглядит следующим образом:

Соответственно на базе данной информации можно реализовать простую функцию:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *