mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
Compare commits
3 Commits
9cf72b7c68
...
f42bd2c0a4
Author | SHA1 | Date | |
---|---|---|---|
|
f42bd2c0a4 | ||
|
25f5d21876 | ||
|
ddc3fe7481 |
@ -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.
|
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
|
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).
|
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.
|
`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.
|
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`.
|
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
|
||||||
|
|
||||||
`blockcheck.sh` is written in posix shell and uses some standard posix utilites.
|
`blockcheck.sh` is written in posix shell and uses some standard posix utilites.
|
||||||
|
@ -40,9 +40,7 @@ winws
|
|||||||
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw.
|
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw.
|
||||||
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным
|
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным
|
||||||
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning.
|
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning.
|
||||||
На windows 7 требуются обновления. На старых очень давно не обновляемых системах может быть ошибка проверки подписи драйвера.
|
На windows 7 вероятно будут проблемы с загрузкой windivert. Читайте ниже соответствующий раздел.
|
||||||
Требования к патчам точно такие же, как и у GoodbyeDPI. Нужно обновление, включающее поддержку подписей с SHA256.
|
|
||||||
https://learn.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929
|
|
||||||
|
|
||||||
Задача iptables в winws решается внутренними средствами через фильтры windivert.
|
Задача iptables в winws решается внутренними средствами через фильтры windivert.
|
||||||
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark.
|
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark.
|
||||||
@ -126,6 +124,36 @@ winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можн
|
|||||||
Однако, эмуляция x64 windows 11 позволяет использовать все, кроме WinDivert64.sys без изменений.
|
Однако, эмуляция x64 windows 11 позволяет использовать все, кроме WinDivert64.sys без изменений.
|
||||||
Но при этом надо заменить WinDivert64.sys на неподписанную arm64 версию и установить режим testsigning.
|
Но при этом надо заменить 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
|
blockcheck
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ static void ip6_and(const struct in6_addr *a, const struct in6_addr *b, struct i
|
|||||||
#if defined(__GNUC__) && !defined(__llvm__)
|
#if defined(__GNUC__) && !defined(__llvm__)
|
||||||
__attribute__((optimize ("no-strict-aliasing")))
|
__attribute__((optimize ("no-strict-aliasing")))
|
||||||
#endif
|
#endif
|
||||||
static void ip6_and(const struct in6_addr *a, const struct in6_addr *b, struct in6_addr *result)
|
static void ip6_and(const struct in6_addr * restrict a, const struct in6_addr * restrict b, struct in6_addr * restrict result)
|
||||||
{
|
{
|
||||||
#ifdef __SIZEOF_INT128__
|
#ifdef __SIZEOF_INT128__
|
||||||
// gcc and clang have 128 bit int types on some 64-bit archs. take some advantage
|
// gcc and clang have 128 bit int types on some 64-bit archs. take some advantage
|
||||||
|
Loading…
Reference in New Issue
Block a user