B-Checker - авто-подбор и сохранение стратегий ByeDpi (windows)

О программе ByeDpi:

Локальный http/socks-прокси (по умолчанию адрес 0.0.0.0 и порт 1080, в данной сборке изменен на 127.0.0.1 и порт 18083) Это не впн/внешний прокси/, он никуда не перенаправляет сетевые запросы, лишь обрабатывает их). Кроме браузера этот прокси можно прописать в любой др. программе и на уровне системы

О батнике B-Checker.cmd:
Основные фичи:
  • Остановка, если нашлась стратегия (аналог режима quic в блокчеке из zapret; не нужно ждать перебора всех стратегий)
  • Сохранение успешной стратегии в батник (не нужно искать стратегию в логе)
  • Тест на “16КБ” блок включен по умолчанию (взят из блокчека, нужны ссылки > 34КБ в чеклисте)
  • Тест на блок по ip и поиск рабочих ip (взят из блокчека)
  • curl-impersonate с имитацией chrome/firefox (мин. несоответствия между curl и браузером)
  • Отдельные стратегии для tcp и udp
  • Можно использовать --ipset вместо --hostlist (настройка $ipset=yes в B-Checker.ini)

Инструкция:
1) Скачать и распаковать архив со сборкой B-CheckerV5.zip (2,5 МБ)
2) Установить в браузере расширение SmartProxy (либо ZeroOmega или др. подобное)
Firefox SmartProxy – скачайте это расширение для 🦊 Firefox (ru)
Chrome https://chromewebstore.google.com/detail/smartproxy/jogcnplbkgkfdakgdenhlpcfhjioidoj?hl=ru
3) Импортировать готовые настройки для SmartProxy: Кликнуть по иконке расширения SmartProxy → Настройки → Резервирование/восстановление → Восстановить из резервной копии → выбрать файл SmartProxyByeDPI.json из папки Files
Либо вручную добавить прокси сервер тип SOCKS5, адрес 127.0.0.1, порт 18083

Если стоит антивирус/фаерволл/брандмауэр:
  1. для curl-impersonate.exe: разрешить все исходящие запросы TCP и UDP
  2. для ciadpi.exe: разрешить все исходящие и входящие запросы TCP и UDP
  3. для браузера: разрешить исходящие запросы TCP и UDP на 127.0.0.1 и порт 18083

4) Запустить ByeDpi_Console.cmd либо ByeDpi_Service.cmd и проверить в браузере нужные сайты. Если все ок, дальше можно не читать
5) Запустить B-Checker.cmd
6) Выбрать протокол (по умолчанию tcp), браузер (по умолчанию chrome145) и чеклист (список адресов для проверки)
7) Если скрипт нашел стратегию - проверить сайт в браузере (ни в коем случае не закрывать консольное окно с byedpi!).
8) Стратегия не устроила - нажать цифру 2 и Enter. Скрипт продолжит поиск.
9) Все открылось - просто нажать Enter. Скрипт сохранит стратегию в ByeDpi_Console.cmd/ByeDpi_Service.cmd и завершит работу. Затем запустить cmd для консоли или службы - как удобнее. Стратегии, найденные чекером, не перезаписываются, а добавляются для каждого чеклиста. Т.е. одним батником запускаются стратегии для всех чеклистов сразу. При повторном подборе прежняя стратегия для чеклиста перезаписывается

О расширении SmartProxy:
Есть 3 основных режима:
	1.Напрямую (все сайты без прокси);
	2.Умный прокси (прокси для сайтов из списка “Умный прокси” в настройках);
	3.Всегда включен (все сайты через выбранный прокси)
Как добавить/изменить прокси-сервер:
	Кликнуть по иконке расширения → Настройки → Прокси-серверы
Как добавить/исключить какой-либо домен на сайте:
	Кликнуть по иконке расширения → Включить прокси для → Поставить/Снять галку
	или
	Кликнуть по иконке расширения → Неудачные запросы → Добавить в список правил
	или
	Кликнуть по иконке расширения → Настройки → Умный прокси
Составление чеклистов:

