diff --git a/binaries/aarch64/ip2net b/binaries/aarch64/ip2net index 3553142..9468b90 100755 Binary files a/binaries/aarch64/ip2net and b/binaries/aarch64/ip2net differ diff --git a/binaries/aarch64/mdig b/binaries/aarch64/mdig index a5812dd..7044f6f 100755 Binary files a/binaries/aarch64/mdig and b/binaries/aarch64/mdig differ diff --git a/binaries/arm/ip2net b/binaries/arm/ip2net index f430618..292e49e 100755 Binary files a/binaries/arm/ip2net and b/binaries/arm/ip2net differ diff --git a/binaries/arm/mdig b/binaries/arm/mdig index 9478f9f..5b85ecc 100755 Binary files a/binaries/arm/mdig and b/binaries/arm/mdig differ diff --git a/binaries/mac64/ip2net b/binaries/mac64/ip2net index a1b265c..c127414 100755 Binary files a/binaries/mac64/ip2net and b/binaries/mac64/ip2net differ diff --git a/binaries/mac64/mdig b/binaries/mac64/mdig index f4c49ee..d348fde 100755 Binary files a/binaries/mac64/mdig and b/binaries/mac64/mdig differ diff --git a/binaries/mips32r1-lsb/ip2net b/binaries/mips32r1-lsb/ip2net index cd796cc..91d31f1 100755 Binary files a/binaries/mips32r1-lsb/ip2net and b/binaries/mips32r1-lsb/ip2net differ diff --git a/binaries/mips32r1-lsb/mdig b/binaries/mips32r1-lsb/mdig index ba18627..c277cd0 100755 Binary files a/binaries/mips32r1-lsb/mdig and b/binaries/mips32r1-lsb/mdig differ diff --git a/binaries/mips32r1-msb/ip2net b/binaries/mips32r1-msb/ip2net index 6421d0e..89e1ac6 100755 Binary files a/binaries/mips32r1-msb/ip2net and b/binaries/mips32r1-msb/ip2net differ diff --git a/binaries/mips32r1-msb/mdig b/binaries/mips32r1-msb/mdig index ab1927d..da0450f 100755 Binary files a/binaries/mips32r1-msb/mdig and b/binaries/mips32r1-msb/mdig differ diff --git a/binaries/mips64r2-msb/ip2net b/binaries/mips64r2-msb/ip2net index e2a17b9..73f494d 100755 Binary files a/binaries/mips64r2-msb/ip2net and b/binaries/mips64r2-msb/ip2net differ diff --git a/binaries/mips64r2-msb/mdig b/binaries/mips64r2-msb/mdig index 84a72d1..b69086e 100755 Binary files a/binaries/mips64r2-msb/mdig and b/binaries/mips64r2-msb/mdig differ diff --git a/binaries/ppc/ip2net b/binaries/ppc/ip2net index 184dd13..0f9c93e 100755 Binary files a/binaries/ppc/ip2net and b/binaries/ppc/ip2net differ diff --git a/binaries/ppc/mdig b/binaries/ppc/mdig index 0a7b278..9e799b6 100755 Binary files a/binaries/ppc/mdig and b/binaries/ppc/mdig differ diff --git a/binaries/x86/ip2net b/binaries/x86/ip2net index b2730d0..299f6be 100755 Binary files a/binaries/x86/ip2net and b/binaries/x86/ip2net differ diff --git a/binaries/x86/mdig b/binaries/x86/mdig index 8180a2e..747f661 100755 Binary files a/binaries/x86/mdig and b/binaries/x86/mdig differ diff --git a/binaries/x86_64/ip2net b/binaries/x86_64/ip2net index f1bad97..44580d4 100755 Binary files a/binaries/x86_64/ip2net and b/binaries/x86_64/ip2net differ diff --git a/binaries/x86_64/mdig b/binaries/x86_64/mdig index 10a27ac..4cf1007 100755 Binary files a/binaries/x86_64/mdig and b/binaries/x86_64/mdig differ diff --git a/common/installer.sh b/common/installer.sh index fc39132..2a3142c 100644 --- a/common/installer.sh +++ b/common/installer.sh @@ -39,7 +39,7 @@ edit_file() # $1 - file name local ed="$EDITOR" [ -n "$ed" ] || { - for e in mcedit nano vi; do + for e in mcedit nano vim vi; do exists "$e" && { ed="$e" break @@ -685,4 +685,4 @@ select_fwtype() } echo select firewall type : ask_list FWTYPE "iptables nftables" "$FWTYPE" && write_config_var FWTYPE -} \ No newline at end of file +} diff --git a/docs/quick_start.txt b/docs/quick_start.txt index 464fcdb..e869615 100644 --- a/docs/quick_start.txt +++ b/docs/quick_start.txt @@ -133,5 +133,5 @@ NFQWS_OPT_DESYNC_HTTP и NFQWS_OPT_DESYNC_HTTPS заменяют стратег ipset или хост листом. Читайте основной толмуд readme.txt ради подробностей. Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея. -В некоторых случаях вы не обойдетесь без знаний и основного "толмуда". +В некоторых случаях вы не обойдетесь без знаний и основного "талмуда". Подробности и полное техническое описание расписаны в readme.txt diff --git a/docs/windows.eng.md b/docs/windows.eng.md index e954412..e624bec 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). +One 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..a56ee80 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,38 @@ 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/ +http://www.bifido.net/tweaks-and-scripts/8-extended-security-updates-installer.html +и обновить систему + +3) Использовать UpdatePack7R2 от simplix : https://blog.simplix.info +Но с этим паком есть проблема. Автор из Украины, он очень обиделся на русских. +Если в панели управления стоит регион RU или BY, появляется неприятный диалог. +Чтобы эту проблему обойти, можно поставить временно любой другой регион, потом вернуть. +Так же нет никаких гарантий, что автор не насовал туда какой-то зловредный код. +Использовать на свой страх и риск. +Более безопасный вариант - скачать последнюю нормальную довоенную версию : 22.2.10 +https://nnmclub.to/forum/viewtopic.php?t=1530323 +Ее достаточно, чтобы windivert 2.2.2-A заработал на windows 7. + blockcheck ----------