В практике системного администрирования часто встречается ситуация, когда после использования нелицензионных версий программы 1С даже при переходе на официальную лицензию возникает критическая ошибка: «Обнаружено нарушение целостности системы». Это происходит потому, что механизмы защиты 1С:Предприятие сканируют операционную систему на наличие следов эмуляторов аппаратных ключей защиты (HASP). Даже если сама программа была переустановлена, остатки драйверов-эмуляторов продолжают работать в фоновом режиме или присутствовать в реестре. Разберем подробно, как провести полную «генеральную уборку» системы.
Прежде всего, нам необходимо понять, что именно блокирует работу платформы. Чаще всего используются эмуляторы типа MultiKey, VUSBBUS или Virtual Usb Bus Enumerator. Они создают в системе виртуальное USB-устройство, которое платформа 1С распознает как попытку обхода защиты.
Рассмотрим по шагам процесс идентификации в Диспетчере устройств. Важно понимать, что такие устройства часто скрыты. Для их обнаружения выполним следующие действия:
Virtual Usb Bus Enumerator, MultiKey или Virtual USB MultiKey.SafeNet, Sentinel или HASP, если в данный момент физические ключи к серверу не подключены.Если мы нашли подобные устройства, их необходимо удалить. Нажимаем правой кнопкой мыши — «Удалить устройство». В появившемся окне обязательно ставим галочку «Удалить программы драйверов для этого устройства».
Иногда устройство удалено, но служба драйвера продолжает запускаться при старте Windows. Проанализируем состояние системных служб. Для этого запустим командную строку (cmd) или PowerShell от имени администратора. Проверим наличие самой распространенной службы эмулятора vusbbus:
sc query vusbbus
Если система вернула ошибку 1060, значит, служба не установлена и этот шаг можно пропустить. Если же служба найдена, выясним путь к исполняемому файлу:
sc qc vusbbus
После того как мы зафиксировали путь к файлу (обычно это C:\Windows\System32\drivers\vusbbus.sys), приступаем к удалению службы:
sc stop vusbbus
sc delete vusbbus
После удаления службы крайне важно физически удалить файл драйвера из папки drivers, чтобы система не смогла восстановить его работу.
Даже после удаления файлов в реестре Windows могут остаться записи, которые сбивают проверку целостности 1С. Разберем, где именно «прячутся» хвосты эмуляторов. Откроем редактор реестра (regedit) и проверим следующие пути:
Проанализируем ветку сервисов: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\. Ищем разделы с именами vusbbus, MultiKey, haspflt, mkey. Если они существуют — удаляем разделы целиком.
Особое внимание уделим фильтрам USB-устройств. Это критически важный момент, так как эмуляторы часто внедряются в цепочку обработки USB-трафика. Перейдем по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}
В правой части окна найдем параметры UpperFilters или LowerFilters. Если внутри этих параметров (которые могут содержать список значений) мы видим слова vusbbus или mkey, нам нужно отредактировать параметр, удалив только эти слова и сохранив остальные значения (например, usbhub должен остаться).
Современные версии Windows хранят копии всех когда-либо установленных драйверов в специальном защищенном хранилище DriverStore. Если 1С находит там драйвер эмулятора, она может выдать ошибку, даже если драйвер не активен. Выясним, как очистить это хранилище.
Воспользуемся стандартной утилитой pnputil. В командной строке от имени администратора введем:
pnputil /enum-drivers
Просмотрим список. Нам нужно найти драйверы, в описании которых фигурирует «Virtual USB» или «MultiKey». Обратите внимание на имя опубликованного файла (например, oem15.inf). Чтобы принудительно удалить такой драйвер из хранилища, выполним команду:
pnputil /delete-driver oem15.inf /force
Повторим это для всех подозрительных драйверов, имеющих отношение к эмуляции ключей защиты.
Многие «таблетки» и эмуляторы требуют включения Test Mode (тестового режима подписи драйверов), так как они не имеют официального сертификата Microsoft. Работа Windows в тестовом режиме — это прямой сигнал для 1С о возможном нарушении защиты. Посмотрим, включен ли он у нас. Если в нижнем правом углу рабочего стола есть надпись «Тестовый режим», его необходимо отключить:
bcdedit -set TESTSIGNING OFF
После выполнения этой команды обязательна перезагрузка компьютера.
Иногда информация о нарушении целостности кэшируется самой платформой 1С. Чтобы гарантировать чистоту эксперимента, выполним очистку временных данных. Удалим содержимое следующих папок (пути могут варьироваться в зависимости от пользователя):
%AppData%\1C\1cv8%LocalAppData%\1C\1cv8C:\ProgramData\1C\licenses (Внимание! Если у вас есть легальные программные лицензии, будьте осторожны: удаление этой папки может потребовать их повторной активации).Также рекомендуется полностью деинсталлировать все версии платформы 1С через «Панель управления», вручную удалить папку C:\Program Files\1cv8 и после этого установить платформу заново из официального дистрибутива.
Если ручная очистка не помогла, воспользуемся инструментами от разработчиков систем защиты (Thales/SafeNet). Существует официальная утилита Sentinel LDK Runtime Environment Cleaner (иногда называется SSD Cleanup Tool). Она предназначена для полного удаления низкоуровневых компонентов драйвера HASP.
Проанализируем алгоритм работы с ней:
Соблюдение этого комплексного подхода позволяет полностью избавиться от следов несанкционированного вмешательства в систему защиты и восстановить штатную работу легальной версии 1С:Предприятие без необходимости полной переустановки операционной системы.