Как сделать эмулятор usb ключа guardant

Обновлено: 06.07.2024

Полностью автоматический режим

Внимание!

В этом режиме настройка лицензионных ограничений, программирование памяти ключа и защита выполняются только при помощи GUI-утилиты LicenseWizard.exe («Мастер лицензирования и автоматической защиты»)

Запустить «Guardant Интегратор»

Нажать [Мастер лицензирования и автоматической защиты ]

Нажать [Пустой проект]

  • «Способ программирования ключей» оставить «Алгоритмы и данные в ключе генерируются автоматически мастером»
  • «Средство лицензирования (как защищаться от копирования)»в выпадающем списке «Использовать аппаратный ключ модели:» указать модель ключа
  • Нажать [Продолжить]
  • Указать имя проекта и каталог, в котором сохранятся файлы проекта
  • Нажать [Продолжить]

Выбрать нужный ключ из списка подсоединенных и, если нужно, включить опцию «Использовать ключ в HID режиме»

Нажать [Продолжить]

Введите свои значения или оставьте стандартные настройки для полей общего назначения

  • Нажать [Добавить] и в проводнике Windows выбрать защищаемые файлы
  • На вкладке «Лицензирование» не применять дополнительные настройки лицензирования (для усиления защиты лучше включить опцию «Использовать алгоритм ЭЦП»)
  • Включить нужные опции защиты на вкладке «Защита»
  • Настроить сервисные опции на вкладке «Сервис»
  • Нажать [Продолжить]

После завершения работы мастера защищенное приложение и дополнительные файлы будут в каталоге указанном на шаге №5, в подкаталоге «Result»

Ключ программируется самостоятельно

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту « Редактор памяти ключей Guardant » ( grdutil.exe ), а защита выполняется GUI-утилитой LicenseWizard.exe («Мастер лицензирования и автоматической защиты»)

Запустить «Guardant Интегратор»

Нажать [П рограммирование электронных ключей ]

При помощи утилиты программирования электронных ключей « Редактор памяти ключей Guardant » ( grdutil.exe ) создать новый образ нажав [Ctrl+N] , или:

Внимание!

В диалоговом окне создания нового образа нужно выбрать тип ключа из нижней области «Создание пустого образа»

Создать поле с аппаратным алгоритмом симметричного шифрования AES128 :

Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

Двойным кликом на поле открыть его свойства

Вкладка « Ключ ECC160 »

Нажать [ Экспорт в bin- файл автозащиты ] и выполнить сохранение * .bin- файла открытого ключа

Записать образ в ключ нажав [Ctrl+W] , или:

  • Меню « Ключ »
  • Если нужно, включить опцию « Записывать ключи как HID »
  • Нажать [Записать образ в ключ]

В «Guardant Интегратор» нажать [Мастер лицензирования и автоматической защиты ]

Нажать [Пустой проект]

Настройка параметров нового проекта:

    «Способ программирования ключей» выбрать «Ключ программируется разработчиком самостоятельно »

«Средство лицензирования (как защищаться от копирования) » в выпадающем списке «Использовать аппаратный ключ модели:» указать модель ключа

Нажать [Продолжить]

Создание нового проекта:

Указать имя проекта и каталог, в котором сохранятся файлы проекта

Нажать [Продолжить]

Выбрать нужный ключ из списка подсоединенных

Нажать [Продолжить]

Выбор защищаемых приложений:

Нажать [Добавить] и в проводнике Windows выбрать защищаемые файлы

На вкладке «Лицензирование» указать размер вопроса алгоритма ( 16, 32 или 64 для AES128 ) и номер (числовое имя) (узнать номер алгоритма можно в grdutil.exe , посмотрев столбец [ Тип ] — например, если для нужного алгоритма в столбце [ Тип ] указанно Алгоритм 00 ( AES128 ) , то номер будет 0 )

Для усиления защиты лучше включить опцию «Использовать алгоритм ЭЦП» , нажать […] и в проводнике Windows выбрать ранее сохраненный (п. 4 ) *.bin-файла открытого ключа

Включить нужные опции защиты на вкладке «Защита»

Включить нужные сервисные опции на вкладке «Сервис»

Нажать [Продолжить]

