GoodCheck - блокчек для GDPI, Zapret, ByeDPI (актуальная версия - в профиле)

И почему в Гудчеке эта строка повторяется?

Summary

#KEY#–dpi-desync-split-pos=1;–dpi-desync-split-pos=method+1;–dpi-desync-split-pos=host+1;–dpi-desync-split-pos=endhost-1;–dpi-desync-split-pos=sld+1;–dpi-desync-split-pos=endsld-1;–dpi-desync-split-pos=midsld;–dpi-desync-split-pos=sniext

Она не повторяется
Она видоизменяется.
Это переменные, которые используется гудчеком.
Можете на свои заменить. (подстроить под свой провайдер)

А ещё, в Гудчеке айпишники резолвятся долго перед началом проверки. Будто можно было бы ускорить это дело.

Это говорит лишь о том, что провайдер проверяет “частоту” запроса.
У меня резолвится все быстро. А значит все-же стоит озаботиться об альтернативном получении записей DNS

PS Хотя часть запросов можно в конфиге отключить.

А это нормально, что фейки от Хрома весят около 1,75 кб? payloadGen 0.8

Конечно, ведь это так просто. Вот только в uquic по умолчанию есть только firefox 116 и chrome 115, а значит что? Значит, чтобы “для интереса” добавить Safari и мобильные браузеры, мне их надо установить, поймать в шарке quic initial, а потом ручками заполнить длиннющий struct QUICSpec{}. Мне этим “для интереса” заниматься лень.
С TLS CH проблем нет, но и смысла тоже нет, запрет их на ходу генерит энивей.

payloadGen не добавляет название браузера в сгенерированный файл

Сделаю.

Фейки с Хрома при этом всегда выдают хекс в консоль, с Файрфокса - нет.

У себя проблему воспроизвести не могу.

И ещё было бы удобно генерировать по списку из файла - без масок, просто по списку. Условно взять откуда-то список типа “тысяча самых важных и популярных доменов интернета” и посмотреть какие фейки из него наиболее эффективны через блокчек.

Бессмысленно, имхо. Берете sni из “белого списка”, типа mail.ru vk.com для обычных сайтов и sni от гуглодоменов для ютуба, всё. Не думаю что разные sni повлияют на скорость доступа к блокнутым сайтам.
Возможно, добавлю флаги командной строки для проги, чтобы вы могли себе батник написать и пройтись по списку какому желаете.

И почему в Гудчеке эта строка повторяется?

Где именно? Вопрос нормально ставьте.

А ещё, в Гудчеке айпишники резолвятся долго перед началом проверки. Будто можно было бы ускорить это дело.

:face_exhaling: Уважаемый, в следующий раз когда будете оставлять фидбек, давайте больше объективных данных и информации, и меньше субъективных мыслей и чувств.
Пример:

  • как у вас: айпишники резолвятся долго перед началом проверки. Будто можно было бы ускорить это дело.
  • как должно быть: в режиме {native/curl} с резолвером {адрес}, резолвинг {число} сайтов занял {N} времени. Этот процесс можно было бы ускорить следующим образом: {ваше предложение}

По сути вопроса: в config.ini есть строка DoHResolvers= в которой находится список резолверов в порядке приоритета. На первое место поставьте тот, который у вас быстро работает. Если он сфейлится - произойдет переключение на второй и т.д.
Там же есть строка UseDoH=, которая позволяет отключить dns-over-https и производить резолвинг системным резолвером. Если у вас в системе не задействвован DoH, то это обычные запросы по порту 53. Они очень быстрые. Однако, много кому по IPoE раздается провайдерский DNS и они этого факта даже не замечают + подмены DNS на некоторых провах, поэтому по умолчанию это выключено.

А это нормально, что фейки от Хрома весят около 1,75 кб? payloadGen 0.8

Без понятия. Какие utls/uquic/uhttp3 фейки лепит, такие и ловятся. Вопросы к ним. Можете обрезать прямо в программе и проверить сохранилась ли их функциональность.

Флаги командной строки (справка на -h), расширенный выбор браузера, браузер в названии файла при сохранении.

payloadGen_v0.9.1_win.zip (3,4 МБ)
payloadGen_v0.9.1_linux.zip (3,3 МБ)

1 Like

Какие из этих фейков лучше для googlevideo.com подходят?

Хз. Я пробовал дефолтные firefox 120 для tls clienthello и firefox 116A для quic, у меня с ними работало. Остальные не тестил.

Я попробовал последнюю версию фейков хрома, так с ними firefox вообще отказался загружать страницу ютуба.

upd:
Странно, но с дефолтными firefox 120 для tls clienthello и firefox 116A для quic у меня также firefox 128.12.0esr отказывается страницу ютуба загружать.

Хоть бы стратегию свою написали, для приличия.

Проверил такое:

winws --wf-tcp=443 --dpi-desync=fake,multisplit --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --dpi-desync-fake-tls="[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.16 06-06-07].bin"

