WinDivert: удаление и удаление драйвера¶
WinDivert (Windows Divert) — это свободная библиотека и драйвер для операционных систем Windows, позволяющая перехватывать, модифицировать и пересылать сетевые пакеты на уровне ядра. Драйвер устанавливается в систему и регистрируется в диспетчере устройств, поэтому его удаление требует корректной деинсталляции, а не просто удаления файлов.
¶Назначение и принцип работы
WinDivert используется программистами и администраторами для создания файрволов, трафик-менеджеров, VPN-клиентов, инструментов анализа сетевого трафика. Библиотека работает в паре с одноимённым драйвером ядра (WinDivert.sys), который подключается к системному стеку сети через WFP (Windows Filtering Platform). При запуске программы, использующей WinDivert, драйвер перехватывает указанные потоки пакетов и передаёт их в пространство пользователя, где приложение может их изменить или переслать.
Типичные сценарии использования:
- перехват и фильтрация трафика определённых приложений;
- блокировка соединений с указанными адресами;
- модификация заголовков TCP/IP;
- перехват DNS-запросов;
- создание собственных VPN-туннелей.
Поскольку драйвер работает на уровне ядра, его установка сопровождается изменением системных компонентов. Это означает, что обычное удаление исполняемых файлов из папки программы не удаляет драйвер из системы.
¶Признаки наличия WinDivert в системе
Определить, установлен ли WinDivert, можно несколькими способами:
- Диспетчер устройств — в разделе «Сетевые адаптеры» или через меню «Вид → Показать скрытые устройства» может отображаться устройство WinDivert.
- Диспетчер служб — драйвер регистрируется как служба WinDivert, которую можно найти через
services.mscили командуsc query WinDivert. - Командная строка — команда
driverquery | findstr /i windivertпокажет, присутствует ли драйвер в системе. - Папка System32\drivers — файл
WinDivert.sysможет находиться в каталогеC:\Windows\System32\drivers.
¶Способы удаления
¶Удаление через командную строку
Наиболее надёжный способ — остановить службу и удалить драйвер из реестра драйверов с помощью встроенных утилит Windows. Для этого требуется запустить командную строку или PowerShell с правами администратора и выполнить:
`` sc stop WinDivert sc delete WinDivert ``
После удаления службы файл WinDivert.sys можно удалить вручную из C:\Windows\System32\drivers. Если файл заблокирован системой, потребуется перезагрузка компьютера, после которой его можно удалить без помех.
¶Удаление через реестр
Если служба не удаляется штатными средствами, можно вручную удалить ключ реестра:
`` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDivert ``
После удаления ключа необходимо перезагрузить компьютер и удалить файл драйвера.
¶Удаление программой-оболочкой
Некоторые приложения, использующие WinDivert, поставляются с собственными средствами деинсталляции. Если WinDivert был установлен вместе с конкретной программой (например, трафик-менеджером или VPN-клиентом), сначала следует удалить эту программу через «Установку и удаление программ» в Windows — в большинстве случаев драйвер удаляется автоматически.
¶Использование утилит сторонних разработчиков
Существуют утилиты для управления драйверами, такие как Driver Store Explorer или O&O AppBuster, которые позволяют находить и удалять драйверы, оставшиеся от удалённых программ. Они полезны, если драйвер не удаляется штатными средствами.
¶Возможные проблемы при удалении
- Ошибка «файл используется» — возникает, если какая-то программа активно использует драйвер. Перед удалением необходимо закрыть все приложения, работающие с WinDivert, и остановить службу.
- Драйвер не отображается в списке служб — в этом случае следует проверить реестр и диспетчер устройств со скрытыми элементами.
- Синий экран при удалении — возникает редко и обычно связан с попыткой удалить драйвер, который активно обрабатывает пакеты. Корректная остановка службы перед удалением исключает эту ситуацию.
¶Проверка после удаления
После выполнения удаления рекомендуется убедиться, что драйвер полностью устранён: повторно выполнить sc query WinDivert, проверить отсутствие файла в каталоге драйверов и перезагрузить систему. Если после перезагрузки драйвер снова появляется, значит, какая-то программа переустанавливает его при каждом запуске — в этом случае необходимо удалить или отключить эту программу.
Источники:
- Официальная документация WinDivert (reqrypt.org/windivert)
- Microsoft Docs: Windows Filtering Platform
- Microsoft Docs: Управление службами Windows (SC.exe)