Чеклистом считается любой файл *.txt в папке CheckLists. В нем можно указывать любые домены и ссылки
Допустим, нужно найти стратегию для сайта example.com

  • Создаете в папке CheckLists файл Example.txt
  • В него вписываете https:\example.com
  • Запускаете B-Checker.cmd , выбираете свой чеклист Example.txt
  • Сохраняете успешную стратегию и запускаете byedpi_Console.cmd
  • Открываете в браузере https:\example.com
  • Если сайт наполовину не грузится, вызываете лог браузера по F12 либо CTRL+SHIFT+J;
  • На вкладке Сеть/Network сортируете по url либо доменам и ищете неудачные запросы [красного цвета]
  • Копируете эти ссылки (или только домены), вставляете в CheckLists\Example.txt
  • Удаляете файл HostLists\Example.txt (чтобы он пересоздался)
  • Запускаете B-Checker.cmd с тем же чеклистом Example.txt
    Примечание: ищется общая стратегия для всех адресов из чеклиста - если хотя бы один адрес из чеклиста недоступен, стратегия не найдется (т.к. если доступны все домены, кроме главной страницы, сайт не откроется; если доступна только главная страница, сайт откроется, но не будет работать).
    Поэтому чеклисты лучше составлять по принципу: “1 сайт + необходимые поддомены” либо “несколько сайтов на одном CDN”
Настройка браузера:
Описание файлов B-Checker:
\x32/x64\ciadpi.exe - приложение byeDPI	
ByeDpi_Console.cmd - батник, запускающий консольное окно byeDPI с параметрами по умолчанию
ByeDpi_Service.cmd - батник, устанавливающий byeDPI как службу с параметрами по умолчанию
B-remover.cmd - батник, завершающий все процессы ciadpi.exe и удаляющий все службы byedpi
B-Checker.cmd - батник для авто-подбора стратегии
B-Checker.ini - файл с настройками B-Checker.cmd
B-Checker.log - лог скрипта
ConfigGeneratorTls/Http/Udp.cmd - генератор стратегий byedpi для разных протоколов (с возможностью настроить под себя)
\CheckLists\*.txt - чеклисты (списки сайтов для проверки, можно указывать любые ссылки)
\HostLists\*.txt - хостлисты (списки доменов для byedpi)
\IpSets\*.txt - ipsets (списки ip для byedpi) Источники: https://github.com/lord-alfred/ipranges https://github.com/123jjck/cdn-ip-ranges https://github.com/you-oops-dev/ipranges
\Configs\Configs*.txt - файлы с стратегиями для Tls/Http/Udp
\Files\curl\ - папка утилиты https://github.com/lexiforest/curl-impersonate v1.5.1х32 (форк curl v8.15)
\Files\fakes\ - папка с пейлоадами
\Files\dd\dd.exe - [утилита для копирования и конвертации файлов](http://www.chrysocome.net/downloads/dd-0.6beta3.zip), нужна для FakeGenerator
\Files\netcat\ncat.exe - [сетевая утилита](https://nmap.org/dist/ncat-portable-5.59BETA1.zip), нужна для FakeGenerator (может реагировать антивирус)
\Files\licenses\ - лицензии утилит	
\Files\DnsChecker.cmd - батник, проверяющий ответы dns-серверов из файла DNS.txt
\Files\DohChecker.cmd - батник, проверяющий ответы doh-серверов из файла DoH.txt
\Files\FakeSniFinder.cmd - батник, ищущий белый sni для asn
\Files\FakeGenerator.cmd - батник для генерации пейлоадов
\Files\AsnSni.csv - таблица соответствия asn/sni (на основе https://cheburcheck.ru/whitelist/domains.csv)	
\Files\IpCache.ini - файл с рабочими ip для доменов
\Files\DNS.txt - файл со списком dns-серверов
\Files\DoH.txt - файл со списком doh-серверов
\Files\SmartProxyByeDPI.json - файл с готовыми настройками расширения SmartProxy. В них уже задан и сам прокси и мн. популярные сайты
Как скачать видео через ByeDpi:
  1. Установить бесплатный менеджер закачек https://downloadmaster.com/ru/download/
  2. Открыть “Настройки” (кнопка на панели инструментов) → Настройки прокси → Добавить → Тип SOCKS5 Сервер 127.0.0.1 Порт 18083 → Нажать ОК
  3. Поставить 2 галки “Использовать HTTP прокси” и “Использовать HTTPS прокси”. В обоих пунктах выбрать прокси 127.0.0.1:18083 (SOCKS5) → Нажать ОК
  4. Скопировать адрес видео
  5. В Download Master нажать кнопку “Добавить” на панели инструментов (если адрес не подхватился автоматом)
  6. В окне “Добавить закачку” наверху переключиться на вкладку Видео (там их 2: Ссылка/Видео)
  7. Ниже под ссылкой на ваше видео (справа от Категории) можно выбрать качество видео
  8. Нажать кнопку “Начать закачку” в том же окне

Альтернативный вариант - в программе https://github.com/mhogomchungu/media-downloader задать прокси 127.0.0.1:18083

P.S. Полезные ссылки:

1 Like

Понадобилось пробиться сквозь рocтeлekoм из под Win7 / x86 (32 бит).

  1. Взял свежие x86 версии byedpi и libcurl-impersonate из которой извлёк файл ..\bin\curl.exe и переименовал его в curl-impersonate.exe
  2. После распаковки B-Checker.zip в папку с byedpi заменил в ней файл ..\byedpi\Files\curl\curl-impersonate.exe на файл полученный на предыдущем шаге.
    (спец. утилита VxKex для curl’a, в моём случае не пригодилась вовсе)

Всё остальное по инструкции - теперь твиттерграмы, труба и прочее в доступе. Автору благодарность!

P.S.

Для поддержки всех возможных методов, скрипты B-Checker неплохо было бы обновить под ключи свежей версии byedpi

Готово: B-CheckerV2.zip (1,7 МБ)

Что изменено:

Инструкция V2:
1) Скачать и распаковать архив со сборкой B-CheckerV2.zip (1,7 МБ)
2) Установить в браузере расширение для прокси SmartProxy
Firefox https://addons.mozilla.org/ru/firefox/addon/smartproxy/
Chrome https://chromewebstore.google.com/detail/smartproxy/jogcnplbkgkfdakgdenhlpcfhjioidoj?hl=ru
3) Импортировать готовые настройки для SmartProxy. В них уже задан и сам прокси (тип SOCKS, адрес 127.0.0.1, порт 18083) и мн. популярные сайты:
Кликнуть по иконке расширения SmartProxy → Настройки → Резервирование/восстановление → Восстановить из резервной копии → выбрать файл SmartProxyByeDPI.json из папки Files
В расширении есть 3 основных режима:
1.Напрямую (все сайты без прокси);
2.Умный прокси (прокси для сайтов из списка “Умный прокси” в настройках);
3.Всегда включен (все сайты через выбранный прокси)
:red_exclamation_mark: Как в SmartProxy добавить/исключить какой-либо домен на сайте:
Кликнуть по иконке расширения → Проксируемые элементы → Перезагрузить → Включить/Отключить