После завершения работы мастера защищенное приложение и дополнительные файлы будут в каталоге указанном на шаге №9, в подкаталоге «Result»

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту « Редактор памяти ключей Guardant » ( grdutil.exe ), а защита выполняется консольной утилитой grdarmor.exe («Guardant Armor»)

Запустить «Guardant Интегратор»

Нажать [П рограммирование электронных ключей ]

При помощи утилиты программирования электронных ключей « Редактор памяти ключей Guardant » ( grdutil.exe ) создать новый образ нажав [Ctrl+N], или:

Внимание!

В диалоговом окне создания нового образа нужно выбрать тип ключа из нижней области «Создание пустого образа»

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

Двойным кликом на поле открыть его свойства

Вкладка « Ключ ECC160 »

Нажать [ Экспорт в bin- файл автозащиты ] и выполнить сохранение * .bin- файла открытого ключа

Записать образ в ключ нажав [Ctrl+W], или:

  • Меню « Ключ »
  • Если нужно, включить опцию « Записывать ключи как HID »
  • Нажать [Записать образ в ключ]

Подготовить защищаемое приложение — выполнить его сборку с генерацией MAP-файла сопоставления

Подготовить файл ( * .prc или *.ini ) c перечислением защищаемых функций

Запустить стандартное Windows- приложение « Командная строка » и перейти в папку « Bin » , установленного Guardant SDK ( « по умолчанию » C :\Program Files (x86)\Guardant\SDK7\ Bin )

Внимание!

Для выполнения защиты 64-битных приложений необходимо перейти в папку «х64» , установленного Guardant SDK ( « по умолчанию » C :\Program Files (x86)\Guardant\SDK7\ Bin\х64 )

Запустить grdarmor.exe c параметрами привязки, защиты и нужным файлом защищаемых функций ( * .prc или *.ini )

grdarmor.exe -ENVELOPE_MODE=S -GS3S -OUT=./IniProtect -INI=app.ini -MAP=app.map app.exe

Используется * .prc -файл, аппаратный режим работы конверта и USB- ключ Guardant Sign

Используется * .ini -файл, программный режим работы конверта и USB- ключ Guardant Sign

Внимание!

Важно!

  1. Утилита обфускации CodeObfuscator.exe
  2. Утилита защиты кода CodeProtect.exe

Запустить «Guardant Интегратор»

Нажать [П рограммирование электронных ключей ]

При помощи утилиты программирования электронных ключей « Редактор памяти ключей Guardant » ( grdutil.exe ) создать новый образ нажав [Ctrl+N], или:

Внимание!

В диалоговом окне создания нового образа нужно выбрать тип ключа из нижней области «Создание пустого образа»

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

Двойным кликом на поле открыть его свойства

Вкладка « Ключ ECC160 »

Нажать [ Экспорт в bin- файл автозащиты ] и выполнить сохранение * .bin- файла открытого ключа

Записать образ в ключ нажав [Ctrl+W], или:

  • Меню « Ключ »
  • Если нужно, включить опцию « Записывать ключи как HID »
  • Нажать [Записать образ в ключ]

Запустить стандартное Windows- приложение « Командная строка » и перейти в папку « Bin » , установленного Guardant SDK ( « по умолчанию » C :\Program Files (x86)\Guardant\SDK7\ Bin )

Запустить CodeObfuscator.exe c параметрами привязки и защиты

Внимание!

Важно!

  1. Утилита обфускации CodeObfuscator.exe
  2. Утилита защиты кода CodeProtect.exe

Запустить «Guardant Интегратор»

Нажать [П рограммирование электронных ключей ]

При помощи утилиты программирования электронных ключей « Редактор памяти ключей Guardant » ( grdutil.exe ) создать новый образ нажав [Ctrl+N], или:

Внимание!

В диалоговом окне создания нового образа нужно выбрать тип ключа из нижней области «Создание пустого образа»

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

Двойным кликом на поле открыть его свойства

Вкладка « Ключ ECC160 »

Нажать [ Экспорт в bin- файл автозащиты ] и выполнить сохранение * .bin- файла открытого ключа

Записать образ в ключ нажав [Ctrl+W], или:

  • Меню « Ключ »
  • Если нужно, включить опцию « Записывать ключи как HID »
  • Нажать [Записать образ в ключ]

Запустить стандартное Windows- приложение « Командная строка » и перейти в папку « Bin » , установленного Guardant SDK ( « по умолчанию » C :\Program Files (x86)\Guardant\SDK7\ Bin )

