Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

помогите разобрать zapret-win-bundle/zapret-winws /preset_russia_autohostlist.cmd #29

Open
yo8z6gv opened this issue Nov 10, 2024 · 6 comments

Comments

@yo8z6gv
Copy link

yo8z6gv commented Nov 10, 2024

https://github.com/bol-van/zapret-win-bundle/blob/master/zapret-winws/preset_russia_autohostlist.cmd

start "zapret: http,https,quic" /min "%~dp0winws.exe" ^
--wf-tcp=80,443 --wf-udp=443,50000-50099 ^
--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt" --new ^
--filter-tcp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake,split2 --dpi-desync-repeats=11 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%~dp0tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-repeats=6 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt" --new ^
--filter-udp=50000-50099 --ipset="%~dp0ipset-discord.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol --dpi-desync-cutoff=n4 --new ^
--filter-udp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin" --new ^
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --hostlist="%~dp0autohostlist.txt"

вот этот код
меня интересует все с второй строки,
почему тогда сразу после
filter-
в одном случае идет настройка
--dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig
а в другом, сразу же указывается
--hostlist="%~dp0list-youtube.txt"
а только потом настройка?

и подобное в настройках то и дело чередуется?

мне надо создать три службы, но изза этого я не понимаю какая строчка к чему относится,

set ARGS=--wf-tcp=443-65535 --wf-udp=443-65535 ^
--filter-udp=443 --hostlist="%~dp0list-discord.txt" --dpi-desync=fake --dpi-desync-udplen-increment=10 --dpi-desync-repeats=6 --dpi-desync-udplen-pattern=0xDEADBEEF --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-65535 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%~dp0list-discord.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%~dp0tls_clienthello_www_google_com.bin"
call :srvinst discord

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1
set ARGS=--wf-tcp=80,443 --wf-udp=443 ^
--filter-udp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin" --new ^
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --new ^
--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt" --new ^
--filter-tcp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%~dp0tls_clienthello_www_google_com.bin" --new ^
--dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt"
call :srvinst winws1

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1

а как сделать чтобы было одна только для ютуба. вторая только для дискорда. а для аутохостлист единственный фильтр split2?
а то такая же ерунда как и в коде №1. т.е сначала идет --hostlist в одной строке, другой сразу же какие то настройки. при этом к какому --hostlist эти настройки относятся? --dpi-desync=fake --dpi-desync-repeats=11 если даже хостлист не указан?
что означает --new ? если ^ перенос на новую строку? то new тогда что разделяет?

методом тыка я выяснил что для работы голосового канала дискорда, достаточно

--filter-udp=50000-65535 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin"

для общего обхода всего филтра --dpi-desync=split2
поэтому из кодов выше я не понимаю чего там так много строчек нагромождено

@yo8z6gv yo8z6gv changed the title помогите разобрать помогите разобрать zapret-win-bundle/zapret-winws /preset_russia_autohostlist.cmd Nov 10, 2024
@bol-van
Copy link
Owner

bol-van commented Nov 10, 2024

--filter-udp=50000-65535 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin"

Это ТРЭШ ФЛУД вариант, распространенный кем-то в сети. Везде отмечаю как таковой. Его использовать нельзя, потому что нет cutoff ограничителя. tamper бесполезен. Диапазон портов слишком широкий.

Вам надо понять, что профили разделяются параметром --new. Внутри профиля порядок указания параметров значения не имеет. Есть параметры фильтра, есть параметры дурения. Их можно мешать как угодно внутри профиля. Суть не меняется. И второе - проверка профилей идет до первого совпадения с начала до конца. Именно по порядку, а не иначе

В новых версиях нет смысла запускать несколько инстансов. все можно в 1 запихнуть.

@yo8z6gv
Copy link
Author

yo8z6gv commented Nov 10, 2024

я разделяю на несколько служб чтобы удобнее было управлять через диспетчер задач.

для голосового дискорда хватило и

set ARGS=--wf-udp=50000-65535 ^
--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol
call :srvinst winws1discord

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1

так что согласен что tamper бесполезен. но как тогда дискорд настроить, голосовой RTC

а пошло это все отсюда..
bol-van/zapret#455 (comment)


кароче по примеру того же preset_russia_autohostlist.cmd и сделал три .cmd которые изначально хотел:

set ARGS=--wf-udp=50000-50099 ^
--filter-udp=50000-50099 --ipset="%~dp0ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol
call :srvinst winws1discord

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1
set ARGS=--wf-tcp=443 --wf-udp=443 ^
--filter-udp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake --dpi-desync-fake-quic="%~dp0quic_initial_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%~dp0list-youtube.txt" --dpi-desync=fake,split2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%~dp0tls_clienthello_www_google_com.bin"
call :srvinst winws1youtube

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1
set ARGS=--wf-tcp=80,443 --wf-udp=443 ^
--filter-tcp=80 --hostlist-auto="%~dp0autohostlist.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt" --new ^
--filter-tcp=80,443 --hostlist-auto="%~dp0autohostlist.txt" --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt" --new ^
--filter-udp=443 --hostlist="%~dp0autohostlist.txt" --dpi-desync=fake --hostlist="%~dp0autohostlist.txt"
call :srvinst winws1autohostlist

goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1

@bol-van
Copy link
Owner

bol-van commented Nov 10, 2024

--filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=n2 --dpi-desync-repeats=<методом_тыка>

См preset_russia.cmd. Там еще есть ограничитель по ipset на дискорд

@Anclave
Copy link

Anclave commented Nov 11, 2024

простите за нубский вопрос ...
Вот я прогнал blockcheck.cmd всякие варианты (кстати он там тока запрет на рутрекер пробует обойти? для ютуба какой сервер тестить?)
В логе он мне написал:

  • SUMMARY
    ipv4 rutracker.org curl_test_http : winws --wf-l3=ipv4 --wf-tcp=80 --dpi-desync=split --dpi-desync-ttl=10
    ipv4 rutracker.org curl_test_https_tls12 : winws --wf-l3=ipv4 --wf-tcp=443 --dpi-desync=disorder2
    ipv4 rutracker.org curl_test_http3 : winws --wf-l3=ipv4 --wf-udp=443 --dpi-desync=fake

я так понял это строчки для создания службы, но я хочу интерактивный запуск через preset_russia.cmd т.к. иногда что-то может не дружить с дпи...
Но в итоге какой батник на выходе должен быть?
Ведь там внутри надо хостлисты указывать и т.п. а я с синтаксисом этих настроек не сильно дружу и вообще изначально там 7 строчек всяких параметров.

@alk2git
Copy link

alk2git commented Nov 22, 2024

эти строчки не для создания службы. Из них надо взять нужные строчки, чтобы добавить в ваш bat-файл.
В ту его часть, которая идет со строчками, начинающимися с --filter. То есть в Вашем случае строки будут:
start "zapret: http,https,quic" /min "%~dp0winws.exe" ^
--wf-tcp=80,443 --wf-udp=443,50000-50099 ^
--filter-tcp=80 --wf-l3=ipv4 --wf-tcp=80 --dpi-desync=split --dpi-desync-ttl=10 --new ^
--filter-tcp=443 --dpi-desync=disorder2 --new ^
--filter-udp=443 --dpi-desync=fake
....

@yo8z6gv
Copy link
Author

yo8z6gv commented Nov 22, 2024

@Anclave нет. это настройки фильтра для winws. а тип запуска winws уже определяется windows.
т.е для служб это будет

net stop
sc delete
sc create
sc description
sc start

для задачи (task), типо cmd, но как приложение или я хз как это работает. команды:

schtasks /Create /F /TN 
schtasks /Run /TN 

WINWS1 же переменная, которая и устанавливается этим
set WINWS1

собственно полные командные строки так и выглядят,
schtasks /Create /F /TN winws1 /NP /RU "" /SC onstart /TR "\"%~dp0winws.exe\" %WINWS1%"

schtasks — инструмент для управления расписанием задач в Windows.
/Create — создаёт новую задачу.
/F — принудительно перезаписывает задачу, если она уже существует.
/TN winws1 — указывает имя задачи (winws1).
/NP — создаёт задачу без сохранения пароля (не использует аутентификацию).
/RU "" — запускает задачу от имени локальной системной учетной записи.
/SC onstart — указывает, что задача должна выполняться при запуске системы.
/TR "\"%~dp0winws.exe\" %WINWS1%" — определяет действие задачи: запускает программу winws.exe, расположенную в той же папке, что и скрипт, с передачей аргумента %WINWS1%.