Что еще нужно настроить в браузере:
Если стоит антивирус/фаерволл/брандмауэр:
  1. для curl-impersonate.exe: разрешить все исходящие и входящие запросы запросы TCP и UDP
  2. для браузера: разрешить все исходящие запросы по TCP и UDP на адрес 127.0.0.1 и порт 18083
  3. для ciadpi.exe: разрешить все исходящие и входящие запросы TCP и UDP

4) Запустить ByeDpi_Console.cmd либо ByeDpi_Service.cmd и проверить в браузере нужные сайты. Если все ок, дальше можно не читать)
5) Запустить B-Checker.cmd от имени Администратора
6) Выбрать чеклист (список сайтов)
7) Если скрипт нашел конфигурацию - проверить сайт в браузере (ни в коем случае не закрывать консольное окно с byedpi!).
8) Конфигурация не устроила - нажать цифру 2 и Enter. Скрипт продолжит поиск.
9) Все открылось - просто нажать Enter. Скрипт сохранит конфигурацию в ByeDpi_Console.cmd/ByeDpi_Service.cmd и завершит работу. Затем запустить cmd для консоли или службы - как удобнее.

P.S. Кто-нибудь в курсе, что с автором byedpi hufrea? На github давно не было активности, здесь тоже

можно ли как-то автоматизировать это для 16кб блокировки?
например, указать ссылку на файл который бы проверялся самим скриптом на полное скачивание

или хотя бы автоматически запускать браузер в приватном режиме start firefox --private-window https://example.com

Из батника - если только типо такого curl-impersonate.exe -K browsers\firefox144.txt --ca-native -x socks5://127.0.0.1:18083 -o nul -4s -m 3 --connect-to ::speedtest.selectel.ru https://ваш_домен_с16кб_блокировки/10MB -w %{size_download} Но мне даже не на чем сейчас это проверить, т.к. нет таких блокировок. Можете у себя посмотреть?

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

Так 16кб блоки это по айпи адресам, а точно нет? RU :: TCP 16-20 DPI Checker

да, срабатывает условие “если айпи принадлежит диапазону блокированного хостинга, то пропускать только разрешённые sni, а для всех других давать загрузиться до ~32 килобайт (наиболее часто 16) и потом блокировать текущее соединение” для каждого запроса


в итоге наваял такую конструкцию