Запустить CodeProtect.exe c параметрами привязки и защиты

CodeProtect.exe /GS3S=0:16::1:app.exe.bin /PER=10 /ATR=1 /OUT=./Result /MAP=app.map app.exe

Внимание!

В этом режиме настройка лицензионных ограничений производится при программировании памяти ключа через утилиту « Редактор памяти ключей Guardant » ( grdutil.exe ), а защита выполняется консольной утилитой nwkey32.exe

Запустить «Guardant Интегратор»

Нажать [П рограммирование электронных ключей ]

При помощи утилиты программирования электронных ключей « Редактор памяти ключей Guardant » ( grdutil.exe ) создать новый образ нажав [Ctrl+N], или:

Внимание!

В диалоговом окне создания нового образа нужно выбрать тип ключа из нижней области «Создание пустого образа»

Создать поле с аппаратным алгоритмом симметричного шифрования AES128:

Для усиления защиты лучше еще создать поле с аппаратным алгоритмом выработки ЭЦП ECC160

Двойным кликом на поле открыть его свойства

Вкладка « Ключ ECC160 »

Нажать [ Экспорт в bin- файл автозащиты ] и выполнить сохранение * .bin- файла открытого ключа

Записать образ в ключ нажав [Ctrl+W], или:

  • Меню « Ключ »
  • Если нужно, включить опцию « Записывать ключи как HID »
  • Нажать [Записать образ в ключ]

Запустить стандартное Windows- приложение « Командная строка » и перейти в папку « Bin » , установленного Guardant SDK ( « по умолчанию » C :\Program Files (x86)\Guardant\SDK7\ Bin )

Запустить nwkey32.exe c параметрами привязки и защиты

nwkey32.exe /GS3S=0:16::1:app.exe.bin /IMPORT_HOOK=30:5 /RIP_CODE=10 /T=5 /ATR=1 /OUT=./Result /MAP=app.map app.exe

Приложение будет защищено с использованием аппаратного электронного USB-ключа Guardant Sign. При этом будет защищено 30 процентов импортируемых функций по 5 инструкций из каждой функции, а также для инструкций в теле приложения существует 10-процентная вероятность переноса в виртуальную машину

В этой статье описаны способы обхода аппаратных систем защиты. В качестве примера рассмотрена технология HASP (Hardware Against Software Piracy), разработанная компанией Aladdin Knowledge Systems Ltd. В прошлом данная технология являлась одной из самых популярных аппаратных систем защиты ПО.

Мощью аппаратной защиты HASP пользуются многие серьезные разработчики софта, которые не хотят, чтобы их продукт несанкционированно распространялся. Хаспом, например, защищаются пакеты "1С.Бухгалтерия" или "1С.Предприятие", без которых не может прожить ни одно более или менее организованное дело. Популярный юридический справочник "КонсультантПлюс" также защищает доступ к данным с помощью электронных ключиков. Чтобы воспользоваться вышеупомянутым или другим не менее дорогостоящим софтом, не платя никому ни копейки, недостаточно просто полазить по Сети в поисках txt’шника с ключиками. Однако хакер всегда разберется, что делать с защитой, пусть и аппаратной. И паяльник ему для этого не понадобится.

Взглянем

Утрируя, можно сказать, что HASP состоит из двух частей: аппаратной и программной. Аппаратная часть — это электронный ключик в виде USB-брелка, PCMCIA-карты, LTP-девайса или вообще внутренней PCI-карты. Установленный софт будет работать только на той машине, в которую воткнут электронный ключ. Собственно, неплохо было бы отучить софт от такой неприятной для кошелька привычки.

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

Механизм системы защиты

Сам брелок нас почти не интересует, в отличие от ПО в его комплекте. Для нас наибольший интерес представляет модуль hardlock.sys. Не углубляясь в подробности, отмечу, что этот драйвер отвечает за взаимодействие с аппаратным ключом. Он имеет два объекта устройства, один из которых обладает символьным именем DeviceFNT0. Используя этот объект, защищенное приложение посредством диспетчера ввода-вывода проверяет лицензию на использование данного ПО.

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

Перехват и эмуляция

