mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
Compare commits
3 Commits
e8241a4fa3
...
da1226ceee
Author | SHA1 | Date | |
---|---|---|---|
|
da1226ceee | ||
|
98b95ea968 | ||
|
f39f25666a |
Binary file not shown.
@ -1,3 +1,2 @@
|
|||||||
start "zapret: http,https" "%~dp0winws.exe" --wf-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig
|
start "zapret: http,https" "%~dp0winws.exe" --wf-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig
|
||||||
timeout /t 1
|
|
||||||
start "zapret: quic" "%~dp0winws.exe" --wf-udp=443 --dpi-desync=fake --dpi-desync-repeats=11
|
start "zapret: quic" "%~dp0winws.exe" --wf-udp=443 --dpi-desync=fake --dpi-desync-repeats=11
|
@ -1,3 +1,2 @@
|
|||||||
start "zapret: http,https,autohostlist" "%~dp0winws.exe" --wf-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt"
|
start "zapret: http,https,autohostlist" "%~dp0winws.exe" --wf-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt"
|
||||||
timeout /t 1
|
|
||||||
start "zapret: quic,autohostlist" "%~dp0winws.exe" --wf-udp=443 --dpi-desync=fake --dpi-desync-repeats=10 --hostlist-auto="%~dp0autohostlist.txt"
|
start "zapret: quic,autohostlist" "%~dp0winws.exe" --wf-udp=443 --dpi-desync=fake --dpi-desync-repeats=10 --hostlist-auto="%~dp0autohostlist.txt"
|
Binary file not shown.
@ -35,8 +35,7 @@
|
|||||||
РЕШЕНИЕ "КАК ПОЛОЖЕНО"
|
РЕШЕНИЕ "КАК ПОЛОЖЕНО"
|
||||||
|
|
||||||
1) Если у вас windows 7, обновляйте систему. Годами не обновляемая 7-ка может не запускать драйвер windivert.
|
1) Если у вас windows 7, обновляйте систему. Годами не обновляемая 7-ка может не запускать драйвер windivert.
|
||||||
Поддержка 32-битных x86 windows возможна, но в готовом виде отсутствует.
|
Поддержка 32-битных x86 windows возможна, но в готовом виде отсутствует. Системы arm64 не поддерживаются.
|
||||||
Поддержка arm64 систем возможна при определенных условиях, но в готовом виде отсутствует.
|
|
||||||
Читайте docs/windows.txt
|
Читайте docs/windows.txt
|
||||||
|
|
||||||
Имейте в виду, что антивирусы могут плохо реагировать на windivert. Если это имеет место , используйте исключения.
|
Имейте в виду, что антивирусы могут плохо реагировать на windivert. Если это имеет место , используйте исключения.
|
||||||
|
@ -74,8 +74,9 @@ You must choose to install `curl`. To compile from sources install `gcc-core`,`m
|
|||||||
|
|
||||||
It's possible to build x86 32-bit version but this version is not shipped. You have to build it yourself.
|
It's possible to build x86 32-bit version but this version is not shipped. You have to build it yourself.
|
||||||
32-bit `windivert` can be downloaded from it's developer github. Required version is 2.2.2.
|
32-bit `windivert` can be downloaded from it's developer github. Required version is 2.2.2.
|
||||||
There's no `arm64` signed `windivert` driver. You can compile it yourself but it will run only with disabled driver signature checks.
|
There's no `arm64` signed `windivert` driver and no `cygwin`.
|
||||||
|
Theorecitally it would be possible to compile `windivert` kernel driver with test signature and run it on a arm64 system with disabled driver signature checks.
|
||||||
|
User-mode part can be run under x64 emulation. But it was not tested.
|
||||||
|
|
||||||
### blockcheck
|
### blockcheck
|
||||||
|
|
||||||
|
@ -88,8 +88,9 @@ setup-x86_64.exe --allow-unsupported-windows --no-verify --site http://ctm.crouc
|
|||||||
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws.
|
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws.
|
||||||
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами.
|
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами.
|
||||||
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2.
|
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2.
|
||||||
Для arm64 систем нет подписанного драйвера windivert. Можно самому собрать windivert, но работать он будет только
|
Для arm64 windows нет подписанного драйвера windivert и нет cygwin.
|
||||||
с отключенной подписью драйверов.
|
Теоретически возможен запуск user-mode компонент в режиме эмуляции x64, а драйвер ядра может быть собран с тестовой подписью
|
||||||
|
и загружен только в режиме с отключенной проверкой подписи драйверов. На практике это не проверялось.
|
||||||
|
|
||||||
|
|
||||||
blockcheck
|
blockcheck
|
||||||
|
@ -959,19 +959,29 @@ void tcp_rewrite_winsize(struct tcphdr *tcp, uint16_t winsize, uint8_t scale_fac
|
|||||||
|
|
||||||
static HANDLE w_filter = NULL;
|
static HANDLE w_filter = NULL;
|
||||||
static OVERLAPPED ovl = { .hEvent = NULL };
|
static OVERLAPPED ovl = { .hEvent = NULL };
|
||||||
;
|
|
||||||
|
|
||||||
static HANDLE windivert_init_filter(const char *filter, UINT64 flags)
|
static HANDLE windivert_init_filter(const char *filter, UINT64 flags)
|
||||||
{
|
{
|
||||||
LPTSTR errormessage = NULL;
|
LPTSTR errormessage = NULL;
|
||||||
DWORD errorcode = 0;
|
DWORD errorcode = 0;
|
||||||
HANDLE h;
|
HANDLE h, hMutex;
|
||||||
|
const char *mutex_name = "Global\\winws_windivert_mutex";
|
||||||
|
|
||||||
|
// windivert driver start in windivert.dll has race conditions
|
||||||
|
hMutex = CreateMutexA(NULL,TRUE,mutex_name);
|
||||||
|
if (hMutex && GetLastError()==ERROR_ALREADY_EXISTS)
|
||||||
|
WaitForSingleObject(hMutex,INFINITE);
|
||||||
|
|
||||||
h = WinDivertOpen(filter, WINDIVERT_LAYER_NETWORK, 0, flags);
|
h = WinDivertOpen(filter, WINDIVERT_LAYER_NETWORK, 0, flags);
|
||||||
if (h != INVALID_HANDLE_VALUE)
|
|
||||||
|
if (hMutex)
|
||||||
{
|
{
|
||||||
return h;
|
ReleaseMutex(hMutex);
|
||||||
|
CloseHandle(hMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (h != INVALID_HANDLE_VALUE) return h;
|
||||||
|
|
||||||
errorcode = GetLastError();
|
errorcode = GetLastError();
|
||||||
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||||
NULL, errorcode, MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), (LPTSTR)&errormessage, 0, NULL);
|
NULL, errorcode, MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), (LPTSTR)&errormessage, 0, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user