GoodCheck - блокчек-скрипт для GoodbyeDPI, Zapret, ByeDPI

Я просто запускаю блокчек с включенным запретом и сравниваю)
на местном

Спойлер
  • checking without DPI bypass
    [attempt 1] AVAILABLE
    [attempt 2] AVAILABLE
    [attempt 3] AVAILABLE
    [attempt 4] AVAILABLE
    [attempt 5] AVAILABLE
    [attempt 6] AVAILABLE
    [attempt 7] curl: (28) Connection timed out after 2011 milliseconds
    [attempt 8] AVAILABLE
    [attempt 9] AVAILABLE
    [attempt 10] AVAILABLE
    [attempt 11] curl: (28) Connection timed out after 2016 milliseconds
    [attempt 12] AVAILABLE
    [attempt 13] AVAILABLE
    [attempt 14] curl: (28) Connection timed out after 2013 milliseconds
    [attempt 15] AVAILABLE
    [attempt 16] curl: (28) Connection timed out after 2009 milliseconds
    [attempt 17] AVAILABLE
    [attempt 18] AVAILABLE
    [attempt 19] AVAILABLE
    [attempt 20] AVAILABLE
    [attempt 21] AVAILABLE
    [attempt 22] AVAILABLE
    [attempt 23] AVAILABLE
    [attempt 24] AVAILABLE
    [attempt 25] AVAILABLE
    [attempt 26] AVAILABLE
    [attempt 27] curl: (28) Connection timed out after 2005 milliseconds
    [attempt 28] curl: (28) Connection timed out after 2004 milliseconds
    [attempt 29] AVAILABLE
    [attempt 30] curl: (28) Connection timed out after 2014 milliseconds

на другом, который подальше

Спойлер

[attempt 1] AVAILABLE
[attempt 2] AVAILABLE
[attempt 3] AVAILABLE
[attempt 4] curl: (28) Connection timed out after 2011 milliseconds
[attempt 5] AVAILABLE
[attempt 6] AVAILABLE
[attempt 7] AVAILABLE
[attempt 8] AVAILABLE
[attempt 9] AVAILABLE
[attempt 10] AVAILABLE
[attempt 11] AVAILABLE
[attempt 12] AVAILABLE
[attempt 13] AVAILABLE
[attempt 14] AVAILABLE
[attempt 15] AVAILABLE
[attempt 16] AVAILABLE
[attempt 17] AVAILABLE
[attempt 18] AVAILABLE
[attempt 19] AVAILABLE
[attempt 20] curl: (28) Connection timed out after 2001 milliseconds
[attempt 21] AVAILABLE
[attempt 22] AVAILABLE
[attempt 23] AVAILABLE
[attempt 24] AVAILABLE
[attempt 25] AVAILABLE
[attempt 26] AVAILABLE
[attempt 27] AVAILABLE
[attempt 28] AVAILABLE
[attempt 29] AVAILABLE
[attempt 30] AVAILABLE
[attempt 31] AVAILABLE
[attempt 32] AVAILABLE
[attempt 33] AVAILABLE
[attempt 34] AVAILABLE
[attempt 35] AVAILABLE
[attempt 36] AVAILABLE

с вашей стратегией на местном

Спойлер

[attempt 1] curl: (28) Connection timed out after 2014 milliseconds
[attempt 2] AVAILABLE
[attempt 3] AVAILABLE
[attempt 4] curl: (28) Connection timed out after 2009 milliseconds
[attempt 5] AVAILABLE
[attempt 6] AVAILABLE
[attempt 7] AVAILABLE
[attempt 8] AVAILABLE
[attempt 9] AVAILABLE
[attempt 10] AVAILABLE
[attempt 11] AVAILABLE
[attempt 12] curl: (28) Connection timed out after 2007 milliseconds
[attempt 13] AVAILABLE
[attempt 14] AVAILABLE
[attempt 15] AVAILABLE
[attempt 16] curl: (28) Connection timed out after 2001 milliseconds
[attempt 17] curl: (28) Connection timed out after 2015 milliseconds
[attempt 18] curl: (28) Connection timed out after 2014 milliseconds
[attempt 19] AVAILABLE
[attempt 20] curl: (28) Connection timed out after 2004 milliseconds
[attempt 21] AVAILABLE
[attempt 22] AVAILABLE
[attempt 23] AVAILABLE
[attempt 24] AVAILABLE
[attempt 25] AVAILABLE
[attempt 26] AVAILABLE
[attempt 27] AVAILABLE
[attempt 28] AVAILABLE