Как уже отмечалось, идея перехвата состоит в перезаписи обработчиков IRP-пакетов. Для этого необходимо иметь возможность изменять поля структуры DRIVER_OBJECT. К счастью, существует функция IoGetDevicePointer, которая возвращает указатель на объект вершины стека именованных устройств и указатель на соответствующий файловый объект. Вот фрагмент кода функции, устанавливающей ловушку:

NTSTATUS HookDevice(LPWSTR lpDevice)

UNICODE_STRING DeviceName;
PDEVICE_OBJECT DeviceObject;
PFILE_OBJECT FileObject;

RtlInitUnicodeString(&DeviceName, lpDevice);
IoGetDeviceObjectPointer(&DeviceName, 1u, &FileObject, &DeviceObject);

Получив указатель на структуру DEVICE_OBJECT, имеем указатель на DRIVER_OBJECT. Теперь заменим адреса обработчиков и функций выгрузки драйвера на свои:

NTSTATUS HookDevice(LPWSTR lpDevice)

gDriverObject = DeviceObject-> DriverObject;

gDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = HookDispatch;

gInternalDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = HookDispatch;

gDriverUnload = gDriverObject->DriverUnload;
gDriverObject->DriverUnload = HookUnload;

В последней строчке вызывается функция ObfDereferenceObject, которая уменьшает количество ссылок на файловый объект. Это необходимо делать для корректной выгрузки драйвера, чтобы не было утечки ресурсов и аналогичных ошибок.

Так как указатель на объект драйвера защиты сохранeн, то чтобы снять ловушку, нужно просто восстановить прежние обработчики IRP-пакетов:

gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = gDeviceControl;
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = gInternalDeviceControl;
gDriverObject->DriverUnload = gDriverUnload;

Конечно, надо добавить соответствующие проверки на валидность указателей и прочее.

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

void HookUnload(PDRIVER_OBJECT DrvObj)

Здесь происходит восстановление полей структуры DRIVER_OBJECT, и передаeтся управление на оригинальный код выгрузки драйвера перехваченного устройства.

Аналогично поступаем, если наш драйвер завершает работу раньше системы защиты. Только нужно высвободить захваченные ресурсы и не вызывать сохранeнный gHookUnload.



Принцип работы эмулятора

Перехватчик

Зная основные принципы простейшего перехвата IRP-пакетов, приступим к реализации пока только самого перехватчика для дальнейшего анализа. Для этого создадим объект драйвера, который содержит символьное имя (например DosDevicesHook) и точки входа CREATE, CLOSE, READ.

IoCreateDevice(DriverObject, 0, &usDeviceName, FILE_DEVICE_NULL, 0, 0, &pDeviceObject);
IoCreateSymbolicLink(&usSymbolicDeviceName, &usDeviceName);

DriverObject->MajorFunction[IRP_MJ_CREATE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_READ] = DriverDispatch;
DriverObject->DriverUnload = DriverUnload;

if (idlTail->IrpData.InputLength)
idlTail->InputBuffer = ExAllocatePool(NonPagedPool, idlTail->IrpData.InputLength);
RtlCopyMemory(idlTail->InputBuffer, Irp->AssociatedIrp.SystemBuffer, idlTail->IrpData.InputLength);
>

if (IoSL->MajorFunction == IRP_MJ_DEVICE_CONTROL)
Status = pHookedDriverDispatch[IRP_MJ_DEVICE_CONTROL]( DeviceObject, Irp);

if (idlTail->IrpData.OutputLength)
idlTail->OutputBuffer = ExAllocatePool(NonPagedPool, idlTail-> IrpData.OutputLength);
RtlCopyMemory(idlTail->OutputBuffer, lpBuffer, idlTail->IrpData.OutputLength);
>

Length = IoSL->Parameters.Read.Length;
if (Length == sizeof(IRP_DATA) && idlHead)
RtlCopyMemory(Irp->UserBuffer, &idlHead->IrpData, Length);
else if (idlHead && Length == (idlHead-> IrpData.InputLength + idlHead-> IrpData.OutputLength))
RtlCopyMemory(Irp->UserBuffer, idlHead-> InputBuffer, idlHead->IrpData.InputLength);
RtlCopyMemory((PVOID)((ULONG)Irp->UserBuffer + idlHead->IrpData.InputLength), idlHead-> OutputBuffer, idlHead->IrpData.OutputLength);
>
else if (Length == 1 && idlHead)
if (idlHead->InputBuffer)
ExFreePool(idlHead->InputBuffer);
if (idlHead->OutputBuffer)
ExFreePool(idlHead->OutputBuffer);