set ARGS=--wf-l3=ipv4,ipv6 --wf-udp=443 --dpi-desync=fake 
call :srvinst winws1
goto :eof

:srvinst
net stop %1
sc delete %1
sc create %1 binPath= "\"%~dp0winws.exe\" %ARGS%" DisplayName= "zapret DPI bypass : %1" start= auto
sc description %1 "zapret DPI bypass software"
sc start %1

set ARGS — задаёт переменную ARGS со значением:
--wf-l3=ipv4,ipv6 --wf-udp=443 --dpi-desync=fake.
Это параметры, которые будут переданы исполняемому файлу winws.exe.
call :srvinst winws1 — вызывает метку :srvinst, передавая ей аргумент winws1.
goto :eof — завершает выполнение основного блока скрипта.
(Метка :eof автоматически указывает конец файла и завершает выполнение.)
:srvinst — метка, обозначающая начало подпрограммы.
net stop %1 — останавливает службу с именем, переданным как аргумент (winws1).
sc delete %1 — удаляет службу с именем winws1.
sc create %1 — создаёт новую службу с именем winws1.
binPath= — указывает путь к исполняемому файлу:
"%~dp0winws.exe" — текущая папка скрипта.
Параметры запуска берутся из переменной ARGS.
DisplayName= — задаёт имя службы для отображения:
"zapret DPI bypass : winws1".
start= auto — настраивает автоматический запуск службы при старте системы.


ну и как я понимаю это все. других вариантов нет¯_(ツ)_/¯
чтобы запустить от командой строки, пока активна - будет работать, нужно просто все аргументы указывать сразу в cmd.
без этих промежуточных task(задача) или service(служба)

start "zapret: http,https,autohostlist" /min "%~dp0winws.exe" --wf-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --hostlist-auto="%~dp0autohostlist.txt"
start "zapret: quic,autohostlist" /min "%~dp0winws.exe" /min --wf-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --hostlist-auto="%~dp0autohostlist.txt"

в твоем случае нужно этот preset_my-conf-autohostlist.cmd создать с следующим содержанием:

start "zapret: http,https,autohostlist" /min "%~dp0winws.exe" --wf-tcp=80 --dpi-desync=split --dpi-desync-ttl=10 --hostlist-auto="%~dp0autohostlist.txt"
start "zapret: http,https,autohostlist" /min "%~dp0winws.exe" --wf-tcp=443 --dpi-desync=disorder2 --hostlist-auto="%~dp0autohostlist.txt"
start "zapret: quic,autohostlist" /min "%~dp0winws.exe" --wf-udp=443 --dpi-desync=fake --hostlist-auto="%~dp0autohostlist.txt"

первая строка "zapret: http,https,autohostlist" это название батника, остальное, означает в трее запуск? /min, затем что запускается "%~dp0winws.exe" - из текущего каталога файл winws.exe, с переменным --wf-tcp=80 --dpi-desync=split --dpi-desync-ttl=10 --hostlist-auto="%~dp0autohostlist.txt"
на всякий я разделил несколькими строками dpi-desync=split и dpi-desync=disorder2 как у тебя в примере, тк не знаю, совместимо ли все вместе в одной строке.

ну или может можно конечно все это объединить под один start
у чела выше бери. у меня чет не получается -_-

тк допустим на win11 такой вариант батника с переменной не запустится,
--filter-udp=443 --dpi-desync=fake --hostlist="%~dp0autohostlist.txt"
нельзя использовать --hostlist="%~dp0autohostlist.txt" ¯_(ツ)_/¯

--wf-tcp=80,443 --wf-udp=443 задают какие tcp и udp порты будут задействованы, а уже --filter-tcp, --filter-udp конкретно ссылаются на эти самые порты, а далее указываются какие настройки должны быть применимы ко всему. в случае с hostlist-auto еще определяет чтобы филтры использовался только к конкретным доменам, помимо конкретным портов 80 и 443. hostlist-auto - формируется автоматически, если не подключается, hostlist нужно вручную указывать домены с новой строки.


PS если будешь здесь писать, на всякий случай используй символ @ с никнеймами. так, больше вероятность увидят твой пост. поскольку может кто включил уведомления ¯_(ツ)_/¯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants