diff --git a/binaries/win64/winws.exe b/binaries/win64/winws.exe index b7f96c3..93d428e 100644 Binary files a/binaries/win64/winws.exe and b/binaries/win64/winws.exe differ diff --git a/binaries/win64/zapret-winws/winws.exe b/binaries/win64/zapret-winws/winws.exe index b7f96c3..93d428e 100644 Binary files a/binaries/win64/zapret-winws/winws.exe and b/binaries/win64/zapret-winws/winws.exe differ diff --git a/binaries/win64/вас.txt b/binaries/win64/вас.txt new file mode 100644 index 0000000..36ead6e --- /dev/null +++ b/binaries/win64/вас.txt @@ -0,0 +1 @@ +sdf diff --git a/docs/windows.eng.md b/docs/windows.eng.md index 0542819..ad9e054 100644 --- a/docs/windows.eng.md +++ b/docs/windows.eng.md @@ -59,8 +59,6 @@ If you can't find index this way use `winws --debug` to see index there. Subinte Multiple `winws` processes are allowed. However, it's discouraged to intersect their filters. -Paths are passed in `cygwin` format. Windows drives are mapped to `/cygdrive/x`. For example : `/cygdrive/c/Users/vasya/zapret`. - `Cygwin` shell does not run binaries if their directory has it's own copy of `cygwin1.dll`. That's why exists separate standalone version in `binaries/win64/zapret-tpws`. `Cygwin` is required for `blockcheck.sh` support but `winws` itself can be run standalone without cygwin. @@ -86,6 +84,11 @@ Windows does not have them. To execute `blockcheck.sh` use `cygwin` command prom It's not possible to use `WSL`. It's not the same as `cygwin`. First run once `install_bin.sh` then `blockcheck.sh`. +Backslashes in windows paths shoud be doubled. Or use cygwin path notation. +``` +cd "C:\\Users\\vasya" +cd "/cygdrive/c/Users/vasya" +``` `Cygwin` is required only for `blockcheck.sh`. Standalone `winws` can be run without it. diff --git a/docs/windows.txt b/docs/windows.txt index 767cadc..c29802c 100644 --- a/docs/windows.txt +++ b/docs/windows.txt @@ -48,7 +48,7 @@ secure boot могут быть проблемы из-за подписи дра Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров. - --wf-iface=[:] ; числовые индексы интерфейса и суб-интерфейса + --wf-iface=[.] ; числовые индексы интерфейса и суб-интерфейса --wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6. --wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание --wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание @@ -69,8 +69,6 @@ autottl и autohostlist. При включении autohostlist так же пе Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры. -В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin. -Например, /cygdrive/c/Users/vasya/zapret. Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM. Для русского языка это 866. Пути с пробелами нужно брать в кавычки. @@ -101,7 +99,10 @@ blockcheck.sh написан на posix shell и требует некоторы Потому просто так запустить blockcheck.sh невозможно. Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе. Следует запустить от имени администратора cygwin shell через cygwin.bat. -В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x. +В нем нужно пройти в директорию с zapret. +Обратные слэши путей windows нужно удваивать, либо использовать отображение на unix path. +Корректный вариант 1 : cd "C:\\Users\\vasya" +Корректный вариант 2 : cd "/cygdrive/c/Users/vasya" Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh. WSL использовать нельзя, это не то же самое. diff --git a/nfq/nfqws.c b/nfq/nfqws.c index d09ed72..3a62d18 100644 --- a/nfq/nfqws.c +++ b/nfq/nfqws.c @@ -732,7 +732,7 @@ static void exithelp(void) " --ctrack-timeouts=S:E:F[:U]\t\t\t; internal conntrack timeouts for TCP SYN, ESTABLISHED, FIN stages, UDP timeout. default %u:%u:%u:%u\n" #ifdef __CYGWIN__ "\nWINDIVERT FILTER:\n" - " --wf-iface=[:]\t\t\t; numeric network interface and subinterface indexes\n" + " --wf-iface=[.]\t\t\t; numeric network interface and subinterface indexes\n" " --wf-l3=ipv4|ipv6\t\t\t\t; L3 protocol filter. multiple comma separated values allowed.\n" " --wf-tcp=[~]port1[-port2]\t\t\t; TCP port filter. ~ means negation. multiple comma separated values allowed.\n" " --wf-udp=[~]port1[-port2]\t\t\t; UDP port filter. ~ means negation. multiple comma separated values allowed.\n" @@ -1385,7 +1385,7 @@ int main(int argc, char **argv) break; #elif defined(__CYGWIN__) case 48: /* wf-iface */ - if (!sscanf(optarg,"%u:%u",&IfIdx,&SubIfIdx)) + if (!sscanf(optarg,"%u.%u",&IfIdx,&SubIfIdx)) { fprintf(stderr, "bad value for --wf-iface\n"); exit_clean(1);