idlTemp = idlHead->ldlNext;
ExFreePool(idlHead);
idlHead = idlTemp;
if (!idlTemp)
idlTail = NULL;
>

Когда перехватчик готов, запускаем сначала его, а затем — защищенное приложение с ключами и без. Из полученных логов становится видно, какие управляющие коды посылаются и их результаты. Также можно видеть, что запросы и ответы на два различных кода (9c402450, 9c4024a0) не изменяются. Казалось бы, можно построить табличный эмулятор, но после серии запусков убеждаемся, что это невозможно, так как содержимое буферов различно, и неизвестно, как оно образуется.



Перехваченные пакеты без ключа



Перехваченные пакеты с ключом

Затем возможны несколько вариантов дальнейших действий:

  • изучать дебри драйвера защиты;
  • воспользоваться информацией самих разработчиков системы.

Оба варианта дают необходимую информацию. Итак, оказывается, содержимое пакетов шифруется публичным симметричным алгоритмом AES (Advanced Encryption Standard). Логичной целью является получение ключа шифрования.

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



Пример дампа ключа

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

unsigned short Key;
unsigned char RefKey[8], VerKey[8];

for (Key = 0; Key <= 0x7fff, Key++)
if (!HL_LOGIN(Key, 1, RefKey, VerKey))
HL_LOGOUT();
Break;
>
>

Далее ключ (MODAD) используется для снятия дампа: тип, идентификатор, порт подключения и так далее. Для этого есть функции, определенные разработчиками.

Функции HL_LOGIN, HL_LOGOUT доступны из HASP SDK для разработчиков приложений, защищенных на этой платформе, и имеют следующие прототипы:

WORD HL_LOGIN(WORD ModAd, Word Access, Byte *RefKey, Byt *VerKey);
WORD HL_LOGOUT(void);

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

Новый API мало отличается от старого, и это никак не сказывается на принципе работы брутфорса. Подробную документацию Hasp API, готовые реализации брутфорса и дампера ключей можно найти на диске.

Обработчик

Теперь есть все необходимое для корректной работы модуля. Осталось реализовать подстановку лицензионной информации. Причем можно перехватывать лишь некоторые IRP-пакеты. Здесь все уже зависит от конкретной версии ключа и защищаемой программы.

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

PIO_STACK_LOCATION Stack = Irp-> Tail.Overlay.CurrentStackLocation;
ULONG IoControlCode;
if (Stack->MajorFunction == 14)
IoControlCode = Stack.DeviceIoControl.IoControlCode;
If (IoControlCode != 0x9c402458)
Return gDeviceControl(DeviceObject, Irp);
>
else
Encrypt(Irp->AssociatedIrp.SystemBuffer);
Crypt(Irp->AssociatedIrp.SystemBuffer, Key, DumpMemory);
>
>

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

void Encrypt(BYTE * Buffer)
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);

if (Ver)
for (int i = 0; i < 0xB9; i++) (WORD)(Buffer + i) += Seed;
Seed = (Seed >> 15) | (Seed << 1);
Seed -= (WORD)(Buffer + i) ^ i;
>

for (int i = 0xBE; i < 0xFF; i++) (WORD)(Buffer + i) -= Seed;
Seed = (Seed >> 15) | (Seed << 1);
Seed += (WORD)(Buffer + i) ^ i;
>

Видно, что алгоритм гораздо сложнее, чем обычный сдвиг и исключающее "или". А вот алгоритм дешифрования:

void Decrypt(BYTE* Buffer)
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);

if (Ver) for (int i = 0xFE; i > 0xBD; i--) Seed -= (WORD)(Buffer + i) ^ i;
Seed = (Seed << 15) | (Seed >> 1);
(WORD)(Buffer + i) += Seed;
>

for (int i = 0xB8; i >= 0; i--) Seed += (WORD)(Buffer + i) ^ i;
Seed = (Seed << 15) | (Seed >> 1);
(WORD)(Buffer + i) -= Seed;
>

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

В заключение отмечу, что построение табличного эмулятора, основанного на перехвате DeviceIoControl, — достаточно трудная задача. Но такой принцип эмулятора можно использовать и на другом уровне взаимодействия: создать виртуальную USB-шину.

