Снятие лога ключа защиты c помощью USBTrace

Для успешного создания эмулятора ключа защиты часто приходится использовать лог работы ключа защиты с программой. Обычные дамперы ключей защиты зачастую не могут полностью собрать все необходимые данные для эмуляции, поэтому приходится собирать эти данные специальными логгерами: USBTrace, BusHound, HHD Software Monitor Studio, USBLyser и прочими.

Рассмотрим использование USBTrace для снятия лога ключа защиты.

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

2. Установите в систему  USBTrace. Обратите внимание, что для 32 битных и для 64 битных систем используются разные версии.  Скачать можно в разделе Утилиты

3. Выньте ключ защиты из USB порта компьютера. Запустите USBTrace. Включите режим «Capture Hot Plugged Devices» как показано на рисунке ниже. После этого нажмите зеленую стрелку — «Start Capture»

Dongle log USBTrace

Making dongle log with USBTrace

4. Вставьте ключ защиты в порт USB. Запустите программу, защищенную ключом защиты. Выполните в ней основные операции, открытие/закрытие файлов, проектов, расчеты и другие  функции, предусмотренные функционалом программы. В правом окне USBTrace появится информация — лог работы ключа защиты, USB пакеты данных.

Dongle log USBTrace

Making USB dongle log with USBTrace

 5. По завершении выполнения операций в программе нажмите кнопку с красным квадратом «Stop Capture«. Сохраните лог в UTL файл — «File» — «Save As…«, выберите путь для сохранения и имя файла.

6. Сформированный файл можно использовать для создания эмулятора электронного ключа.

Установка эмулятора ключа в Windows 10

Как установить эмулятор ключа в Windows 10 и отключение проверки цифровой подписи.

Как и для любого другого физического устройства, эмулятор ключа требует наличие на компьютере драйвера, управляющего его работой. Большинство драйверов должны проходить обязательную сертификацию Windows Hardware Quality Level (WHQL). 

Драйверы, прошедшие сертификацию имею в комплекте сертификат цифровой подписи компании Microsoft в пакете установки драйвера, и эти драйверы называются подписанными. 

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

Данное действие не наносит вреда операционной системе и программам на ней работающих. 

Для установки драйвера без официальной цифровой подписи необходимо произвести следующие действия:

  1. Отключить UAC
  2. Запустить командную строку от имени администратора 
  3. Выполнить в командной строке команды, показанные ниже:  
  4. Перезагрузиться и установки драйвер-эмулятор запуском install.bat от имени администратора.

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS 

bcdedit.exe -set TESTSIGNING ON

 

 

Настройка клиентов HASP4 Net (nethasp.ini)

Настройка клиентов HASP4 Net (nethasp.ini) 

скачать в pdf

Данная глава описывает, как защищенное под HASP4 Net приложение — клиент HASP4 Net – может быть настроено при помощи конфигурационного файла.

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

В конфигурационном файле клиента HASP4 Net можно настроить поиск менеджера лицензий HASP.

Название конфигурационного файла по умолчанию nethasp.ini. Копия nethasp.ini включается в состав утилит HASP на дистрибутивном диске.

Защищенное приложение ищет конфигурационный файл при первом обращении к сервису HASP4 Net. Поиск конфигурационного файла клиента HASP4 Net осуществляется в следующих директориях:

Тип приложения /

Порядок поиска

Операционная система

 

Win16

Текущая директория → директория Windows → системная директория Windows

 

→ директория исполняемого файла → переменная Path

 

 

Win32

Директория исполняемого файла → текущая директория → системная

 

директория Windows → директория Windows → переменная Path

Mac OS 8.6, 9.1, Mac OS X

Текущая директория

(только приложения Carbon)

 

Mac OS X

Текущая директория → домашняя директория текущего пользователя →

 

директория /etc.

Под Mac OS X поиск nethasp.ini осуществляется только среди открытых файлов (не системных, без лидирующей точки). Если Вы используете case-чувствительность на Mac OS X, убедитесь, что в названии файла nethasp.ini использованы строчные буквы.

