You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39 Next »

Современные ключи Guardant, начиная с Guardant Sign, позволяют защищать приложения, запускаемые в ОС GNU/Linux на аппаратных платформах i386 и x86_64. Для этого в комплект разработчика включены статические (libgrdapi.a) и динамические библиотеки (libgrdapi.so) соответствующей разрядности, которые реализуют функционал Guardant API.

Защита Native-приложений GNU/Linux

Для сборки защищаемого приложения, необходимо слинковать защищаемое приложение с библиотекой Guardant API.
Рекомендуется использовать компилятор GCC 4-ой версии, однако, возможно использовать и более ранние версии GCC, и другие компиляторы, например, Intel C++ Compiler (ICC).
Для компиляции с библиотекой Guardant API необходимо выполнить следующее (на примере файла с исходным текстом программы — foobar.c):

$ gcc [-I<путь_к_заголовочному_файлу_GrdAPI.h>] -c foobar.c -o foobar.o
$ gcc [-L<путь_к_библиотеке_libgrdapi.a>] foobar.o -o foobar -lpthread -lgrdapi

или

$ gcc [-I<путь_к_заголовочному_файлу_GrdAPI.h>][-L<путь_к_библиотеке_libgrdapi.a>] foobar.c -o foobar-lgrdapi -lpthread

Обратите внимание, что библиотека Guardant API использует библиотеку pthread - POSIX Threads, поэтому для сборки приложений необходимо использовать соответствующую библиотеку. 

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

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

Кроме того, поддерживается запуск защищенных Windows приложений с использованием Wine (www.winehq.org). Для этого в комплект разработчика включен проект библиотеки для Wine — grdwine, распространяемый под свободной лицензией GNU Lesser General Public License version 2.1 (поставляется в виде пакета с исходными текстами– grdwine-0.5.5.tar.gz). 

Запуск защищенных Windows-приложений в среде Wine

Для работы приложений Windows, защищённых современных ключами Guardant под Wine, необходима библиотека grdwine.dll.so. Библиотека поставляется в виде исходных текстов (см. grdwine-0.5.5.tar.gz). Это позволяет ее использовать с любой версией Wine, достаточно собрать и установить библиотеку.

Важно
Рекомендуемая к использованию версия Wine — 1.x.x. Корректная работа с более ранними версиями Wine не гарантируется. Загрузить последнюю версию Wine можно по адресу: https://www.winehq.org/download

Важно
Библиотека предназначена только для работы с современными моделями ключей Guardant. C моделями линейки Stealth II и Stealth III эта библиотека не может быть использована.

Установка зависимостей на примере Ubuntu

Для сборки библиотеки на Ubuntu 16.04 требуется предварительно установить пакеты:

$ sudo apt-get install autoconf
$ sudo apt-get install wine
$ sudo apt-get install wine-dev
$ sudo apt-get install wine-dev
$ sudo apt-get install libc6-dev-i386 (если требуется сборка 32-разрядной версии библиотеки)

Для Ubuntu 17.10 дополнительно установить:

$ sudo apt-get install wine64-tools (если требуется сборка 64-разрядной версии библиотеки, не совместим с wine32-tools)
$ sudo apt-get install wine32-tools (если требуется сборка 32-разрядной версии библиотеки, не совместим с wine64-tools)

Для дистрибутива Ubuntu 16.04 (архитектура i386) достаточно установить пакеты:

$ sudo apt-get install autoconf
$ sudo apt-get install wine
$ sudo apt-get install wine-dev

Последовательность сборки библиотеки grdwine.dll.so

Распаковать архив grdwine-0.5.5.tar.gz :

$ tar -xvf grdwine-0.5.5.tar.gz
$ cd grdwine-0.5.5

Для компиляции и установки 32-разрядной библиотеки выполнить:

$ ./configure --with-wineincs=/usr/include --with-winedlls=/usr/lib/i386-linux-gnu/wine
$ make
# sudo make install

Для компиляции и установки 64-разрядной библиотеки выполнить:

$ ./configure --enable-win64 --with-wineincs=/usr/include --with-winedlls=/usr/lib/x86_64-linux-gnu/wine
$ make
# sudo make install
Важно

Указанные в примере пути к заголовочным файлам и библиотекам Wine (опции --with-wineincs и --with-winedlls) могут меняться в зависимости от версии Wine, используемого дистрибутива Linux или
заданного префикса для установки (в случае, если Wine устанавливался из исходных кодов)

Важно

Для запуска 32-разрядных приложений Windows в дистрибутивах Ubuntu архитектуры x86_64 достаточно собрать только 32-разрядную библиотеку. Сборка 64-разрядной библиотеки требуется для запуска
64-разрядных приложений Windows.

Если правила для udev не были установлены ранее, то их необходимо установить. Подсоедините ключ Guardant к USB-порту компьютера, защищенное приложение готово к работе.

Удаление библиотеки из системы

$ cd grdwine-0.5.5
# make uninstall

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

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

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

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

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

Пример для hotplug или hotplug-ng

# cp etc/grdnt.usermap /etc/hotplug/usb/grdnt.usermap
# cp etc/grdnt /etc/hotplug/usb/grdnt 

Установка правил UDEV

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

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

 

$ tar -xvf udev-rules.tar.gz
$ ./install.sh

 

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

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

GRD_IPC_NAME

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

USB_DEVFS_PATH

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

  • No labels