в целом, без них у меня стабильней работает

Перестал работать инстаграм. Блокчек для любого айпишника и любых стратегий не работают, ни одна. Гудбайдпи версия последняя при этом
Log_GoodCheck_03-11-2024_00-26-08.txt (741,1 КБ)

там часть айпи адресов забанили. работает с альтернативными (походу прям сегодня)
причем в hosts надо прописывать именно www.instagram.com

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

Откройте config.cmd, найдите строку
set "_curlExtraKeys="
и поменяйте на
set "_curlExtraKeys=--insecure"

Это отключит проверку сертификатов. Затем попробуйте повторить тест.

Также можете отключить dns-over-https, т.к. оно тут не нужно:
set "_dohEnabled=false"

@uwu @Ori
Точно. Перенаправил затем в hosts и всё заработало. Спасибо!

Короче, я не знаю как сделать нормальное тестирование для ByeDPI. Делаешь 1 запрос - всё норм. Делаешь хотя бы 5 запросов параллельно - они все фейл. Пробовал добавлять рандомные задержки перед запросами, но это решает проблему лишь частично. Полностью решает проблему лишь переключение в режим последовательных запросов, но это увеличивает время тестирования раз в 20.

При тестировании 80 сайтов одновременно, ситуация такая:

  • одновременные запросы с рандомной задержкой в пределах 500 мс: ~5 успехов из 80
  • одновременные запросы с рандомной задержкой в пределах 5 сек: ~40 успехов из 80
  • последовательные запросы: 65 успехов из 80 (реальный результат)

Причем это происходит лишь на некоторых стратегиях (в основном тех что с --fake), на остальных всё норм. Проблема сохраняется и для нативных запросов go, и для курла.

Спойлер

Как это решать - без понятия. Поэтому решил забить на это дело.
Просто создайте чеклист с 1 сайтом, который вам нужен - и проверяйте только его (не забудьте отключить AutomaticGoogleCacheTest в конфиге, иначе вам автоматом докинется ваш гуглвидео сервер). Т.е., по-сути, получается аналог запретовского блокчека, но для byedpi.
А ещё стратегии с --fake часто дают ложно-отрицательный результат.
А ещё фейлится тест ipv6. Но это отдельная история.
Крч, мне byedpi в кошмарах сниться будет, я чувствую.

Кроме того, пофиксил пару багов по мелочи и допилил, наконец, листы стратегий для запрета. Начинать рекомендую с [TCP] - [IPv4] - [WITHOUT WSSIZE].txt. И только если он не даст результата - пробовать вариант с WSSIZE. Лист для IPv6 длиннее (примерно час против 35 минут для IPv4), т.к. там всякие штуки, которые есть только на ipv6.

GoodCheckGoGo_0.8.0.zip (6,7 МБ)
GoodCheckGoGo_0.8.0_src.zip (28,8 КБ)

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

Но если нет - то нет )

Ну щас будем потрошить провайдера…
ТСПУ должна умереть

Ну а как сделать чтобы не отрубалось сразу? Чтобы сжать пэйлоад - нужен заблоченный сайт на котором он будет изначально работать. Если сразу не работает - то и начать его сжимать не получится.

Так что да, всё упирается в пользовательские стратегии. Надо будет доделать, когда будет время.

А как тестировать юдп? Если при проверке он фейлит и не дает запустить даже

Скорее всего на том сайте нет UDP
UDP портом надо пытать youtube с его видео. Подбор стратегии для QUIC/HTTP3

Эта проблема только с udp? Tcp работает норм?
Попробуйте следующее:

  • Проверьте, что ваш файрвол не блокирует udp трафик гудчека
  • В конфиге поменяйте сайт для проверки соединения на www.google.com (или любой другой незаблокированный сайт с поддержкой quic):
    ConnectivityTestURL=https://www.google.com
  • Увеличьте таймаут до 2 секунд:
    ConnectionTimeout=2
  • Возьмите папку Curl из стартового поста, положите её рядом с экзешником, запустите проверку через курл, а не через native.

Если проблема сохраняется, то, возможно, на вашем провайдере udp заблочен капитально? Проверку при старте можно полностью отключить вот таким образом:
AutomaticConnectivityTest=false
Однако будет ли в итоге толк от тестирования - хз.

Есть. Я его не просто так выбрал в качестве сайта для проверки соединения.

