C windows system32 drivers multikey sys

TestProtect

What one person has done, another can break always.

MultiKey

MultiKey — универсальный сборный эмулятор электронных ключей. Предназначен для более-менее точного воспроизведения (эмуляции) действий электронных ключей при работе с защищаемым приложением.
Цель использования — разработка (доработка, тестирование) защитных механизмов програмного обеспечения, исключающих использование эмуляторов для запуска ПО без аппаратных ключей защиты или делающее этот процесс чрезвычайно трудоемким.

  • Hasp3/4 , Hasp HL , Hasp SRM
  • Hardlock
  • Sentinel superpro , ultrapro
  • Guardant Stealth I , Stealth II
  • Dinkey

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

Лицензирование

Эмулятор MultiKey можно свободно скачать на странице загрузок.

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

. Запущен онлайн сервис для генерации лицензий для Multikey 19.1.8 x 32 >>> get license.

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

Внимание! Все решения эмулятора MultiKey антивирусные компании постоянно относят к вирусам и троянам. Это происходит из-за высокой защиты эмулятора протектором и антивирусы не в состоянии анализировать файл.

Лицензирование бесплатно для таких типов ключей :

  • Все типы ключей (кроме Hasp SRM) для 32-битных ОС без привязки к оборудованию.

Лицензирование ключей HASP SRM а также версий под 64-бит ОС производится по договоренности.

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

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

C windows system32 drivers multikey sys

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

Путь в реестре с данными для эмулятора:

xxxxxxxx — пароль ключа (8 hex символов)

Для использования ключей с одинаковыми паролями необходимо добавить любой символ
после пароля ключа :
. MultiKey\Dumps\xxxxxxxxa]
. MultiKey\Dumps\xxxxxxxx1]

«DongleType»=dword:0000000x — тип ключа
1 — HASP (3,4,HL,SRM)
2 — HARDLOCK
3 — SENTINEL (spro,upro)
4 — GUARDANT (I,II)
5 — DINKEY

Лицензионные данные для эмулятора:

Для получения лицензии под х32 системы использовать онлайн-форму генерации на сайте
http://testprotect.com/appendix/LicMkOnline

«SN»=dword:xxxxxxxx — серийный номер

«Type»=dword:000000xx — модель
12 — Time HASP 3
0A — HASP4 M1 (deafult)
1A — HASP4 Time
EA — HASP HL
FA — HASP HL Time

«Memory»=dword:00000001 — размер памяти

00000001 — 0x80
00000004 — 0x1F0
00000020 — 0xFD0
00000021 — 0x70

Читайте также:  Uninstall windows from ubuntu

«SecTable»=hex:00,00,00,00,00,00,00,00 — приватная таблица

«NetMemory»=hex:03,00,0F,D0,02,00,00,00,FF,FF,FE,FF — ячейки «сетевой» памяти

// Typical data into NetMemory:
// 12 1A 12 0F 03 00 70 00 02 FF 00 00 FF FF FF FF
// 12 1A 12 0F — sn
// 03 00 — key type
// 70 00 — memory size in bytes
// 02 FF — ?
// 00 00 — net user count
// FF FF — ?
// FF — key type (FF — local, FE — net, FD — time)
// FF — ?

«Option»=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00 — дополнительные опции:

(для сборки от 18.2.4)
[0]=01..7F — задает временную задержку при работе с ключем, (типовая-1..4)
[0]=0 — без временных задержек (для сборки от 18.2.4)

«Data»=hex: — ячейки памяти

Для тайм-хасп ключей добавляются такие поля, пример :

«NetMemory»=hex:05,00,80,00,02,FF,00,00,FF,FF,FD,FF
«HaspTimeMemory»=hex:\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
3f,db,95,7d,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00
«TimeShift»=hex:00,00,00,00,00,00,00,00

где: 3f,db,95,7d — серийный номер ключа записаный побайтно

Таблично эмулируются функции hasp_decrypt + hasp_encrypt, при отсутствии значений в таблицах
значения обрабатываются по внутреннему AES агоритму. При необходимости смены дефолтного
ключа AES алгоритма внести в рег-файл его значение:

Таблицы располагаются в подветках основного расположения дампа:
Decrypt: [HKEY_LOCAL_MACHINE\System\CurrentControlSet\MultiKey\Dumps\12345604\DTable];
Encrypt: [HKEY_LOCAL_MACHINE\System\CurrentControlSet\MultiKey\Dumps\12345604\ETable].

Формат записей в таблицах для мультикея версии =18.1 в имена запросов 20h и 30h следует брать 32 байта запроса .