Заключение

Это не единственный способ избавиться от системы защиты. Существуют и другие, более совершенные методы. Изложенные в статье принципы можно использовать и для анализа работы драйверов, перехватывая IRP-пакеты. Таким образом можно добавить неплохой инструмент в свой сделанный на коленке набор. Удачи!

Электронные ключи Hasp, Guardant, Sentinel

Ссылки скрываем не менее 10

В данном разделе предлогаю разместь программы для взлома вышеуказанных ключей.

маловато ключиков-то. eutron/deskey/matrix/wibu

чуток софта для дампанья на Споравановском сайте:

У вас нет прав чтобы видеть скрытый текст, содержащийся здесь. У вас нет прав чтобы видеть скрытый текст, содержащийся здесь. *** Скрытый Текст ***
прошу помочь, разжевывать ненадо :))
*** Скрытый Текст ***

Прога которой ты снимал дамп,nxdmp 0.3, снимает дамп ключа mem_B5EA4A6B.bin, и fd_хх_B5EA4A6B.bin и al_хх_B5EA4A6B.bin - алгоритмы ключа. Честно признаюсь не знаю как и куда засунуть эти файлы. Сколько не искал инфы по данным файлам, ничего не смог найти.

Если что-либо найдешь полезного, напиши.

Есть программа КормОптима 4 с ключом Guardant, может кто мне чайнику пошагово объяснить как избавить от USB ключа? Ссори если не туда,но больше некуда:cool:
Сталкнулся с такой проблеммой- не хочет работать HASP emul на двухядерной машине.
Подскажите в чем проблемма или есть более новая версия поддерживающая два ядра? Hasp и Guardant эти ключи, установленные для двух разных программ мешают друг другу или нет? Мешают. Приложения, которые защищены этими ключами тормозят при работе на одной и той же машине Мешают. Приложения, которые защищены этими ключами тормозят при работе на одной и той же машине Кто нибуть перебивал номер,контору
в эмуле guardant от infern0 .

Larry можно найти здесь:

Люди, нужен ключ для VideoNet 7.3! Можно както пользоваться программой, если оригинального USB ключа не было, нет и наврятли будет? Можно его программно заменить? Если можно, то дайте ссылочку на эту программу! Можно и без ключа, но вряд ли кто-то захочет засветить свой серийный номер :cool: Эмуляторы почти для всех видов ключей ходят в открытом доступе, только ими надо уметь правильно пользоваться. и иметь представление о защите ключа и его особенностях.
Я первый раз слышу про такой ключ. Ты можешь что нибудь про него рассказать. (с какой программой работает, кем выпускается и тд и тп) Правильно ли я понял, что для VideoNet 7 эмулятор существует, а для 8 нет? Вопрос возник потому, что VedeoNetoм пользуюсь давно, начинал с 7, теперь 8sp4, ключи стоят те же и работают. Я первый раз слышу про такой ключ. Ты можешь что нибудь про него рассказать. (с какой программой работает, кем выпускается и тд и тп) Программа как раз Opty-Way, а ключ Alladin Hardlock. Если у тебя получалось эмулировать Hardlock - напиши чем. Все что я находил неплохо работает с Hasp'ми, а с hardlock'ми не работает :нет Правильно ли я понял, что для VideoNet 7 эмулятор существует, а для 8 нет? Вопрос возник потому, что VedeoNetoм пользуюсь давно, начинал с 7, теперь 8sp4, ключи стоят те же и работают.

Эмуляторы ключа Hardlock в открытом доступе есть, сиды можно попросить посчитать :cool:

Как клонировать USB-ключ и создать резервную копию ключа? Пошаговое руководство

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

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

В этом руководстве мы шаг за шагом объясним , что такое ключ безопасности Dongle или USB? Для чего они нужны и как создать полнофункциональную копию. Наконец, предупреждение , во время копирования USB-ключа вы должны выполнить его правильно, в противном случае устройство может быть повреждено.

Что такое ключ или ключевое устройство и для чего он нужен?

Tipos de Dongle USB HDMI

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

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

Их также можно использовать для интеграции паролей, не позволяя пользователям вводить файлы и/или папки без этих паролей. Адаптеры или ключи безопасности могут быть типа USB или HDMI.

