Если не помогло

WinDivert в Zapret: что это и почему service is NOT running

WinDivert — драйвер, через который winws.exe перехватывает трафик. «NOT running» при выключенном обходе — норма, а WinDivert64.sys file NOT found. почти всегда значит, что файл унёс антивирус.

WinDivert — это драйвер, через который сборка перехватывает и изменяет сетевой трафик: без него обход не работает в принципе. Если в Check Status вы видите "WinDivert" service is NOT running., сначала посмотрите строку выше, про winws.exe: при выключенном обходе так и должно быть. А вот красная строка WinDivert64.sys file NOT found. значит, что файла драйвера в сборке нет, и почти всегда его унёс антивирус.

Что такое WinDivert и зачем он сборке

Пакеты, которые Windows отправляет в сеть и принимает из неё, проходят через сетевой стек. WinDivert встраивается в этот путь: драйвер перехватывает пакеты по фильтру портов и отдаёт их программе winws.exe, а та дробит и подменяет их так, как требует выбранная стратегия. Документация сборки описывает это коротко: «Он может использоваться как хорошими, так и плохими программами, но сам по себе не является вирусом».

В сборке WinDivert лежит в папке bin двумя файлами: bin\WinDivert64.sys, это сам драйвер, и bin\WinDivert.dll. Когда вы запускаете обход, winws.exe поднимает драйвер, и в списке служб Windows появляется служба WinDivert (иногда WinDivert14). Закрываете вы winws.exe, и служба драйвера остаётся висеть до следующего запуска или снятия вручную; снять её можно через Remove Services. Что именно снимает этот пункт, разобрано отдельно.

Как читать строки про WinDivert в Check Status и диагностике

Check Status пишет про WinDivert одну строку, а Run Diagnostics выводит несколько. Что значит каждая:

"WinDivert" service is RUNNING.

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

Ничего не делать, всё в порядке

"WinDivert" service is NOT running.

Служба драйвера не поднята

Посмотреть строку про winws.exe рядом: если он тоже не запущен, обход просто выключен и это норма; как читать все строки Check Status вместе

WinDivert64.sys file NOT found.

В папке bin нет файла драйвера, почти всегда это работа антивируса

Зайти в антивирус, найти файл в карантине, настроить исключение и заново распаковать сборку

[?] winws.exe is not running but WinDivert service is active. Attempting to delete WinDivert...

Драйвер остался в службах без работающей программы обхода, диагностика снимает его сама

Подождать результат: зелёная строка скажет, что получилось

[X] WinDivert still cannot be deleted. Check manually if any other bypass is using WinDivert.

Драйвер занят чем-то ещё, и диагностика не смогла его снять

Найти, кто держит драйвер, и остановить его

Различайте два сообщения, которые похожи: «not running» говорит о состоянии службы, а «NOT found» сообщает об отсутствии файла. Лечатся они по-разному. В первом случае запустите обход или снимите зависший драйвер, во втором случае разберитесь с антивирусом.

WinDivert64.sys file NOT found.: файл забрал антивирус

Антивирусы видят в WinDivert64.sys драйвер перехвата трафика и относят его к классам риска. Документация сборки предупреждает об этом прямо: при таком детекте «детект обязательно имеет название WinDivert или Not-a-virus:RiskTool.Multi.WinDivert», файл удаляется и попадает в карантин. То есть если антивирус показал уведомление с таким именем, а в bin после этого нет WinDivert64.sys, это та самая ситуация, файл не сломан и не потерян.

Что советует документация: либо добавить папку сборки в исключения антивируса, либо отключить детектирование PUA, то есть потенциально нежелательных приложений. В Касперском для этого есть галочка «Обнаруживать легальные приложения, которые злоумышленники часто используют для нанесения вреда». Выбор по документации такой: понимаете, что делаете, при аккуратной настройке настраивайте исключение; если не до конца понимаете, отключайте детект PUA. Про настройку исключений рассказано на странице об установке сборки.

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

WinDivert остался в службах после закрытия обхода

Когда winws.exe закрыт, а служба WinDivert осталась активной, это не поломка, но драйвер висит занятым. Диагностика из service.bat разбирается с этим сама: находит активный WinDivert без winws.exe, пробует остановить и удалить службу. Если не вышло, ищет обходчик, который держит драйвер: например, останавливает и снимает службу GoodbyeDPI, потом пробует снова. Поэтому сначала просто запустите Run Diagnostics и дайте ей отработать; руками делайте то же самое только после строки с Check manually. Что ещё может занимать драйвер, разобрано отдельно.

Ручной путь из документации состоит из трёх команд в консоли от администратора. Первая покажет точное имя службы:

driverquery | find "Divert"
sc stop название_из_первого_шага
sc delete название_из_первого_шага

После sc delete служба исчезает из списка, и при следующем запуске обхода winws.exe поднимет драйвер заново.

Античит и Windows 7

Античиты в играх нередко ругаются на WinDivert, потому что он перехватывает трафик. В README сборки для этого случая есть отдельный раздел «Античит ругается на WinDivert» с отсылкой к инструкции в разделе windivert-hide репозитория zapret-win-bundle, прочитайте её там.

На Windows 7 драйвер WinDivert из основной сборки не грузится: система требует цифровую подпись драйвера. Документация предлагает заменить WinDivert.dll и WinDivert64.sys в папке bin на одноимённые файлы из zapret-win-bundle/win7, это файлы с подписью, которые Windows 7 принимает. После замены обход запускается обычным порядком.

Вопросы, которые остаются

Антивирус удалил файл, я восстановил его из карантина, но всё равно WinDivert64.sys file NOT found.

Восстановление из карантина часто возвращает файл не в ту папку, а если исключение не настроено, антивирус при следующей проверке уносит его снова. Сначала настройте исключение на папку сборки, потом распакуйте архив в эту же папку заново.

Можно просто отключить антивирус на время, пока пользуюсь обходом?

Файл вернётся, но при первой же проверке снова уйдёт в карантин, и всё повторится. Нужна не пауза, а постоянное исключение на папку сборки. Подойдёт и отключённый детект PUA, если исключение настраивать не хочется.

Диагностика написала WinDivert successfully removed. Обход сломался?

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

В driverquery два имени: WinDivert и WinDivert14. Оба удалять?

Да, это второе имя того же драйвера из другой версии библиотеки. Remove Services снимает оба; если делаете руками через sc delete, удаляйте по очереди каждое.

Дальше по теме