«10:0123456789ABCDEF0123456789ABCDEF»=hex:12,34,56,78,90,AB,CD,EF,12,34,56,78,90,AB,CD,EF
«20:5500A934CDE5D7B619568515F74D323695EC75E8C48F6B5D9880F6A88B251C48″=hex:4F,8A,A7,A1,26,55,61,B3,1A,77,B4,A2,19,B3,34,FD
«30:9A2B6F7F80A2F2E36334D3258BAFD06FBB7286766A24910911648D98D8C56628″=hex:12,71,B7,B5,3D,47,B4,2B,DC,93,4F,00,00,1C,2C,4E

— «10:00112233445566778899AABBCCDDEEFF» — запрос в ключ
«10(20,30)» — длина запроса в байтах
«00112233445566778899AABBCCDDEEFF» — ПЕРВЫЕ 16 байт самого запроса

— hex:FF,EE,DD,CC,BB,AA,99,88,77,66,55,44,33,22,11,00 — ответ ключа, берутся только
первые 16 байт реального ответа.

==================================================================
2008/10/10 07:13:25.109 HaspHL_decrypt: Output Data =
2008/10/10 07:13:25.171
53 9D 4D 03 | 00 00 00 00 | CB D2 6B 04 | 00 00 00 00

2008/10/10 07:13:25.171 ==> HaspHL_decrypt: Status = 0x00
==================================================================
2008/10/10 07:13:23.484 HaspHL_decrypt: Output Data =
2008/10/10 07:13:23.546
02 B0 3C 6E | DA 88 46 BA | 4C 7E 5A 12 | 8E D6 DE 76
2E 0E 0C 38 | C6 99 FE 97 | B2 C2 E1 37 | 7F 61 CD 7A

2008/10/10 07:13:23.546 ==> HaspHL_decrypt: Status = 0x00
==================================================================
2008/10/10 07:13:23.609 HaspHL_decrypt: Output Data =
2008/10/10 07:13:23.671
77 64 61 62 | 63 5F 60 61 | A2 B9 AC 60 | 61 62 63 5F
2E 0E 0C 38 | C6 99 FE 97 | B2 C2 E1 37 | 7F 61 CD 7A
9C F3 2A BD | A4 DA 3B 78 | 97 CC 44 ED | 42 47 42 E6

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\MultiKey\Dumps\12345604\DTable];
«10:2AE1F0A2E1B2F1F99FC872F6CA4B0149″=hex:53,9D,4D,03,00,00,00,00,CB,D2,6B,04,00,00,00,00
«20:7B6E8CDFD651A30C47E1FA60516C79712E0E0C38C699FE97B2C2E1377F61CD7A»=hex:02,B0,3C,6E,DA,88,46,BA,4C,7E,5A,12,8E,D6,DE,76
«30:7B6E8CDFD651A30C47E1FA60516C79712E0E0C38C699FE97B2C2E1377F61CD7A»=hex:77,64,61,62,63,5F,60,61,A2,B9,AC,60,61,62,63,5F

Если в протоколе встречается одиночный запрос длиной в 32 (20h) байта, за которым сразу
нет запроса длиной 48 (30h) байт (или если сказать по другому, в котором вторые 16 байт запроса
НЕ РАВНЫ вторым 16 байт ответа) , то такой запрос необходимо сохранять в таблицу как
два запроса по 16 (10h) байт

Для эмуляции SRM помимо данных как HL ключа необходимы дополнительные данные.
На даный момент это приватная информация.

//
// List of supported functions for hasp key
//
enum KEY_FN_LIST <

//HL
KEY_FN_SET_CHIPER_KEYS = 0x80,
KEY_FN_CHECK_PASS = 0x81,
KEY_FN_READ_3WORDS = 0x82,
KEY_FN_WRITE_WORD = 0x83,
KEY_FN_READ_ST = 0x84,
KEY_FN_READ_NETMEMORY_3WORDS = 0x8B,
KEY_FN_HASH_DWORD = 0x98,
KEY_FN_GET_TIME = 0x9C, // Get time (for HASP time) key
KEY_FN_PREPARE_CHANGE_TIME = 0x1D, // Prepare to change time (for HASP time)
KEY_FN_COMPLETE_WRITE_TIME = 0x9D, // Write time (complete) (for HASP time)
KEY_FN_PREPARE_DECRYPT = 0x1E, // qwestions
KEY_FN_COMPLETE_DECRYPT = 0x9E, // answers
KEY_FN_ECHO_REQUEST = 0xA0, // Echo request to key
KEY_FN_ECHO_REQUEST2 = 0xA1, // Echo request to key

Читайте также:  P7h55 driver windows 10

//srm
KEY_FN_SRM_A2 = 0xA2, //чтение таблицы фич
KEY_FN_SRM_26 = 0x26, //26/A6 — чтение значений фич ключа и памяти
KEY_FN_SRM_A6 = 0xA6, //
KEY_FN_SRM_AA = 0xAA, //логин в ключ
KEY_FN_SRM_AB = 0xAB, //логаут ключа
KEY_FN_SRM_AC = 0xAC, //hasp_get_rtc — получение времени с ключа
KEY_FN_SRM_AE = 0xAE, //хз, вроде с 3.25 появилось
KEY_FN_SRM_27 = 0x27, //27/A7 — запись в память ключа
KEY_FN_SRM_A7 = 0xA7, //
KEY_FN_SRM_29 = 0x29, //29/A9 — крипт-декрипт
KEY_FN_SRM_A9 = 0xA9, //
KEY_FN_SRM_28 = 0x28, //28/A8 — чтение ключа без шифровки протокола с подписью(update)
KEY_FN_SRM_A8 = 0xA8, //
KEY_FN_SRM_38 = 0x38, //38/B8 — обновление ключа и прошивы
KEY_FN_SRM_B8 = 0xB8 //
>;

«ID»=dword:xxxxxxxx — серийный номер

«withMemory»=dword:0000000x — ключ с памятью или без нее

«Seed1″=dword:0000xxxx
«Seed2″=dword:0000xxxx
«Seed3″=dword:0000xxxx

«HlkMemory»=hex: — ячейки памяти

//
// List of supported functions for HARDLOCK key
//
enum HARDLOCK_KEY_FN_LIST <
HDK_KEY_FN_SET_CHIPER_KEYS = 0x80,
HDK_KEY_FN_CHECK_PASS = 0x81,
HDK_KEY_FN_READ_WORD = 0x82,
HDK_KEY_FN_WRITE_WORD = 0x83,
HDK_KEY_FN_HL_VERKEY = 0x87,
HDK_KEY_FN_READ_ID = 0x8B,
HDK_KEY_FN_HL_CODE = 0x8C,
HDK_KEY_FN_HL_CRYPT = 0x8D,
HDK_KEY_FN_HL_CODE_PAR = 0x0C,
HDK_KEY_FN_HL_CRYPT_PAR = 0x0D,
HDK_KEY_FN_HL_CALC = 0x89
>;

. MultiKey\Dumps\0000xxxx] — xxxx — Developer ID

«Type»=dword:00000000 — модель, 0-SuperPro, 1-все другие типы ;
«sntMemory»=hex: — ячейки памяти, для «Type»=0 — 64 cell, для «Type»=1 в зависимости от типа ключа
«CellType»=hex: — типы ячеек ; для «Type»=0 — 64 байт, для «Type»=1 в зависимости от типа ключа

«Type»=0 — полное внутреннее алго для спро, рег-файл старого образца

«Type»=1 — только табличная эмуляция для всех типов ключей, в рег файл добавляются новые поля:

«Option»=hex:02,00,03,80,7F,00,00,00 (пример для СПРО с поддержкой аес-тунеля)
где : [0]. [3] — значение типа ключа, получаем функой GET_KEYINFO
[4] — величина физически читаемой памяти ключа, обычно 7F или FF
[5]. [7] — резерв

«AesKey»=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 — aes ключ для аес-тунеля(пока так, доставать из проги)

. Для формирования правильного рег-файла рекомендуется использовать дампер SSUMD v1.1 .
Spro по умолчанию дампится в старом режиме («Type»=0).

. MultiKey\Dumps\0000xxxx\cell_yy] — yy — номер cell, для которого таблицы, для каждого селла свои таблицы
«12345678»=hex:22,33,44,55
«1122334455667788»=hex:11,12,13,14,15,16,17,18
«11223344556677888877665544332211»=hex:88,77,66,55,44,33,22,11,11,22,33,44,55,66,77,88

//
// List of supported functions for Sentinel key
//
enum SENT_KEY_FN_LIST <
SENT_KEY_FN_FIND_FIRST_UNIT = 0x10,
SENT_KEY_FN_READ = 0x11,
SENT_KEY_FN_QUERY_SHORT = 0x12,
SENT_KEY_FN_QUERY_LONG = 0x13,
SENT_KEY_FN_WRITE_0 = 0x14,
SENT_KEY_FN_WRITE_1 = 0x15,
SENT_KEY_FN_WRITE_2 = 0x16,
SENT_KEY_FN_WRITE_3 = 0x17,
SENT_KEY_FN_OVERWRITE_0 = 0x18,
SENT_KEY_FN_OVERWRITE_1 = 0x19,
SENT_KEY_FN_OVERWRITE_2 = 0x1A,
SENT_KEY_FN_OVERWRITE_3 = 0x1B,
SENT_KEY_FN_ACTIVATE = 0x1C,
SENT_KEY_FN_DECREMENT = 0x1D,
SENT_KEY_FN_GET_KEYINFO = 0x00,
SENT_KEY_FN_SET_PARAMETER = 0x03,
SENT_KEY_FN_GET_PARAMETER = 0x02,

USENT_KEY_FN_GET_LOGIN = 0x05, //for ULTRA and new SPRO
USENT_KEY_FN_LOGIN_21 = 0x21,
USENT_KEY_FN_AES_TUNNEL = 0x07,
USENT_KEY_FN_2F = 0x2F
>;

. MultiKey\Dumps\xxxxxxxx] — xxxxxxxx — pwRead — пароль ключа на чтение;

«DongleType»=dword:00000004
«pWrite»=dword:23232323 >>>пароль на запись, необязательный параметр, если прога не использует запись
«Data» =hex:\
. (256 байт — полный дамп с дескрипторами)

если дескриптор алгоритма равен 0 в рег-файле, тогда ищем данные в таблице

. MultiKey\Dumps\xxxxxxxx\algo_yy] где yy — номер алгоритма

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

Читайте также:  Display unclaimed linux mint

где 12345678 — dinkSerial

«DongleType»=dword:00000005
«dinkValue» =dword:xxxxxxxx
«dinkMemory»=hex:\

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Ошибка 1С – обнаружено нарушение целостности системы

Описание проблемы

Фирма 1С решила пойти на кардинальные методы борьбы с пиратством и 12 декабря выпустила 2 версии платформы: 8.3.10.2699 и 8.3.11.2899 в которых внедрили механизм проверки легальности версии.
А именно программа отслеживает:

а) изменен ли файл backbas.dll

(проверяется контрольная сумма всех файлов системы)

б) установлен ли на компьютере эмулятор.

В случае обнаружения нелегального использования (или неправильно установленной программы) в режиме 1С:Предприятия начинает появляться ошибка “Обнаружено нарушение целостности системы” и после этого можно только завершить работу или перезапустить…
При повторном открытии программы ошибка возникает вновь.

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

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

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

Не торопитесь обновлять платформу.

Последние версии, которые работают без проверки файла backbas (контрольной суммы) и эмуляторов 8.3.10.2667 и 8.3.11.2867. При работе на них ошибки об обнаружении нарушения целостности системы НЕ возникает.

Какие варианты вернуть работоспособность базы:

Если у вас используется лицензионная версия программы 1С, то возможно на вашем компьютере ранее когда-то была установлена взломанная версия (“пиратская”, “портативная”, “варезная”, “отученная”, “пропатченная”, “repack”, эмулятор, “patch”, “мультилей” и т.п.). Для возможности продолжения работы необходимо найти и удалить все старые следы использования взломанной программы:

Удалить “подозрительные” файлы:
multikey.sys, multikey64.sys, vusbbus.sys, VUsb.sys, haspflt.sys, unipatch.exe, hardlock.sys, haspnt.sys из всех системных и пользовательских каталогов, а также из папок загрузок.

Если использовался Repack/Репак:
“пересобранная” версия платформы “1С:Предприятие”, в которой была отключена проверка наличия лицензии,

  • найти и удалить данную версию платформы.

Если для взлома использовался патч:

  • удалить пропатченный файл backbas.dll.

Если использовался эмулятор vusbbus.sys:

  • удалить Virtual Usb Bus Enumerator в “Диспетчере устройств” в ветке “Системные устройства” (поставив галку “Удалять драйвера программы”)
  • удалить файлы VUsb.sys и vusbbus.sys
  • удалить ветки реестра:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\NEWHASP
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vusbbus­

Если использовался эмулятор haspflt.sys

  • от имени администратора в командной строке выполнить команды:
    • loaddrv.exe -stop haspflt
    • loaddrv.exe -remove haspflt
    • del %systemroot%\system32\drivers\haspflt.sys
  • удалить ветки реестра:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\haspflt­
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Emulato­r

Если использовался эмулятор multikey.sys (или multikey64.sys)

  • от имени администратора в командной строке выполнить команды:
    • loaddrv.exe -stop multikey
    • loaddrv.exe -remove multikey
    • del %systemroot%\System32\drivers\Multikey.sys
    • del %systemroot%\SysWOW64\drivers\Multikey.sys
  • удалить ветку реестра:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Multikey\Dumps
  • удалить папку multikey из каталога C:\Windows\System32\DriverStore\FileRepository
  • перегрузить ПК.

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

Оцените статью