@echo off
set SNI=--fake-sni тут_рабочий_sni --fake-tls-mod rand
set TTL=--ttl 6
set URL=https://ссылка_на_файл_размером_более_тридцати_пяти_килобайт
set CURL=путь_до_curl --socks5 localhost:1080 --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0" --max-time 3 %URL% -o NUL --progress-bar -r 0-35000

taskkill /im "winws.exe" /f >NUL 2>&1
taskkill /im "ciadpi.exe" /f >NUL 2>&1

for %%s in (
"тут построчно"
"и в кавычках"
"все стратегии с --fake с убранными параметрами --fake-sni %$fakeSni% и --fake-tls-mod rand,msize=1200"
) do (
echo TESTING %%~s %TTL% %SNI%
start /min %~dp0ciadpi.exe %%~s %TTL% %SNI%
timeout /t 1 >NUL 2>&1
%CURL% && echo !!!SUCCESS!!! %%~s %TTL% %SNI% && echo ciadpi.exe %%~s %TTL% %SNI% >> %~dp016kb.txt || echo FAILED
taskkill /im "ciadpi.exe" /f >NUL 2>&1
)

PAUSE

ни одной рабочей не нашлось

Не шарю за ciadpi, но вижу ттл, фейк с низким ттл? Писали давно уже что тспу это палят. Нужна страта без ттл или в самой системе снизить ттл до максимально низкого (чтоб для сайта было достаточно и разница между фейковым была не >10 или около того)

Мне такое пока что не встречалось. Zapret выдаёт стратегии с ttl. Byedpi на андроиде тоже работает с ttl.

На всякий случай запустил повторно убрав ttl, но результат одинаковый. Тут скорее всего проблема в byedpi для Windows.

Скорее всего, byedpi уже “feature complete”, т.к. без рута возможности сильно ограничены. Со своими задачами он пока справляется, даже 16 кб можно пробить (если очень сильно постараться).

Ну меня интересует развитие оригинала (версия под винду), а не форк для андроида (там лишь обертка, а методы все от оригинала). Но похоже вы правы про “feature complete”

последний коммит 2 дня назад. Я бы тоже не хотел поддерживать проект с таким комьюнити, если честно. Адекватных юзеров почти нет: одни дайте строку для ютуба

Оригинал всегда был под Linux. Именно поэтому часть флагов на windows и bsd не работает

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

Здесь комьюнити нормальное, так что не думаю, что дело в этом

Наконец-то и до меня дошли 16кб блокировки, получилось потестить вживую. И пробиться почти ко всем нужным сайтам с помощью byedpi
Новая версия - B-CheckerV3.zip (1,7 МБ)
Что изменено:

  • В чеклисте теперь можно указывать любые ссылки (и создавать свои чеклисты в папке CheckLists)
  • В B-Checker.ini добавлена опция $downloadSize=0. Если выставить $downloadSize>0, то проверяется, что хотя бы для 1 ссылки скачано > $downloadSize кб
  • В папку files добавлен FakeSniFinder.cmd для подбора $fakeSni (спасибо lowderplay)
  • Можно задавать свои фейки для quic в виде строки либо файла *.bin из папки files\fakes\
  • curl-impersonate обновлен https://github.com/lexiforest/curl-impersonate/releases/tag/v1.3.0
  • Список стратегий обновлен (ConfigGenerator.cmd), т.к. curl-impersonate теперь поддерживает udp (http3/quic) через прокси

Хотелось бы, чтобы не происходила очистка окна на каждой стратегии и в конце перебора когда выводится текст о том, что не нашлось ни одной рабочей стратегии.
А то непонятно, скачиваются ли частично 16(±16) килобайт или это я забыл добавить ciadpi.exe в исключения файрвола или это используемый sni триггерит полную блокировку CDN (чаще всего это домены разных банков которые не используют зарубежные CDN).

Подставлять бы ещё --range 0-NNNNN для curl чтобы не качались лишние (мега|кило)байты, где NNNNN это 1024 × $downloadSize так как --range принимает только байты.

У меня на Windows 10 эта 16кб блокировка обходится только с помощью zapret. Хотя на андроиде подключённом к тому же самому роутеру 16кб обходится простейшей стратегией --fake -5 --fake-sni.

Готово: B-CheckerV3.1.zip (1,7 МБ)

А на запрет какая стратегия помогает, если не секрет?

любая с ts
но надо включать в самой Windows таймштампы командой netsh interface tcp set global timestamps=enabled
при использовании подбора стратегии блокчеком из официального бандла это происходит автоматически, также там есть отдельный батник

до этого работали стратегии с badseq, но перед Новым Годом перестали вместе с multisplit-ным seqovl-ом