Альтернативы/Форки WinDivert

Разрабатываю свои утилиты для обхода блокировок и заметил, что последний коммит в WinDivert был два года назад. Беспокоит то, что библиотека долго не поддеживается (возможно я что-то упускаю).

Что-то упускаешь. Библа самодостаточна, серьезных багов не выявлено, поэтому не обновляется.
Посмотри форки на гитхабе, там кто-то мелкие багфиксы все же делал. Можно самому собрать без проблем.

Главная проблема - подпись драйвера

Да, надо платить по 300$ в год за EV Code Signing Certificate.

если бы еще только платить.
надо быть юридическим лицом.
и вопрос не пошлет ли Россию микрософт

И дрова надо сдавать все на проверку в МС

Ага, каждая вторая игра из-за него вылетает

Просто если посмотреть что к чему в коде у драйвера, то там много каких вызовов уже устарели в 10 винде (поддержка десятки закончится уже в октябре 2025, поэтому в 11+ уже без шансов)

image

Ну так можно пофиксить и пересобрать. В чем проблема?
Пример замены от самих мягких

// Old code
PVOID Allocation = ExAllocatePoolWithTag(PagedPool, 100, 'abcd');
RtlZeroMemory(Allocation, 100);
// New code
PVOID Allocation = ExAllocatePool2(POOL_FLAG_PAGED, 100, 'abcd');

Или маппингом

// Old code
PVOID Allocation = ExAllocatePoolWithTag(PagedPool, 100, 'abcd');
RtlZeroMemory(Allocation, 100);

// New code

// Before headers are pulled in (or compiler defined)
#define POOL_ZERO_DOWN_LEVEL_SUPPORT

// Once during driver initialization
// Argument can be any value
ExInitializeDriverRuntime(0);

// Replacement for each pool allocation
PVOID Allocation = ExAllocatePoolZero(PagedPool, 100, 'abcd');

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

И, кстати, deprecated не означает removed. Устаревшие функции в большинстве своем продолжают работать.

Поддержка win10 заканчивается в 2032 году. Это поддержка win10 22H2 в 2025 навернется.
Я уже устал об этом постоянно писать, надоело, что люди не умеют читать EoS.

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

В Windows до сих пор есть исключение: при проверке подписи драйверов она доверяет сертификатам, выпущенным до 2015 года и имеющим кросс-подпись от Microsoft. Соответственно, делается подпись таким сертификатом (их можно отыскать в утечках из различных компаний, у меня на руках 6 таких сертификатов и о существовании ещё нескольких известно), а поверх делается отметка времени (указывающая на дату, когда сертификат был валиден) вашим собственным сервером таймштампов и корневой сертификат сервера таймштампов загоняется в доверенные корневые, чтобы Windows доверяла метке времени.

Антивирусы на это реагируют нервно, т.к. эти утёкшие сертификаты использовались и в грязных целях. Античиты онлайн-игр могут тоже брыкаться. Но это единственный способ получить работающий драйвер без отправки в Microsoft.

Если кто-то будет заниматься разработкой драйвера, я подпишу.

Да, надо платить по 300$ в год за EV Code Signing Certificate.

Не нужно, см. например, драйвер DiskCryptor, на нём только подпись Microsoft. Подписи разработчика нет.

на unknowncheats люди переодически выкидывают сертификаты которые античиты уже внесли в свои базы, для других целей они пойдут

Вылетает колда варзон, можно конечно обойти это переименованием файла и правлением WinDivert.dll но довольно небезопасно

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

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

Ответ на вопрос топикстартера дан: известных альтернатив нет, если появятся - свистите, переоткрою тему.