Разрабатываю свои утилиты для обхода блокировок и заметил, что последний коммит в WinDivert был два года назад. Беспокоит то, что библиотека долго не поддеживается (возможно я что-то упускаю).
Что-то упускаешь. Библа самодостаточна, серьезных багов не выявлено, поэтому не обновляется.
Посмотри форки на гитхабе, там кто-то мелкие багфиксы все же делал. Можно самому собрать без проблем.
Главная проблема - подпись драйвера
Да, надо платить по 300$ в год за EV Code Signing Certificate.
если бы еще только платить.
надо быть юридическим лицом.
и вопрос не пошлет ли Россию микрософт
И дрова надо сдавать все на проверку в МС
Ага, каждая вторая игра из-за него вылетает
Просто если посмотреть что к чему в коде у драйвера, то там много каких вызовов уже устарели в 10 винде (поддержка десятки закончится уже в октябре 2025, поэтому в 11+ уже без шансов)
Ну так можно пофиксить и пересобрать. В чем проблема?
Пример замены от самих мягких
// 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 но довольно небезопасно
Тут уже был случай когда человек переименовал и его в валоранте забанили. Так что это точно плохая идея.
Если местные эксперты по написанию драйверов (чей флуд я только что вычистил) вместо чесания языками пришлют автору пулл-реквесты, доводящие драйвер до идела, от этого будет хоть какая-то польза.
Ответ на вопрос топикстартера дан: известных альтернатив нет, если появятся - свистите, переоткрою тему.