А почему по умолчанию версия на Go проверяет варианты с параметрами fake-with-sni, fake-from-hex и fake-gen одновременно? Разве один последний не перепишет другие? Вот пример лога по стратегиям из [IPv4] - [e1 + e2 + e4] - [LONG].txt:
Strategies with 66/72 successes: [-q -e 2 --reverse-frag --frag-by-sni --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801] [-q -e 1 --reverse-frag --frag-by-sni --wrong-chksum --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801 --fake-gen 5] [-q -e 2 --reverse-frag --wrong-chksum --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801 --fake-gen 5] [-q -e 2 --reverse-frag --frag-by-sni --wrong-chksum --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 160303 --fake-gen 5]

Указывает чем подменить SNI в отправленном пакете

Генерирует ClienHello на основе HEXа

Указывает на количество генерации фековых пакетов (вольный перевод и интерпретация)

По сути это разный подход к обману ТСПУ

Спасибо да отключение проверки помогло
наверно стоит для удп убрать проверку соединения
Я думал смогу проверить на войс серверах дискорда по похожу ничего не выйдет
В логе теста запрета заметил лишний пробел перед --dpi-desync-split-tls=sniext

Понятно, что 3 подхода разных. Но мне кажется, неправильно использовать все 3 в одном наборе параметров. Явно должен быть использован лишь один из них.

Когда кажется, креститься надо

Я могу ошибиться и возможно это не ClientHello, а ServerHello. Данный обман нужен для того что бы можно аля забраться на рутрекер

Проверяй одним словом. Может оказаться не достаточным. Впрочем из нужного - Повтор и Сни или Хекс и повтор

На моем провайдере, самая эффективная стратегия для гудбая - это --fake-with-sni www.google.com --fake-from-hex 160303 --fake-gen 5. Так что, да, видимо, это работает. Как именно работает - это уже не ко мне, а к автору гудбая.

Понятно, что 3 подхода разных. Но мне кажется, неправильно использовать все 3 в одном наборе параметров. Явно должен быть использован лишь один из них.

Это 100% не так. Вот пример из моего недавнего лога:

Спойлер
Strategies with 59/87 successes:
[-q -e 2 --reverse-frag --set-ttl 4 --fake-with-sni fonts.google.com]

Strategies with 67/87 successes:
[-q -e 2 --reverse-frag --set-ttl 4 --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801]

Strategies with 73/87 successes:
[-q -e 2 --reverse-frag --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801]

Strategies with 75/87 successes:
[-q -e 2 --reverse-frag --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801 --fake-gen 5]
[-q -e 2 --reverse-frag --set-ttl 4 --fake-with-sni fonts.google.com --fake-from-hex 1603030135010001310303424143facf5c983ac8ff20b819cfd634cbf5143c0005b2b8b142a6cd335012c220008969b6b387683dedb4114d466ca90be3212b2bde0c4f56261a9801 --fake-gen 15]

Ок, наверное, уберу.

Я думал смогу проверить на войс серверах дискорда по похожу ничего не выйдет

Войс дискорда на нестандартном порте 50000-50099 + там какой-то свой протокол, не quic. Я не нашел каким способом можно автоматизировать поиск стратегии для войса. У меня он вот с таким работает:

--filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d2 --dpi-desync-fake-unknown-udp=0x00

В логе теста запрета заметил лишний пробел перед --dpi-desync-split-tls=sniext

Действительно. Исправлю. На практике, лишний пробел никакого негативного эффекта не оказывает.

is there a way что ето можно адоптировать на линуксе? исходники на го которые скомпилятся ваще там как думаете? потому что каку тверждал самолично бо-лван что егошний блокчек от запрета не годится для определения замемдления сайтов ане только лиш блокировка, яс кока не проганял сервера гуглавидео через блолкчек.sh заперете на линухе так от задержки в начале не избавился, а етим гукчек находил стратегию которая делает всё збс в етом план е, пробовал брать сратегию которая нашол гукчек но ето на другом роарстелекоме поетому не проканало

потому что если я правельно понел гукчек детектит не только лиш блокировки нои замемдления тоже

алсо интересует как оно сопостовляет название кластера с тем что выдаёт мапинг урл

set “reportMappingURL[0]=https://redirector.gvt1.com/report_mapping?di=no
set “reportMappingURL[1]=https://redirector.googlevideo.com/report_mapping?di=no

там ж ваще не фигу рирует ничё толком

Если что бы просто запускался то вот. Дальше запуска не тестил концепт сервисов вообще выглядит лишним для линукса так что я хз что писать в StopAndDeleteServices.

GoodCheckGoGo_0.8.0.7z (91.2 KB)

Linux needs goodcheck!