Действия по клонированию ключа USB или флэш-накопителя и пропуск защиты программы

Существуют разные методы для копирования или клонирования ключа, один из которых доступен только для компьютеров с операционными системами Windows, от Windows XP до Windows 10. Имейте в виду, что этот метод является его эмуляцией. Выполните каждый из описанных шагов в точности так, как они указаны, поскольку ошибка может привести к повреждению USB-устройств.

Требования к клонированию USB-ключа

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

  • Иметь компьютер с действующей операционной системой для программы (Windows XP/Vista).
  • Узнать марку или модель Dongle , на который вы собираетесь сделать копию: это могут быть следующие; HASP или Sentinel.
  • Узнав модель устройства Dongle, вы приступите к загрузке эмулятора по следующим ссылкам:
    • Ссылка 1
    • Ссылка 2

    Descargar dongle emulator

    Процесс создания

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

    Дамп ключа

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

    volcado de un dongle usando neobit

    В этом случае процесс был выполнен с устройством Sentinel, и драйверы Sentinel были установлены. Если они не установлены, программа сообщит об ошибке.

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

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

    Первый этап

    Вам нужно найти ключ, если устройство правильно подключено к USB-порту, вы можете просмотреть его. В случае ошибки измените устройство порта и Перезапустите программу, чтобы снова найти компонент.

    Второй этап

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

    Третий этап

    Вам нужно создать файл дампа, который будет «.dng». Этот файл будет тем, который мы будем использовать в эмуляторе после завершения процесса.

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

    progreso del vocado en neobit

    Ошибки во время процесса

    Каждый этап может иметь разные сбои, вызывая определенные ошибки. Они показаны в панели ошибок программы. В зависимости от типа может быть способ ее решения. Далее мы назовем наиболее распространенные ошибки.

    errores en neobit

    • Ошибка «Не удается найти ключ» (Cannot find dongle) возникает, когда программа не может найти устройство Dongle.
    • Также «Невозможно инициализировать сторожевой API» (ошибка инициализации Sentinel API) , это происходит при сбоях драйверов. Рекомендуется, чтобы во время установки они активировались как служба, которая запускает Windows при запуске.
    • Когда процесс завершится, вы уже создали файл, который будет резервной копией ключа, полностью готов к эмуляции при необходимости.

    Эмуляция .dng файла

    Теперь вам придется использовать некоторые из эмуляторов, которые мы указали ранее, так как в этом руководстве используется программа Sentinel, мы будем использовать этот эмулятор. Не забудьте использовать тот, который соответствует модели вашего устройства.

    drivers de sentinel

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

    Вы можете увидеть 3 вкладки, каждая из которых имеет определенные функции:

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

    Первый процесс, который вы выберете,-это вкладка «Драйвер» , чтобы программа работала таким образом. Правильный способ установки следующий:

    • Нажмите «Установить драйвер».
    • Параметры автоматического и ручного выполнения (автоматическая пометка/ручная пометка).
    • Выберите «Ручное выполнение».
    • Нажмите «Сохранить состояние» , чтобы сохранить.
    • Лицензия . Это лицензия на программу.
    • Лицензионные ключи . Здесь будет лицензия, которую вы хотите эмулировать.
    • Идентификатор компьютера . Идентификатор используемого компьютера.

    licencias y id del computador desde sentinel

    Вы нажмете кнопку accoun Start Servicie ”, чтобы начать процесс. Вы увидите, какой статус программы изменился. Теперь он скажет вам : «Служба уже запущена и работает». Вы можете увидеть это в «Статус Стража».

    Загрузить файл .dng

    Теперь вам просто нужно нажать на вкладку «Ключи» , чтобы загрузить файл дампа, в данном случае «Файл Dng», Вы ранее создали. Для этого вам нужно сделать следующее:

    Как поделиться ключом через локальную сеть или Интернет?

    Существует другой способ поделиться устройством Dongle без необходимости делать копию. Большим преимуществом этого варианта является то, что он работает для текущих операционных систем: Windows, MacOS, Linux, Android.

    Для этого есть программа под названием: FlexiHub.

    flexihub

    Это бесплатная версия , которую можно попробовать в течение 14 дней, и платная. Платная версия по подписке. Хотя у него также есть бессрочная лицензия, которая называется Сетевые ворота USB.

    Читайте также: