Zapret 2 GUI (Запрет: обход блокировки Дискорда и Ютуба)
Ютуб и дискорд не работает через запрет. Обход блокировок дискорда и ютуба доступен здесь. ВПН для YouTube и Discord'a.
Сегодня (в день конституции где прописаны правила на свободу распространения и чтения информации 12 декабря) мы представляем вам нашу самую мощную модель программу в мире — Zapret 20.0 (внутреннее название Zapret 2).
Крупнейшее обновление Zapret за всю историю проекта. Полный редизайн интерфейса, новая система стратегий на основе категорий и поддержка Lua-скриптов для гибкой обработки трафика.
Сегодня мы становимся на шаг ближе к автоматическому анализу трафика и смене стратегий в режиме live, полностью автоматизированного (в идеале) и незаметного для пользователя!
Надеемся что наш основной канал вы уже знаете, как нас поддержать тоже, а также где попросить помощи.
Напоминаем что Zapret не является однокнопочным решением (хотя мы всеми силами стараемся сделать его таковым).
Было замечено что РКН блокирует известные стратегии по их поведению и сигнатуре трафика которые они оставляют у ТСПУ. Единственное решение — сделать свою приватную стратегию и никогда её не показывать.
Zapret 2 позволяет писать свои стратегии (через командные строки, флаги и аргументы), добавлять быстро новые категории (вообще через GUI напрямую), а также даже писать свои собственные АЛГОРИТМЫ на языке lua работы для НОВЫХ стратегий (тех что ещё нет в программе)
Главное меню было полностью переработано — теперь это стиль Settings Windows 11 со вкладками и более удобным и интуитивно понятным интерфейсом.
Zapret 2
Ключевое архитектурное отличие zapret2 от предшественника заключается в переносе логики атак из C-кода в Lua-скрипты.
В zapret1 все стратегии обхода DPI были жёстко вшиты в исходный код на C, что означало необходимость перекомпиляции программы при любом изменении логики работы.
В zapret2 ядро на C отвечает только за низкоуровневую работу с пакетами — перехват, разбор протоколов, отправку — а вся логика принятия решений вынесена в Lua-библиотеки, которые можно редактировать текстовым редактором без каких-либо знаний программирования на C.
Такой подход открывает возможность создания собственных стратегий обхода без глубокого погружения в системное программирование. Пользователь может написать Lua-функцию с произвольной логикой: проверять имя хоста, тип протокола, направление пакета и на основе этого выбирать разные методы атаки. Например, можно сделать так, чтобы для YouTube применялся один метод обхода, для Telegram — другой, а для остальных сайтов — третий. В zapret1 подобная кастомизация требовала бы модификации исходников и пересборки бинарника.
Одним из главных нововведений zapret2 стала система оркестраторов — специальных Lua-функций, управляющих выполнением других стратегий. Наиболее полезный из них — circular — реализует автоматический перебор стратегий.
Если текущая стратегия приводит к сбоям (детектируются ретрансмиты, RST-пакеты от DPI, отсутствие ответа), оркестратор автоматически переключается на следующую стратегию в списке. Это позволяет системе самостоятельно подбирать рабочий метод обхода для каждого конкретного хоста без ручного вмешательства пользователя. Гибкость Lua-подхода проявляется и в скорости экспериментов.
При исследовании новых методов обхода DPI или адаптации под изменившееся поведение блокировщика можно быстро менять параметры, комбинировать атаки, добавлять условия — и сразу проверять результат простым перезапуском программы.
В zapret1 каждая такая итерация требовала бы цикла «редактирование C-кода → компиляция → тестирование», что существенно замедляло процесс подбора рабочей конфигурации. Стоит отметить и расширенные возможности детектирования сбоев.
В zapret2 реализован standard_failure_detector с несколькими методами определения блокировки: по TCP-ретрансмитам, по RST-пакетам с характерными признаками DPI, по HTTP-редиректам на заглушки провайдера, по отсутствию UDP-ответов.
Эти детекторы работают совместно с автохостлистом и оркестраторами, формируя адаптивную систему, которая учится на своих ошибках и запоминает проблемные хосты.
Разумеется, у zapret2 есть и недостатки: порог входа чуть выше из-за необходимости понимать синтаксис Lua, а интерпретатор добавляет небольшой overhead по сравнению с чистым C-кодом.
Однако для большинства пользователей эти минусы несущественны на фоне получаемой гибкости. Zapret2 — это инструмент для тех, кто хочет тонко настраивать обход под свои условия, экспериментировать с новыми методами и иметь систему, которая адаптируется к изменениям в поведении DPI автоматически.
Раньше стратегии представляли из себя жесткий набор параметров — теперь всё изменится. Каждый может писать свою стратегию.
Сами lua файлы лежат в отдельной папке.
Пример стратегии подмены флага:
Но мы упростили и создали готовые стратегии (есть набор готовых функций в lua файлов которые можно быстро импортировать и использовать). Вот например использование стратегии мультисплит:
Стратегии лежат в отдельном файле tcp.json и пользователь может создать свои стратегии (подробнее ниже).
Мы также вынесли категории в отдельный файл (так называемые --filter). Их также можно добавлять через гуи или через текстовый json файл:
Чтобы снизить нагрузку на процессор программа пропускает все пакеты через WinDivert фильтр (который позволяет писать свои фильтры или выбирать их из ГУИ), после чего ТОЛЬКО необходимые пакеты проходят в сам Запрет 2 и модифицируются.
Двухуровневая фильтрация в zapret (Windows)
Уровень 1: WinDivert фильтр (--wf-*)
Работает в драйвере Windows на уровне ядра. Определяет, какие сетевые пакеты вообще попадут в winws2. Всё остальное драйвер игнорирует — программа их не видит.
--wf-l3=ipv4,ipv6 - какие версии IP обрабатывать
--wf-tcp-out=порт - исходящие TCP соединения на указанные порты
--wf-tcp-in=порт -входящие TCP соединения с указанных портов
--wf-udp-out=порт- исходящие UDP пакеты на указанные порты
--wf-udp-in=порт -входящие UDP пакеты с указанных портов
--wf-iface=номер- только указанный сетевой интерфейс
--wf-filter-lan=1- исключить локальные адреса (по умолчанию включено)
--wf-tcp-empty=1- обрабатывать пустые TCP пакеты
--wf-save=файл- сохранить итоговый фильтр в файл для отладки
Порты можно указывать через запятую (80,443) и диапазонами (1-1024). Можно инвертировать через ~ (~80 — всё кроме 80).
Уровень 2: Hostlist фильтр
Работает внутри winws2. Из пакетов, которые прошли WinDivert, программа извлекает имя домена (из SNI в TLS или заголовка Host в HTTP) и проверяет его по спискам.
--hostlist=файл- применять DPI-обход только к доменам из файла
--hostlist-domains=список- то же, но домены через запятую в командной строке
--hostlist-exclude=файл- не применять к доменам из файла
--hostlist-exclude-domains=список- то же, но домены через запятую
--hostlist-auto=файл- автоматически добавлять домены при обнаружении блокировки
Поддомены применяются автоматически — если в списке youtube.com, то www.youtube.com тоже попадёт.
Разница между уровнями
WinDivert фильтр видит только заголовки пакетов: IP-адреса, порты, протокол, направление. Работает очень быстро, почти не нагружает процессор.
Hostlist фильтр разбирает содержимое пакета, ищет имя домена. Требует больше ресурсов, но даёт точный контроль.
Порядок применения
- Пакет проходит через сетевой стек Windows
- WinDivert драйвер проверяет пакет по
--wf-*правилам - Если не подходит — пакет уходит дальше, winws2 его не видит
- Если подходит — пакет передаётся в winws2
- winws2 парсит пакет, извлекает домен
- Проверяет домен по
--hostlistи--hostlist-exclude - Если домен подходит — применяет DPI-атаку
- Если не подходит — пропускает пакет без изменений
Пример команды
winws2.exe --wf-tcp-out=443 --wf-udp-out=443 --wf-l3=ipv4,ipv6 --hostlist=blocked.txt --lua-desync=fake
- Драйвер перехватывает только исходящие TCP и UDP на порт 443
- Из них winws2 обрабатывает только домены из blocked.txt
- К подходящим пакетам применяется атака fake
Далее в дело вступает фильтр winws.
Фильтр --filter-l7 — фильтрация по L7 протоколу
Определяет, к каким протоколам прикладного уровня (L7) будет применяться текущий профиль десинхронизации. Программа анализирует содержимое пакета и определяет протокол по характерным сигнатурам.
Все значения представлены ниже:
Это третий уровень фильтрации, работает после WinDivert (--wf-*) и портовых фильтров (--filter-tcp, --filter-udp).
- WinDivert пропустил пакет в программу
- Пакет прошёл фильтр по портам
- Программа определила L7 протокол по содержимому пакета
- Проверка
--filter-l7— протокол в списке? - Если да — переход к проверке hostlist и применению атаки
Как определяется протокол
Программа проверяет начало payload пакета на характерные байты:
- HTTP — начинается с методов GET, POST, HEAD, PUT и т.д.
- TLS — байт 0x16 (handshake), версия протокола
- QUIC — специфичный формат Initial пакета
- WireGuard — magic bytes handshake initiation
- DHT — bencode формат BitTorrent
- STUN — magic cookie 0x2112A442
Если пакет не соответствует ни одной сигнатуре — протокол unknown.
Зачем нужен этот фильтр
На одном порту могут работать разные протоколы. Например, порт 443:
Фильтр --filter-l7 позволяет применять разные стратегии атаки к разным протоколам на одном порту, создавая отдельные профили для каждого.
Стратегии
Основное меню стратегий переботано, теперь стратегии применяются автоматически (кнопки применить нет) — а их применение сопровождается красивой анимацией синего кружка:
Теперь Вы можете создавать свои файлы или HEX значения не выходя из гуи, это позволит создавать свои собственные стратегии.
Пока что поддержки .bin на лету нет, но в будущем эта опция появится.
Редактор стратегия позволяет быстро создавать новые стратегии (используя аргументы командой строки).
Дополнительно мы заменили Прямой запуск и Bat запуск на Запрет 2 и Запрет 1. Переключать их можно прямо в GUI.
Также добавлена новая опция которая позволяет задавать лимит на обработку пакетов (например чтобы снизить пинг).
Отдельно можно указывать какой вообще тип трафика может обрабатывать Zapret 2 (как и ранее но более удобно):
В списке стратегий можно указывать рабочие и нерабочие стратегии (цвет их покрасится в зелёный и красный соответственно).
Можно добавить свою категорию:
Добавление своих сайтов или исключеняи стали проще — теперь это полноценный текстовый редактор который автоматически убирает лишние символы а также перезагружает Запрет 2. Больше лезть внутрь файлов не нужно:
Автозапуск стал более надежным и всё также предлагает 3 разных варианта:
ДНС теперь применяется в несколько раз быстрее:
Старый тест соединения переименован в диагностику и пока не дописан до конца (в будущем будет удалён и заменён на секретную строящуюся вкладку):
Управление hosts теперь применяется мгновенно как только Вы выбрали какой-либо сайт (кнопки применить также нет):
Темы переработаны и добавлены новые премиум возможности (например новогоднее оформление):
Теперь у программы 3 лога (обычный, с ошибками и внутренний лог программы winws2.exe — ядра программы).
Программа теперь умеет проверять обновления через телеграм что повысит надежность и снизит риск ддос серверов (а также имеет красивую анимацию):