From 25f5d2187649cff0dec10897c135a03d0d8b389d Mon Sep 17 00:00:00 2001 From: bol-van Date: Fri, 2 Aug 2024 20:38:23 +0300 Subject: [PATCH] windows readme: new info about windows 7 driver signing --- docs/windows.eng.md | 20 +++++++++++++++++++- docs/windows.txt | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/docs/windows.eng.md b/docs/windows.eng.md index e954412..22d330a 100644 --- a/docs/windows.eng.md +++ b/docs/windows.eng.md @@ -37,7 +37,7 @@ In *nix it's done by `iptables`, `nftables`, `pf`, `ipfw`. Windows does not have part 1. No `iptables` exist. That's why 3rd party packet redirector is used. It's called `windivert`. It works starting from `windows 7`. Kernel driver is signed but it may require to disable secure boot -or update windows 7. +or update windows 7. Read below for windows 7 windivert signing info. Task of `iptables` is done inside `winws` through `windivert` filters. `Windivert` has it's own [filter language](https://reqrypt.org/windivert-doc.html#filter_language). `winws` can automate filter construction using simple ip version and port filter. Raw filters are also supported. @@ -89,6 +89,24 @@ There's no `arm64` signed `windivert` driver and no `cygwin`. But it's possible to use unsigned driver version in test mode and user mode components with x64 emulation. x64 emulation requires `windows 11` and not supported in `windows 10`. +### windows 7 windivert signing + +Requirements for windows driver signing have changed in 2021. +Official free updates of windows 7 ended in 2020. +After 2020 for the years paid updates were available (ESU). +On of the updates from ESU enables signatures used in windivert 2.2.2-A. +There are several options : + +1. Take `windivert64.sys` and `windivert.dll` version `2.2.0-C` or `2.2.0-D` from [here](https://reqrypt.org/download). +Replace these 2 files in every location they are present. +In `zapret-win-bundle` they are in `zapret-winws` и `blockcheck/zapret/nfq` folders. +However this option still requires 10+ year old patch that enables SHA256 signatures. + +2. [Hack ESU](https://hackandpwn.com/windows-7-esu-patching) + +3. Use `UpdatePack7R2` from simplix : https://blog.simplix.info +If you are in Russia or Belarus temporary change region in Control Panel. + ### blockcheck `blockcheck.sh` is written in posix shell and uses some standard posix utilites. diff --git a/docs/windows.txt b/docs/windows.txt index 55ff70f..51bdbeb 100644 --- a/docs/windows.txt +++ b/docs/windows.txt @@ -40,9 +40,7 @@ winws В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw. Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning. -На windows 7 требуются обновления. На старых очень давно не обновляемых системах может быть ошибка проверки подписи драйвера. -Требования к патчам точно такие же, как и у GoodbyeDPI. Нужно обновление, включающее поддержку подписей с SHA256. -https://learn.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929 +На windows 7 вероятно будут проблемы с загрузкой windivert. Читайте ниже соответствующий раздел. Задача iptables в winws решается внутренними средствами через фильтры windivert. У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark. @@ -126,6 +124,36 @@ winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можн Однако, эмуляция x64 windows 11 позволяет использовать все, кроме WinDivert64.sys без изменений. Но при этом надо заменить WinDivert64.sys на неподписанную arm64 версию и установить режим testsigning. +Windows 7 и windivert +--------------------- + +Требования к подписи драйверов windows изменились в 2021 году. +Официальные бесплатные обновления windows 7 закончились в 2020. +После этого несколько лет продолжали идти платные обновления по программе ESU. +Именно в этих ESU обновлениях находится обновление ядра windows 7, позволяющиее загрузить драйвер +windivert 2.2.2-A, который идет в поставке zapret. +Поэтому варианты следующие : + +1) Взять windivert64.sys и windivert.dll версии 2.2.0-C или 2.2.0-D отсюда : https://reqrypt.org/download +и заменить эти 2 файла. +В zapret-win-bundle есть отдельных 2 места, где находится winws : zapret-winws и blockcheck/zapret/nfq. +Надо менять в обоих местах. +Этот вариант проверен и должен работать. Тем не менее патч 10 летней давности, который включает SHA256 +сигнатуры, все еще необходим. + +2) Взломать ESU : https://hackandpwn.com/windows-7-esu-patching/ +и обновить систему + +3) Использовать UpdatePack7R2 от simplix : https://blog.simplix.info +Но с этим паком есть проблема. Автор из Украины, он очень обиделся на русских. +Если в панели управления стоит регион RU или BY, появляется неприятный диалог. +Чтобы эту проблему обойти, можно поставить временно любой другой регион, потом вернуть. +Так же нет никаких гарантий, что автор не насовал туда какой-то зловредный код. +Использовать на свой страх и риск. +Более безопасный вариант - скачать последнюю нормальную версию : 22.3.11 +https://nnmclub.to/forum/viewtopic.php?t=1536359 +Ее достаточно, чтобы windivert 2.2.2-A заработал на windows 7. + blockcheck ----------