и такое:

winws --wf-tcp=443 --wf-udp=443 ^
--filter-udp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake --dpi-desync-repeats=2 --dpi-desync-fake-quic="[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.16 06-01-33].bin" --new ^
--filter-tcp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake,multisplit --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --dpi-desync-fake-tls="[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.16 06-06-07].bin" --new ^
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --new ^
--filter-tcp=443 --dpi-desync=fake,multisplit --dpi-desync-fake-tls-mod=rnd,rndsni,dupsid,padencap --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2

Всё работает. В консоли видно соединения с ggc по http/1.1 и h3.

Для главной страницы я хз зачем вы кастомные фейки лепите. Там же только в ggc реальная проблема.

Я нашел ошибку. Я использовал самую популярную сборку с гитхаба для упрощения запуска разных стратегий и добавления службы. Там в коде ошибка, которая неправильно формировала строку запуска winws.exe. Исправил так set "arg=\!QUOTE!%~dp0!arg!\!QUOTE!" -> set "arg=\!QUOTE!!arg!\!QUOTE!", теперь все правильно. На этой стратегии удалось запустить оба, и Firefox ESR и Brave, googlevideo.com и youtube.com в списке list-general.txt. Но googlevideo.com на ней работает плохо.

start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,%GameFilter% --wf-udp=443,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multisplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-all.txt" --dpi-desync=fake,multisplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.18 04-01-34].bin" --dpi-desync-cutoff=n2

Наверное вы правы, но я пока не нашел стратегию, которая бы без фейка надежно загружала страницы ютуба. Эта ваша стратегия сначала работала, но через некоторое время Brave, который на хроме, перестал загружать страницы ютуба. Firefox при этом все загружал.