Конфигурационный файл клиента НASP4 Net состоит из четырех секций, каждая из которых является необязательной:

·[NH_COMMON] для общих настроек

·[NH_IPX] для протокола IPX

·[NH_NETBIOS] для протокола NetBios

·[NH_TCPIP] для протокола TCP/IP

Секция [NH_COMMON] содержит глобальные настройки для всех секций конфигурационного файла. Каждая из остальных секций содержит настройки, регулирующие операции конкретного протокола.

В каждой секции Вы можете задать общие ключевые слова или ключевые слова, применяемые только в данной секции. Если Вы задали общее ключевое слово в секции какого-либо из протоколов, данная настройка будет иметь приоритет по сравнению со значением в секции [NH_COMMON] (только для данного протокола).

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

Символ «;» является признаком закомментированной строки, такая строка не обрабатывается. Чтобы задействовать какую-либо закомментированную строку, удалите символ «;». Если Вы хотите добавить комментарий, добавьте символ «;» в начале каждой строки комментария.

Название конфигурационного файла HASP4 Net и ключевые слова в нем не являются case-чувствительными (за исключением названий файла под Mac OS X, если используется case-чувствительная файловая система).

[NH_COMMON]

Ключевые слова только для секции [NH_COMMON]

nh_ipx Использовать протокол IPX? Возможные значения: enabled, disabled. nh_netbios Использовать протокол NETBIOS? Возможные значения: enabled, disabled. nh_tcpip Использовать протокол TCP/IP? Возможные значения: enabled, disabled.

Общие ключевые слова для секции [NH_COMMON]

nh_session Задать максимальный период времени, в течение которого защищенное приложение будет пытаться установить соединение с менеджером лицензий HASP. Возможное значение: <число>. По умолчанию – 2 секунды.

nh_send_rcv Задать максимальный период времени для менеджера лицензий HASP на получение и передачу пакетов. Возможное значение: <число>. По умолчанию – 1 секунда.

[NH_IPX]

Ключевые слова только для секции [NH_IPX]

nh_use_bindery

Использовать IPX с bindery (содержит имена и пароли пользователей для авторизации при регистрации на даном компьютере). Данный ключ заменяет ранее использовавшийся ключ NH_USE_SAP. Возможные значения: enabled, disabled. По умолчанию – disabled.

nh_use_broadcast

Ипользовать механизм широковещания IPX. Возможные значения: enabled, disabled. По умолчанию – enabled.

nh_bc_socket_num

Задать номер сокета для механизма широковещания. Возможное значение: <шестнадцатиричное число>. По умолчанию – 7483H.

nh_use_int

Возможные значения: <2F_NEW, 7A_OLD >. По умолчанию – 2F_NEW. 2F_NEW означает, что протокол IPX будет использовать ТОЛЬКО прерывание 2Fh. 7F_OLD означает, что протокол IPX будет использовать ТОЛЬКО прерывание 7Ah.

nh_server_name

Задать имя менеджера лицензий HASP. Максимальное количество имен – 6, максимальная длина имени – 7 символов (не является case-чувствительным). Возможные значения: <имя1>, <имя2>,… .

nh_search_method

Опреляет, как защищенное приложение будет сообщаться с менеджером лицензий HASP: в локальной сети или в интернет. Возможные значения: localnet, internet. По умолчанию — internet.

nh_datfile_path

Задать расположение адресного файла менеджера лицензий HASP. Возможные значения: <путь>.

Общие ключевые слова для секции [NH_IPX]

nh_session Задать максимальный период времени, в течение которого защищенное приложение будет пытаться установить соединение с менеджером лицензий HASP. Возможное значение: <число>. По умолчанию – 2 секунды.

nh_send_rcv Задать максимальный период времени для менеджера лицензий HASP на получение и передачу пакетов. Возможное значение: <число>. По умолчанию – 1 секунда.

[NH_NETBIOS]

Ключевые слова только для секции [NH_NETBIOS]

nh_nbname

Присвоить имя менеджеру лицензий HASP. Максимальное количество имен – одно, максимальное количество символов – 8 (не является case-чувствительным). Возможное значение: <имя>.

nh_uselananum

Присвоить номер канала коммуникации. Возможное значение: <номер>.

Общие ключевые слова для секции [NH_NETBIOS]

nh_session Задать максимальный период времени, в течение которого защищенное приложение будет пытаться установить соединение с менеджером лицензий HASP. Возможное значение: <число>. По умолчанию – 2 секунды.

nh_send_rcv Задать максимальный период времени для менеджера лицензий HASP на получение и передачу пакетов. Возможное значение: <число>. По умолчанию – 1 секунда.

[NH_TCPIP]

Ключевые слова только для секции [NH_TCPIP] nh_server_addr

Задать IP-адреса всех необходимых менеджеров лицензий HASP. Количество адресов не ограничено, возможно перечисление в несколько строк. Возможные значения: <адрес1>, <адрес2>…

Формат задания IP-адреса:

IP address: 192.114.176.65 Local hostname: ftp.aladdin.co.il

nh_server_name

Задать сообщение с названными менеджерами лицензий HASP. Максимальое количество имен – 6, максимальная длина имени – 7 символов (не является case-чувствительным). Возможные значения: <имя1>, <имя2>,…

nh_port_number

Задать номер порта для протокола TCP/IP (опционально). Возможное значение: <номер>. По умолчанию – 475.

nh_tcpip_method

Выбрать метод отправки пакетов – TCP или UDP. Возможные значения: TCP, UDP. По умолчанию

– UDP. На данный момент метод TCP не поддерживается.

nh_use_broadcast

Использовать широковещательный механизм UDP. Возможное значение: enabled, disabled. По умолчанию – enabled.

Общие ключевые слова для секции [NH_TCPIP]

nh_session Задать максимальный период времени, в течение которого защищенное приложение будет пытаться установить соединение с менеджером лицензий HASP. Возможное значение: <число>. По умолчанию – 2 секунды.

nh_send_rcv Задать максимальный период времени для менеджера лицензий HASP на получение и передачу пакетов. Возможное значение: <число>. По умолчанию – 1 секунда.

Примеры настройки ini-файлов см. в папке «HASPini»

Адаптация системы HASP Net в сети. Часто встречающиеся проблемы

Определение диапазона станций под IPX

Используя протокол IPX, Вы можете разрешить определенным станциям в разных сегментах доступ к менеджеру лицензий HASP.

Чтобы разрешить доступ из другого сегмента, необходимо: 1. Загрузить менеджер лицензий HASP с ключом -ipxnosap.

Это гарантирует, что адрес менеджера лицензий HASP не будет объявлен с использованием механизма SAP, но будет объявлен в адресном файле newhaddr.dat.

2.Отредактировать файл nethasp.ini следующим образом:

·в секции [NH_COMMON] задать NH_IPX = Enabled

·в секции [NH_IPX] задать NH_USE_BROADCAST = Disabled и NH_USE_BINDERY = Disabled

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

3. Скопировать защищенное приложение и файл nethasp.ini в одну и ту же директорию.

Убедитесь, что каждая станция в диапазоне (и только станции из диапазона!), загружает приложение из директории.

Определение диапазона станций под TCP/IP

Существуют два метода для задания диапазона станций под TCP/ IP: Вы можете задать либо диапазон станций, которые обслуживает менеджер лицензий HASP, либо задать диапазон станций, которые будет искать определенный менеджер лицензий HASP.

Задание диапазона с использованием настроек файла nhsrv.ini

Менеджер лицензий HASPs для Windows, Win32 и Mac может читать конфигурационный файл nhsrv.ini. Вы можете

отредактировать данный файл для того, чтобы задать диапазон станций, которые будет обслуживать менеджер лицензий HASP под TCP/IP.

Чтобы задать диапазон станций, отредактируйте файл nhsrv.ini следующим образом:

в секции [NHS_SERVER] задайте параметр NHS_IP_LIMIT = <ipaddr> [,<ipaddr....] Формат задания <ipaddr>

Если Вы задаете диапазон станций с использованием настроек файла nhsrv.ini, воспользуйтесь одним из следующих форматов:

10.1.2.3

Менеджер лицензий HASP обслуживает только станцию с заданным IP-адресом;

• 10.1.2.*

Менеджер лицензий HASP обслуживает только станции, которые соответствуют заданной маске IP-адреса (в примере — от 10.1.2.0 до 10.1.2.255).

• 10.1.*.*

Менеджер лицензий HASP обслуживает только станции, которые соответствуют заданной маске IP-адреса ( в примере — от 10.1.0.0 до 10.1.255.255).

Чтобы разрешить только некоторым станциям иметь доступ к системе HASP4 Net в сети под протоколом TCP/IP, необходимо сделать следующее:

1.Отредактировать nhsrv.ini и задать диапазон станций;

2.Поместить nhsrv.ini в месте, доступном для менеджера лицензий HASP.

Задание диапазона с использованием nethasp.ini

Вы можете отредактировать конфигурационный файл HASP4 Net, чтобы указать менеджер лицензий HASP (его адрес), который будут искать станции из диапазона.

Чтобы указать менеджер лицензий HASP, который будут искать станции из диапазона, необходимо:

1.Отредактировать файл nethasp.ini: в секции [NH_TCPIP] задать NH_SERVER_ADDRESS= <адрес менеджера лицензий HASP>;

2.Поместить nethasp.ini в месте, доступном только избранным станциям диапазона.

Определение диапазона станций под NetBIOS

Чтобы разрешить только некоторым станциям доступ к ключу в сети под протоколом NetBIOS, необходимо:

1.Загрузить менеджер лицензий с ключом –nbname, чтобы задать название по Вашему выбору (до 8 символов, не является case-чувствительным). Данный параметр задает NetBIOS-имя менеджера лицензий HASP. Например, чтобы задать NetBIOS-имя станции как «firstsrv», введите:

haspserv -nbname = firstsrv

2.Отредактировать файл nethasp.ini:

·в секции [NH_COMMON] задать NH_NETBIOS = Enabled

·в секции [NH_NETBIOS] задать NH_NBNAME = firstsrv

Данные действия привяжут станции к этому NetBIOS-имени.

3.Поместить защищенное приложение и файл nethasp.ini file в одну и ту же директорию. Убедитесь, что каждая станция из диапазона (и только станции из диапазона!), загружают приложение из директории.

Вы не можете задать одинаковое NetBIOS-имя для двух станций. Если Вы хотите загружать менеджер лицензий HASP более чем на одной станции, Вы должны задать различные NetBIOS-имена для каждого менеджера лицензий HASP.

Настройка таймаута

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

Почти во всех сетях таймаут, установленный по умолчанию, является достаточным, Вы можете поменять параметры только для медленных или перегруженных станций.

Чтобы задать таймаут, необходимо в соответствующей секции файла nethasp.ini задать:

NH_SESSION = <m> NH_SEND_RCV = <n>,

где where m и n измеряются в секундах. По умолчанию m = 2 секунды, n = 1 секунда.

Определение количества обслуживаемых защищаемых приложений

В менеджере лицензий HASP Вы может изменить количество обслуживаемых защищаемых приложений. По умолчанию менеджер лицензий HASP может обслуживать максимум 1000 (Win32, MacOS) защищаемых приложений.

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

Чтобы изменить значение отводимой памяти по умолчанию, необходимо:

• загрузить менеджер лицензий HASP с ключом nhsrvw32 -userlist =n, где n – количество обслуживаемых защищаемых приложений.

Параметр -userlist доступен только для Win32.

Удаление драйверов HASP из системы. Проблемы и пути решения.

       В ряде случаев, возникает необходимость удаления / обновления драйверов ключей HASP в операционной системе, когда ключ или работает некорректно, или же вообще не виден в менеджере лицензий по адресу http://localhost:1947. В этом случае необходимо убедиться в работоспособности ключа защиты и переустановить драйвера ключа защиты в системе.

Для удаления драйвера из системы необходимо выполнить следующие действия:

  • Скачайте свежий драйвер по ссылке: http://rus.cadshop.ru/downloads/
  • Остановите все запущенные менеджеры лицензий ключа, такие как HASP LM («net stop «HASP Loader» » )
  • Выгрузите все эмуляторы ключей, при их наличии, vusubus, multikey и т.п.
  • Выньте все ключи защиты HASP из портов USB и LPT
  • Выполните команду «haspdinst_x.xx.exe -r -kp -fremove» (x.xx — версия скачанного драйвера)
  • Проверьте после этого что системный процесс hasplms.exe отсутствует в списке запущенных процессов. Если он присутствует и запущен, снимите его в диспетчере задач или из командной строки:»taskkill  /F /IM hasplms.exe«
  • После этого повторите удаление драйвера «haspdinst_x.xx.exe -r -kp -fremove«
  • Иногда, после запуска команды удаления драйвера, окно об успешном завершении выводится моментально и фактического удаления не происходит. Для решения это прблемы, скачайте драйвер версий 5.22-5.40 и проделайте ту же самую операцию, например haspdinst_5.22.exe -r -kp -fremove
  • После этого, для верности, можно вручную удалить файлы из системного каталога Windows.
    aksclass.sys
    akscls9x.sys
    aksfridge.sys
    akshasp.cat
    akshasp.inf .
    akshasp.sys .
    akshhl.cat
    akshhl.inf 
    akshhl.sys
    akshhl29.dll
    akshsp2k.inf
    akshsp51.dll
    akshsp9x.sys
    akspccard.cat
    akspccard.inf
    akspccard.sys
    aksusb.cat
    aksusb.inf
    aksusb.sys
    aksusb2k.inf
    aksusb3.dll
    aksusb9x.sys
    hardlock.sys
    hardlock.vxd
    hasplms.exe
    hlvdd.dll
  • Перезагрузите систему, и установите драйвер  нужной вам версии http://cadshop.ru/downloads/ 
  • Вставьте ключ в порт и убедитесь, что он установился в диспетчере устройств без ошибок. В диспетчере устройство должны присутствовать все три устройства: 
    • SafeNet Inc USB key
    • SafeNet Inc HASP key
    • SafeNet Inc Sentinel HL key

 

 

 

Отключение проверки цифровых подписей в Windows 7, Windows 8., Windows 8.1

В некоторых случаях, для корретной установки установки эмуляторов в 64 битных системах Windows 7, Windows 8.x необходимо отключить систему проверки цифровой подписи драйверов эмулятора.
Вы можете сделать это вручную, согласни приведенной ниже инструкции или воспользоваться утилитой — batch файлом, который необходимо выполнить от имени Администратора и перезагрузиться:

Утилита для отключения проверки цифровой подписи Windows

Для отключения режима вручную:

  • 1. Проведите пальцем от правого края экрана (для Windows 8.x) или нажмите «Пуск» (для Windows 7), нажмите Поиск и введите cmd, или же введите команду cmd на начальном экране.
  • 2. В результатах поиска коснитесь пункта Командная строка и удерживайте его (или щелкните его правой кнопкой мыши). В меню, появившемся в нижней части экрана, выберите пункт Запуск от имени администратора.

 Примечание. При появлении окна контроля учетных записей пользователей, нажмите Да.

  • 3. В командной строке введите указанную ниже команду и нажмите клавишу ВВОД.

bcdedit.exe -set TESTSIGNING ON

Set Test signing ON

  • 4. Когда появится подтверждение, закройте окно командной строки.
  • 5. Сохраните данные и перезагрузите компьютер.
  • Для включения режима проверки цифровой подписи обратно просто выполните команду bcdedit.exe -set TESTSIGNING OFF

 

Режим проверки цифровых подписей не влияет на работоспособность других функций Windows и управляет только установкой драйверов в системе разрешая/запрещая установку отдельных типов драйверов.

Защита программного обеспечения с помощью электронных ключей

Донгл (от англ. dongle) — аппаратное средство, электронный ключ, предназначенный для защиты от нелицензионного использования и распространения программного обеспечения.

В этой  статье мы рассмотрим основные принципы защиты программного обеспечения электронными ключами и попытаемся проанализировать эффективность такой защиты.

Continue reading