В практике системного администрирования 1С в рамках проектирования защищенной IT инфраструктуры часто встречается ситуация: организация использует файловую базу в расшаренной папке, и при попытке подключить нового пользователя программа выдает ошибку «Лицензия не найдена». При этом на уже работающих компьютерах физических USB-ключей нет, а в логах отображается наличие локального ключа. Разберем подробно, как проанализировать эту ситуацию, выявить скрытые средства обхода защиты и привести систему в рабочее состояние.
Первым шагом проанализируем данные технологического журнала (ТЖ) (предварительно убрав лишние переносы), которые помогут нам понять, откуда 1С «берет» лицензию. Рассмотрим строки логов, которые обычно возникают при использовании эмуляторов:
07:23.125001-1,LIC,1,process=1cv8c,OSThread=8900,Func=initialize,txt='local Application, hasp HL soft local, ORGL8 local net, ORG8A local net, ORG8B local net, Base local net'
07:37.985000-109998,HASP,1,process=1cv8c,OSThread=8900,Txt=' MEMOHASP_HASPID(,port=102,ser=ORGL8,,,,)->id=1559132065,,stat=0,'
1,LIC,1,process=1cv8c,OSThread=8900,Func=HaspLicense::InternalRelease,res=release,txt='133581824, 20260213200723, client; hard, local, client, 5'
Проанализируем эти данные. Обратим внимание на параметр id=1559132065. Этот идентификатор является широко известным «публичным» дампом (отпечатком) сетевого ключа на 5 пользователей (ORGL8). Если вы видите этот ID на разных компьютерах, а 1С при этом сообщает, что ключ локальный (local) — это неопровержимое доказательство использования эмулятора.
Выясним причину ошибки подключения нового пользователя: эмулятор «подсовывает» операционной системе виртуальное USB-устройство. Каждый компьютер «думает», что в него воткнут персональный ключ на 5 лицензий. Поскольку ключ считается локальным, он не транслирует лицензии по сети. Новый компьютер, на котором не установлен такой же эмулятор, не видит ключа в сети и отказывается запускать базу.
Если у нас есть сомнения, действительно ли на компьютере стоит взломанная версия или ключ «прилетает» откуда-то из сети, применим простой, но эффективный метод:
Если база успешно запускается при отсутствии интернета и локальной сети, а в системном трее или диспетчере устройств нет физического ключа — значит, эмулятор установлен непосредственно на этой машине. Если же 1С требует лицензию — значит, система пытается найти ключ (или эмулятор ключа) на другом сервере в сети.
Для управления аппаратными ключами используется драйвер Sentinel HASP. Проверим его состояние с помощью панели управления компонентами:
Попробуем открыть в браузере страницу http://localhost:1947 (для управления также может потребоваться консоль сервера). Это Sentinel Admin Control Center (ACC). Если страница открывается, перейдем в раздел "Keys". Там отображаются все найденные ключи (и реальные, и виртуальные). Если в колонке "Location" указано имя текущего ПК, а ключ имеет тип "Local", но физически его нет — мы нашли программную подделку.
Рассмотрим ситуацию, когда страница localhost:1947 не открывается. Это происходит по двум причинам:
Sentinel LDK License Manager (hasplms) остановлена или удалена (часто эмуляторы конфликтуют с официальной службой).Разберем, где именно могут прятаться файлы, имитирующие наличие лицензии. Проанализируем следующие места:
1. Диспетчер устройств
Проверим раздел «Контроллеры USB» и «Системные устройства». Нам нужно включить отображение скрытых устройств. Ищем пункты: Virtual USB MultiKey, Virtual USB Bus Enumerator или странные экземпляры SafeNet USB Key. Их наличие подтверждает установку драйвера-эмулятора.
2. Системные драйверы
Перейдем в папку C:\Windows\System32\drivers. Проверим наличие файлов, которые часто используются для обхода защиты:
multikey.sysvusbbus.sysvbus.sysmkk.sys3. Подмена библиотек (DLL-врапперы)
Это самый «тихий» способ взлома. Проанализируем содержимое папки bin платформы 1С (например, C:\Program Files\1cv8\8.3.x.x\bin). Ищем файлы, которые являются системными для Windows, но почему-то лежат в папке с программой:
version.dlluxtheme.dllwinspool.drvПри запуске 1cv8.exe первым делом подгружает эти файлы из своей папки, а не из системной. В эти библиотеки встроен код, который обманывает платформу при проверке лицензии.
4. Модификация платформы
Проверим файл backbas.dll в папке bin. Если дата его изменения отличается от даты установки остальных файлов платформы или его размер не совпадает с оригинальным (для конкретного релиза), значит, исполняемый код защиты был изменен патчем.
Для решения проблемы и подключения нового пользователя в правовом поле, нам необходимо выполнить следующие шаги:
.sys, левые .dll в папке bin). Деинсталлируем виртуальные устройства из диспетчера задач.backbas.dll и других системных файлов.Важно помнить: как только мы удалим эмулятор, база перестанет открываться у всех пользователей. Поэтому перед началом работ убедимся, что у нас есть купленные конверты с пин-кодами программных лицензий или аппаратный USB-ключ.