start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,%GameFilter% --wf-udp=443,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake --dpi-desync-repeats=2 --dpi-desync-fake-quic="%BIN%[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multisplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake,multisplit --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --dpi-desync-fake-tls="%BIN%[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --new ^
--filter-tcp=443 --dpi-desync=fake,multisplit --dpi-desync-fake-tls-mod=rnd,rndsni,dupsid,padencap --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2

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

start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,%GameFilter% --wf-udp=443,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake --dpi-desync-repeats=2 --dpi-desync-fake-quic="%BIN%[QUIC_Initial][Firefox 116 (A)][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multisplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist-domains="googlevideo.com" --dpi-desync=fake,multisplit --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --dpi-desync-fake-tls="%BIN%[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.18 04-01-34].bin" --new ^
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --new ^
--filter-tcp=443 --dpi-desync=fake,multisplit --dpi-desync-fooling=badseq --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --dpi-desync-fake-tls="%BIN%[TLS_ClientHello][Firefox 120][fonts.google.com][2025.07.18 04-01-34].bin"

В консоли и по http/1.1 и h3 соединение проиходит и в ответ приходит 404 не зависимо от того включен запрет или нет

curl -v --http1.1 -I "https://rr1...googlevideo.com"
curl -v --http3-only -I "https://rr1...googlevideo.com"

Хз. Для tcp 443 googlevideo можно вообще попробовать фейки убрать, оставить только сплит, у меня такое работает:

--filter-tcp=443 --hostlist-domains="googlevideo.com" --dpi-desync=multisplit --dpi-desync-split-pos=1,midsld --dpi-desync-split-seqovl=2 --new ^

Можно попробовать для теста вырубить quic в браузере, возможно будет быстрее без него.

Можно попробовать заблочить часть гуглосерверов. У меня, например, провайдерские тормозят, поэтому я их тупо блокнул в uBlock’e.

В консоли и по http/1.1 и h3 соединение проиходит и в ответ приходит 404 не зависимо от того включен запрет или нет

Реально на мою ситуацию похоже. У вас часом провайдер - не питерский скайнет? У них родные кэши до ТСПУ стоят каким-то макаром, потому ответ есть и без обхода. Но при этом они так тормозят, что от них один вред, приходится блочить.


Немного форумного оффтопа, накатал тут себе сегодня экстрактор vod’ов для твича (а то вариации, которые нашел на гитхабе, все работают как-то ну так себе), решил закинуть сюда, может кому пригодится. Работает на основе ссылок с streamscharts.com. Клаудфлейровскую антибот защиту проходит через api от scrapingant.com. Изначально планировал добавить twitchtracker.com и sullygnome.com, но scrapingant их не пробивает, я хз.

Принцип следующий:

  • регаемся на scrapingant, можно фейковой 10-минутной почтой; в личном кабинете находим api token key
  • вставляем его в config.ini в строку SA_APIKEY=
  • находим ссылку на нужный стрим на streamscharts, выглядеть должно так: https://streamscharts.com/channels/riotgames/streams/324240532604
  • вставляем в программу и ждем; если получится - выдаст прямую ссылку на m3u8, которую большинство плееров схавает

В былые времена таким образом можно было доставать из кэша твича в т.ч. удаленные стримы и стримы “только для подписчиков”. Но нынче они походу что-то поменяли в своём api и такой фокус уже не работает. Btw, кэш за amazon cloudfront, так что если у вас cdn заблочен, то может и не получиться я хз.

rec_v0.2_win.zip (2,1 МБ)
rec_v0.2_linux.zip (2,1 МБ)

v0.2 - некритичные фиксы

Спойлер

спасибо, попробую применить в своём скрипте, а api долго такой будет работать? и как часто его можно юзать? если раз в час 24\7?
а прогу эту в целом ты как применяешь, в чём удобство? просто в плеере смотреть?
ps
по апишке зарегался, увидел

Спойлер

в итоге у меня 1 запрос был удачный, а потом стало валиться в ошибку при этом кредиты тратятся :\

Ошибка при запросе через ScrapingAnt: {“detail”:“Our browser was detected by target site. Retry the request or try adjusting proxy country, proxy type and browser rendering settings. Our documentation: https://docs.scrapingant.com/ and support email: suppor
t@scrapingant.com”}
Детали ошибки: Удаленный сервер возвратил ошибку: (423) Locked.
HTTP статус: 423

Спойлер

ScrapingAnt то? Ну вообще он сильно медленный и не особо надежный.

В обычном режиме отвечает где-то от 3 до 20 секунд. Если headless browser в настройках включить, то там уже около минуты. На части сайтов пишет “our browser was detected, sorry”. Пробовал крутить и так, и сяк, и свои куки пихать - без толку. Если где-то не пробивается, то походу не решаемо, ну или я хз.

Кроме того, через обычный браузер он почти юзлесс, так как на бесплатном тарифе там 1 параллельное соединение только можно, а браузеры нынче многопоточные все и он фейлится с ошибкой. Так что только в скриптах/курле, ну или внутренние настройки браузера крутить.

По поводу того как часто, там есть лимит по условным “кредитам”, 10к. Супербазовый запрос стоит 1 кредит, если со всякими доп. настройками то можно до 125 разогнать. На практике у меня никогда эти кредиты не кончались.

По проге, ну в mpv, например, можно с нормальным кэшированием смотреть, чтобы оно не подвисало постоянно на перемотке, как в браузере. Закэшировал на полчаса вперед - красота, ляпота.

Ну и раньше я этот метод использовал, чтобы смотреть стримы, которые уже удалились “по сроку давности” и на странице стримера не отображаются, т.к. на самом деле в кэше они хранятся (или хранились, до смены api твичом) от 2 до 6 месяцев.

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

Спойлер

да, подкрутил варианты, опять заработало
# Набор параметров для обхода детекции (попробуем разные комбинации)
$paramSets = @(
# Базовый запрос с браузером
“url=$encodedTargetUrl&browser=true&x-api-key=$ApiKey”,
# С прокси США
“url=$encodedTargetUrl&browser=true&proxy_country=US&x-api-key=$ApiKey”,
# С прокси и stealth режимом
“url=$encodedTargetUrl&browser=true&proxy_country=US&stealth=true&x-api-key=$ApiKey”,
# С другим типом прокси
“url=$encodedTargetUrl&browser=true&proxy_type=datacenter&x-api-key=$ApiKey”,
# Без браузера (простой HTTP запрос)
“url=$encodedTargetUrl&x-api-key=$ApiKey”
)

10 кредитов съедает, но в целом почему нет, сделаю сначала его если не получается то пробуем обычным способом (хотя не, наоборот сделаю)
скорость да, сначала подумал что всё повисло)
по кэшу понял, предпочитаю онлайны чтобы чатик почитать)

Спойлер

Вроде чат тоже можно как-то выцепить целиком, я натыкался на подобные проекты.

Вообще, надо попробовать реализовать свой обход клаудфлейра с помощью phantomJS. Не удивлюсь, если на scrapingant под капотом он и есть.

Раз теперь это не работает и доступны только видео со страницы стримера, то какой смысл мудохаться с чартами и капчами если yt-dlp поддерживает под сотню сервисов из коробки, в том числе и твич.
А если нормально прописать path и ytdl-hooks, то и mpv будет вызывать yt-dlp и автоматом проигрывать видео по ссылке или целый плейлист безо всяких выкрутасов с пайплайнами.
add. А если нужна отложенная запись, то и ее yt-dlp умеет с флагом --wait-for-video=15 (произвольный интервал в секундах).
Что касается чата на твиче, то он с видео не связан, это обычный чат поверх ирки, просто синкается по таймстампам во время просмотра видео.

Спойлер

Ну, когда я начинал писать, то всё-таки надеялся, что получится как-то выцеплять удаленные стримы + мне банально было интересно покодить это дело. А yt-dlp я пользоваться умею, но спс, конечно.