# Audion DPI Manager — руководство пользователя

**Содержание**

- [Запуск](#запуск)
- [Как устроено окно](#как-устроено-окно)
- [Первый запуск](#первый-запуск)
- [ZAPRET](#zapret)
- [CONFIGS](#configs)
- [TUNE](#tune)
- [DNS](#dns)
- [LISTS](#lists)
- [ЖУРНАЛ](#журнал)
- [DIAGNOSTICS](#diagnostics)
- [ZAPRET 2](#zapret-2)
- [BYEDPI](#byedpi)
- [Командная строка](#командная-строка)
- [Что программа меняет на машине](#что-программа-меняет-на-машине)
- [Где что лежит](#где-что-лежит)
- [Лицензия и товарный знак](#лицензия-и-товарный-знак)
- [Если что-то не так](#если-что-то-не-так)

Audion DPI Manager — одно окно для программ, которые обходят блокировки трафика. Главная из них — **Zapret** (пакет [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube)). Рядом — **zapret2** ([bol-van](https://github.com/bol-van/zapret2)) и **ByeDPI** ([romanvht/ByeDPIManager](https://github.com/romanvht/ByeDPIManager)).

Окно работает с теми же файлами, службами и записями реестра, что и bat-файлы Flowseal. Меню `service.bat` и это окно можно использовать вперемешку: они всегда согласны друг с другом.

## Запуск

Запускайте **Start.exe**. Windows спросит разрешение (UAC): без прав администратора нельзя ни загрузить драйвер WinDivert, ни поставить службу, ни изменить DNS и файл hosts. Отказались — ничего не запустилось и ничего не изменилось. Запрос появляется при любом запуске: и через Start.exe, и если открыть `App\AudionDpiManager.exe` напрямую. Если программа всё же оказалась без прав (окно запущено вне обычного пути и запрос был невозможен), об этом скажет строка состояния, и обход, служба и DNS работать не будут.

Язык берётся из системы при первом запуске (русский в русской Windows, в остальных английский); после нажатия **RU | EN** выбор запоминается. Кнопки **RU | EN** справа вверху переключают язык, кнопки с луной и солнцем — тему, **a | A | A+** — размер шрифта.

## Как устроено окно

**Верхняя строка** — одна строка из трёх тёмных кусков: слева название программы и версия, посередине переключатели DPI-инструментов, справа язык, тема, шрифт и значок трея. Высота окна — самое дорогое, что есть у страниц, поэтому раньше две строки (заголовок и полоса переключателей) теперь одна.

**Трей.** Пока программа работает, её значок стоит в трее Windows. Значок со стрелкой вниз в правом конце верхней строки прячет окно в трей: программа и обход работают дальше. Окно возвращается щелчком по значку в трее. Меню значка (правая кнопка; у каждой строки своя иконка, выбранный инструмент отмечен мандариновой точкой): **Показать окно**, **Запустить** и **Остановить** — для инструмента, выбранного вверху, переключатели **ZAPRET**, **ZAPRET 2**, **BYEDPI** и **Выход**. Крестик окна по-прежнему закрывает программу. Второй запуск программы из той же папки не открывает вторую копию, а показывает окно уже работающей.

Три больших переключателя посередине — ZAPRET, ZAPRET 2, BYEDPI. Это не настройки, а полное переключение DPI-инструмента под окном: у каждого свои файлы, своё подключение и своё значение кнопок UPDATE и START внизу. Цвет линии под заголовком показывает, какой выбран (Zapret — голубой, zapret2 — янтарный, ByeDPI — зелёный). Индикация — на самих кнопках: под названием точка и версия («что установлено»: зелёная — версия последняя, янтарная — не установлено или на GitHub вышла новая, «1.10.3 → 1.10.4», серая — GitHub не ответил), а зелёный треугольник рядом с названием значит «работает сейчас». Работать могут все три сразу, но два обхода перехвата (Zapret и zapret2) мешают друг другу — программа не даст запустить второй.

**Нижняя панель** — постоянные кнопки. Слева инструменты: CONFIGS, TUNE, DNS, LISTS, ЖУРНАЛ, DIAGNOSTICS, ABOUT. Нажали — инструмент открылся на месте страницы приложения; нажали ещё раз (или Esc) — вернулись к приложению. Справа **UPDATE | START** действуют на приложение, выбранное вверху. Кнопка, которой нечего делать, серая: UPDATE серая, когда обновлять нечего, START серая, когда приложение не установлено. Когда приложение работает, START превращается в STOP.

**Строка состояния** над кнопками — последнее сообщение программы (14 секунд) и, пока идёт долгая операция, её название, полоса хода и кнопка СТОП. Рядом JOURNAL (Ctrl+J) и F1 DOCS.

**Журнал** записывает всё, что делает программа, и вывод winws.exe. За каждый день свой файл в `._runtime\logs`.

## Первый запуск

1. Выберите вверху **ZAPRET**. Если пакета нет, серая надпись «не установлен» — нажмите **UPDATE**: программа скачает последний релиз Flowseal и поставит его в папку `zapret-discord-youtube` рядом с собой.
2. В карточке **СТРАТЕГИЯ** выберите стратегию. Не знаете какую — `general (FAKE TLS AUTO)` обычно хорошее начало.
3. Нажмите **START**. Обход запущен: строка «Обход» стала зелёной.
4. Не работает? Откройте **TUNE**, режим **ГОТОВЫЕ**, нажмите **НАЧАТЬ**: программа проверит все стратегии и покажет, какие открывают больше сайтов.
5. Работающую стратегию можно поставить службой Windows кнопкой **СЛУЖБОЙ** — тогда обход стартует вместе с системой.

Полезно ещё: включите безопасный DNS в разделе **DNS** — без него провайдер подменяет адреса заблокированных сайтов, и никакой обход не поможет.

## ZAPRET

**СОСТОЯНИЕ.** Папка Zapret (можно указать другую), версия на диске и на GitHub, что запущено и есть ли служба. **ОСТАНОВИТЬ** гасит winws.exe (и службу, если она работает); **СНЯТЬ СЛУЖБУ** убирает службу и драйвер WinDivert совсем. Под кнопкой установки стоит ряд кнопок, которые всё это снимают: те же **ОСТАНОВИТЬ** и **СНЯТЬ СЛУЖБУ**, **ОСТАНОВИТЬ СЛУЖБУ** (служба остаётся установленной), **ОСТАНОВИТЬ ДРАЙВЕР**, **УДАЛИТЬ ДРАЙВЕР** и **УДАЛИТЬ ZAPRET**. Драйвер WinDivert общий для Zapret и zapret2: обходы, которые его держат (winws.exe, winws2.exe, служба), останавливаются первыми, а при следующем запуске драйвер загружается снова (WinDivert регистрируется на время работы, поэтому остановленный драйвер обычно исчезает сам). **УДАЛИТЬ ZAPRET** останавливает обход и службу, снимает службу и драйвер и стирает папку `Tools\zapret-discord-youtube` вместе с вашими списками `*-user.txt` — после вопроса; папка вне программы не стирается (снимаются только служба и драйвер).

Обновление (UPDATE) устроено как в старом Audion Zapret Updater: «папка есть — обновить, нет — поставить». Архив скачивается, пока Zapret ещё работает (без драйвера GitHub может не открыться); потом снимаются служба, winws.exe и драйвер; ваши списки `lists\*-user.txt`, настройка игрового фильтра, режим IPSet и флажок проверки обновлений переносятся в новую версию; старое стирается, новое ложится на место. Если драйвер не выгружается — замена готовится на следующую загрузку Windows. Имена в архиве проверяются до распаковки: путь наружу («..», диск, сетевой путь), имя устройства или поток NTFS отвергают весь архив.

**СТРАТЕГИЯ.** Кнопки-переключатели по числу файлов `general*.bat`. Под ними: **ЗАПУСТИТЬ** (winws.exe со всеми списками, без окна консоли), **СЛУЖБОЙ** (автозапуск), **В ПОЛЕ КОНФИГУРАЦИИ** (параметры уходят в раздел CONFIGS), **КОМАНДА** (полная командная строка, можно скопировать).

**ФИЛЬТРЫ.** То же, что пункты `service.bat`: Game Filter (ВЫКЛ, TCP + UDP, TCP, UDP и порты — в версиях с 1.10), IPSet (НЕТ, СПИСОК, ВСЕ), проверка обновлений в bat-файлах. Изменения вступают в силу после перезапуска обхода — рядом появляется кнопка **ПЕРЕЗАПУСТИТЬ ОБХОД**.

## CONFIGS

**ПОЛЕ КОНФИГУРАЦИИ.** Параметры winws.exe текстом, профиль (всё до `--new`) на своей строке. Переменные `%BIN%`, `%LISTS%`, `%GameFilterTCP%`, `%GameFilterUDP%` подставляются при запуске: конфигурация работает из любой папки и следует за игровым фильтром. Кнопки: **ЗАПУСТИТЬ**, **СЛУЖБОЙ**, **СОХРАНИТЬ В КЭШ**, **ПРОВЕРИТЬ** (покажет командную строку и недостающие файлы, ничего не запуская), **НОВАЯ**. Ниже — кнопки готовых стратегий: нажали — параметры легли в поле. Чип **DNS перед запуском** позволяет привязать к конфигурации режим DNS; он применяется перед запуском.

**КЭШ КОНФИГУРАЦИЙ.** До 200 записей. Сюда попадает всё, что вы запускали, сохраняли или проверяли в TUNE. Когда место кончилось, уходит запись, которой не пользовались дольше всех. **Звёздочка закрепляет запись — закреплённая не уходит никогда.** Если закреплены все 200, новая не поместится: программа скажет об этом, и нужно открепить или удалить одну. Крестик удаляет запись (закреплённую — после вопроса). **ОЧИСТИТЬ НЕЗАКРЕПЛЁННЫЕ** убирает всё, кроме закреплённых. Поиск ищет по названию, стратегии, параметрам. Щелчок по строке кладёт её в поле, ▶ запускает сразу.

Кэш хранится в `config\history\configs.json`.

**Размер.** Поле конфигурации растягивается по высоте окна: то, что вокруг него (название, DNS, кнопки, стратегии), занимает своё место, а всё оставшееся отдаётся полю. Окно открывается размером 1280 × 860, при котором все кнопки раздела на виду, а на меньшем экране уменьшается под рабочую область. Окно можно тянуть; если оно совсем низкое, раздел прокручивается, а не обрезает кнопки.

## TUNE

Подбор параметров: программа сама пробует варианты и показывает, какой открывает больше сайтов из `utils\targets.txt` (Discord, YouTube, Google и другие). Перед подбором она считает, сколько сайтов открывается вообще без обхода, — чтобы результат читался как «из заблокированных открылось столько-то».

Режимы (**Что менять**):

- **ГОТОВЫЕ** — все стратегии пакета по очереди. Самый простой способ найти рабочую.
- **ПОВТОРЫ** — меняет `--dpi-desync-repeats` у выбранной основы.
- **ОБМАН** — меняет `--dpi-desync-fooling` (ts, md5sig, badseq, badsum). Работает, только если параметр уже есть в стратегии.
- **РАЗРЕЗ** — меняет `--dpi-desync-split-pos` (1, 2, midsld, sniext+1…).
- **ВСЁ** — проходит три предыдущих по очереди; лучший вариант каждого шага становится основой следующего.

**Основа** — стратегия из ZAPRET или текст из поля CONFIGS. **Проверка**: БЫСТРО (по одному сайту из каждой группы, до восьми, без пинга) или ПОЛНО (все сайты и пинг). Число вариантов: 8, 16, 24 или 48.

Пока идёт подбор, обход запускается и останавливается для каждого варианта — интернет может на секунды пропадать. Работавший обход после подбора включится снова. **СТОП** останавливает после текущего варианта.

Результаты сортируются: больше открытых сайтов, при равенстве — меньше время ответа. У каждой строки: **В ПОЛЕ**, **ЗАПУСТИТЬ**, **СЛУЖБОЙ**, звёздочка. Все проверенные варианты кладутся в кэш с оценкой (в режиме ГОТОВЫЕ — пять лучших, а не все двадцать).

Честно про предел: проверка идёт по HTTPS-сайтам. Голос Discord и игры по UDP ею не проверяются.

## DNS

Обход бессилен, пока провайдер подменяет ответы DNS. Режимы: **GOOGLE**, **CLOUDFLARE**, **QUAD9**, **ADGUARD** (серверы AdGuard «по умолчанию», `94.140.14.14` и `94.140.15.15`: заодно блокируют рекламу, трекеры и фишинговые сайты; серверы без фильтров, `94.140.14.140` и `94.140.14.141`, можно вписать в **СВОЙ**) и **СВОЙ**. **ПРИМЕНИТЬ** ставит серверы (IPv4 и IPv6) на всех подключённых адаптерах с выходом в интернет и включает шифрование запросов (DoH), если Windows это умеет (Windows 11). Перед первым изменением состояние адаптеров сохраняется; **ВЕРНУТЬ КАК БЫЛО** возвращает его точно: заданные вручную серверы вернутся (IPv4 и IPv6 каждое отдельно), автоматические снова станут автоматическими; записи DoH, которых не было, будут убраны, а прежние получат свои значения. Адаптер находится по его GUID, а не по номеру. Адаптер, появившийся между двумя изменениями, тоже запоминается (со своим состоянием на тот момент). Если что-то не вернулось, программа говорит об этом и оставляет это в резервной копии: кнопку можно нажать ещё раз. Ошибка записи — это ошибка: «DNS изменён» появляется, только когда адаптер действительно показывает новые серверы; если не включилось шифрование DoH, сказано и об этом.

**Свой DNS.** В поле «Свой DNS» — одна строка: IP-адреса серверов (IPv4 и IPv6) и, если нужно, адрес DoH (`https://…`), через пробел или запятую. Например: `1.1.1.1, 1.0.0.1, https://cloudflare-dns.com/dns-query`. Как это понимается:

- Адрес DoH относится ко всем указанным серверам — указывайте серверы одного провайдера.
- Один адрес DoH без серверов тоже годится: серверы программа найдёт по его имени (или возьмёт адрес, записанный в самом адресе DoH).
- Windows умеет только адреса серверов и DoH; `tls://`, `quic://` и `sdns://` программа назовёт неподходящими и не примет.
- Поле сохраняется само, когда вы из него вышли. Начали печатать — включается режим **СВОЙ**.
- **ПРОВЕРИТЬ** задаёт каждому указанному серверу и адресу DoH настоящий вопрос с этого компьютера и показывает, отвечают ли они и за сколько. Ничего не меняет, права администратора не нужны. Молчащий IPv6-сервер не считается поломкой: у многих сетей IPv6 нет.

Режим **СВОЙ** есть и в разделе CONFIGS среди режимов «DNS перед запуском»: запись в кэше хранит свои серверы целиком и не зависит от того, что в поле сегодня.

Если у вас роутер Keenetic, включите в нём «Транзит запросов».

## LISTS

**СПИСКИ ИЗ GITHUB.** Zapret обходит блокировку только для сайтов и адресов из своих списков. Здесь подключаются готовые большие списки для России; их публикуют на GitHub и обновляют каждый день или чаще, а программа скачивает их прямо оттуда (только с `raw.githubusercontent.com`):

| Набор | Что это | Записей |
| --- | --- | --- |
| runetfreedom · ru-blocked-community | адреса из community.antifilter.download: заблокированные, о которых сообщили пользователи | около 900 |
| runetfreedom · ru-blocked | все заблокированные адреса и подсети (antifilter.download) | около 88 тысяч |
| runetfreedom · re-filter (IP) | адреса проекта re:filter | около 25 тысяч |
| runetfreedom · Telegram, Twitter, Facebook | подсети трёх сервисов | около 150 |
| Discord (подсети) | голосовые серверы Discord: itdoginfo/allow-domains и re:filter | около 2 300 |
| itdoginfo · Russia inside (домены) | домены, которые нужно обходить внутри России | около 1 200 |
| Re:filter · community (домены) | популярные и заблокированные домены | около 700 |
| Re:filter · domains_all (домены) | полный список доменов re:filter | около 80 тысяч |

Списки runetfreedom/russia-blocked-geoip обновляются раз в 6 часов и делаются из antifilter.download и re:filter (GPL-3.0). У двух больших наборов (ru-blocked и domains_all) в подсказке есть предупреждение: они делают списки заметно длиннее, а winws читает их при каждом запуске.

Как это работает: чип **ВКЛ** у набора — весь жест. Включённый набор записывается в списки DPI-инструментов, выбранных чипами **Записывать в:** (ZAPRET, ZAPRET 2, BYEDPI; по умолчанию включён ZAPRET). У Zapret он ложится **блоком между двумя строками-метками** этой программы (`# >>> Audion DPI Manager: имя | записей | дата` … `# <<< Audion DPI Manager: имя`): домены идут в `list-general-user.txt`, адреса — в настоящий список IPSet (`ipset-all.txt`, а пока режим IPSet НЕТ или ВСЕ — в его копию `ipset-all.txt.backup`, где список ждёт). Ваши собственные строки рядом не трогаются никогда, а блоки убираются по меткам: выключили набор — файл вернулся байт в байт таким, каким был. Как это устроено у двух других DPI-инструментов — ниже, в разделе «Списки для zapret2 и ByeDPI».

- **Адреса работают только в режиме IPSet СПИСОК.** Свежий пакет Flowseal стоит в режиме НЕТ. Когда вы включаете набор с адресами, а режим другой, программа спросит, переключить ли его: режим — ваш, без вопроса она его не меняет. Домены из наборов работают в любом режиме.
- Кнопка **↻** у набора скачивает его заново, значок рядом открывает репозиторий на GitHub. **ОБНОВИТЬ ВКЛЮЧЁННЫЕ** — все включённые сразу. Чип **РАЗ В СУТКИ**: пока окно открыто, включённые наборы, которым больше 23 часов, скачиваются сами (через 25 секунд после запуска, потом проверка раз в час). Скачанное проверяется построчно (адреса, подсети, домены), мусор отбрасывается; пустой или сломанный ответ не заменяет старый список.
- После обновления или переустановки пакета Zapret включённые наборы записываются в него заново. После **ОБНОВИТЬ СПИСОК IPSET** тоже.
- **УБРАТЬ ИЗ DPI-ИНСТРУМЕНТОВ** убирает из списков всех DPI-инструментов всё, что записала программа, и выключает наборы; сами наборы остаются и включаются снова.
- Редактор **СВОИ ДОМЕНЫ** ниже блоков не показывает (в них тысячи строк) и при сохранении их сохраняет.
- Под чипами DPI-инструментов для каждого стоит строка «что лежит в его списках сейчас»: числа читаются из самих файлов, а не берутся из того, что программа собиралась записать.

**Списки для zapret2 и ByeDPI.** Тот же набор можно записать и в два других DPI-инструмента — включите их чипы в «Записывать в:». DPI-инструмент должен быть установлен; если нет, программа так и скажет и ничего для него не придумает (запишет после установки). У каждого DPI-инструмента списки читаются по-своему, поэтому устроено разное:

| DPI-инструмент | Куда пишется | Как используется |
| --- | --- | --- |
| ZAPRET | `list-general-user.txt` и список IPSet пакета, блоками по меткам | как и раньше; адреса — только в режиме IPSet СПИСОК |
| ZAPRET 2 | домены — `Tools\zapret2\lists\list-user.txt`, адреса — `Tools\zapret2\lists\ipset-user.txt`, блоками по меткам (у zapret2 в списках можно писать комментарии `#`) | домены работают сразу: профили образца отбирают трафик по `list-user.txt`. Для адресов нужны профили с `--ipset`: кнопка **ПРОФИЛИ ДЛЯ АДРЕСОВ** в разделе ZAPRET 2. winws2 перечитывает изменённый список сам |
| BYEDPI | `Tools\ByeDPI\lists\hosts.txt` и `ipset.txt`, целиком из записей (у ciadpi нет комментариев, метки в его файлах стали бы «доменами») | только когда в разделе BYEDPI включён режим «по спискам» |

Имена, которые ciadpi не понимает (например, с подчёркиванием), в файл ByeDPI не попадают: их число программа называет. Пустой файл `ipset-user.txt` у zapret2 означал бы «любой адрес», поэтому в нём всегда остаётся одна безопасная строка `203.0.113.113/32` — как у режима НЕТ в Flowseal.

**СВОИ СПИСКИ · ИМПОРТ И ЭКСПОРТ.**

- **ИМПОРТ ФАЙЛА…** берёт файл `.txt`, `.lst`, `.csv` (по записи в строке, `#` — комментарий) или архив, сохранённый кнопкой ЭКСПОРТ ВСЕГО. Что внутри — адреса или домены, программа определяет сама. Строки, которые не адрес и не домен, отбрасываются и подсчитываются. Файл с тем же именем заменяет прежний список.
- **ВСТАВИТЬ ИЗ БУФЕРА** делает то же с текстом из буфера обмена (список «Из буфера»).
- **ЭКСПОРТ IP…** сохраняет в текстовый файл все адреса и подсети включённых наборов, по одному в строке, — чтобы взять их в другую программу.
- **ЭКСПОРТ ВСЕГО…** сохраняет архив `.zip`: все наборы с содержимым и три ваших списка из пакета Zapret (без блоков наборов). Тот же архив возвращается кнопкой ИМПОРТ ФАЙЛА, на другом компьютере тоже: наборы заменяются одноимённые, ваши списки пакета сливаются построчно с теми, что там есть.

Записи проверяются так: адрес — четыре числа через точку или IPv6, с длиной маски или без; отбрасываются `/0`, `0.x.x.x`, `127.x.x.x`, 224 и выше (от них в ipset один вред). Домен — имя с точкой; регистр, `*.` и точки по краям убираются. Наборы хранятся в `config\history\lists\`.

**Свои списки Flowseal:** **СВОИ ДОМЕНЫ** (`list-general-user.txt`), **ИСКЛЮЧЕНИЯ**, **IP-ИСКЛЮЧЕНИЯ** — редактируются; остальные лежат в пакете и открываются только для чтения. Просмотр никогда не создаёт файлов: несуществующий свой список показывает текст, который создал бы `service.bat`.

**IPSET.** **ОБНОВИТЬ СПИСОК IPSET** скачивает свежий `ipset-all.txt` (наборы с адресами после этого записываются в него заново).

**HOSTS.** Файл hosts чинит веб-версию Telegram и голосовой чат Discord. **ПРОВЕРИТЬ** сравнивает его с эталоном Flowseal; **ЗАПИСАТЬ В HOSTS** дописывает блок между двумя строками-метками этой программы (перед этим делается копия в `._runtime`); **УБРАТЬ БЛОК** убирает именно наш блок по меткам, остальное не трогается.

## ЖУРНАЛ

Живой журнал DPI-инструментов: строки, которые печатают `winws.exe`, `winws2.exe` и `ciadpi.exe`, когда программа их запускает, и события их запуска и остановки, с самого запуска программы. Это журнал нижней панели (Ctrl+J), разобранный по DPI-инструментам: чипы ВСЕ, ZAPRET, ZAPRET 2, BYEDPI. **MANAGER** показывает журнал, который ByeDPI Manager ведёт в своём файле (`Tools\ByeDPI\logs\bdmanager_дата.log`), по мере роста. СЛЕДИТЬ прокручивает к новым строкам, КОПИРОВАТЬ кладёт показанное в буфер обмена, ОЧИСТИТЬ ЭКРАН опустошает экран (файлы остаются), ФАЙЛ ЖУРНАЛА открывает файл за день в Блокноте. Вывод службы и программ, запущенных не из этого окна, прочитать нельзя: Windows его не выдаёт.

## DIAGNOSTICS

Пункт Run Diagnostics из `service.bat` таблицей: служба Base Filtering Engine, системный прокси, метки времени TCP, Adguard, Killer, Intel Connectivity, Check Point, SmartByte, файлы обхода (антивирус часто убирает драйвер), VPN, безопасный DNS, hosts, путь с кириллицей или в OneDrive, лишний драйвер WinDivert, службы других обходов. Зелёный — в порядке, голубой — совет, янтарный — замечание, оранжевый — проблема. Где программа умеет исправить — рядом кнопка. **ОЧИСТИТЬ КЭШ DISCORD** закрывает Discord и удаляет его кэш (входить заново не придётся).

Просмотр ничего не меняет. Единственное исключение то же, что у `service.bat`: метки времени TCP программа включает сама при запуске обхода.

## ZAPRET 2

Второе поколение DPI-инструмента от bol-van: стратегии — программы на языке Lua, winws2.exe лишь перехватывает трафик. **UPDATE** (или **УСТАНОВИТЬ** в разделе) скачивает релиз и берёт из него для Windows только нужное: `winws2.exe`, драйвер WinDivert, `lua\`, `files\fake\`, образцы фильтров. Всё лежит в `Tools\zapret2`. Обновление проверяет архив и распаковывает его рядом, затем убирает старое в сторону и кладёт новое; если файл занят, прежняя версия возвращается целиком. Рядом с кнопкой установки стоят **ОТКЛЮЧИТЬ**, **ОСТАНОВИТЬ ДРАЙВЕР**, **УДАЛИТЬ ДРАЙВЕР** (драйвер WinDivert общий с Zapret) и **УДАЛИТЬ ZAPRET 2**: папка `Tools\zapret2` стирается вместе со списками, пресет в `config\zapret2` остаётся.

Готовых стратегий для Windows в релизе нет. Здесь один **ПРЕСЕТ** — пример «http, https, quic» из документации zapret2 — в поле, которое вы правите; он работает по списку доменов **ДОМЕНЫ** (изначально YouTube и Discord). Наборы с GitHub (раздел LISTS, чип ZAPRET 2) дописываются в этот файл блоками: здесь вы видите и правите только свои строки.

Чип **ПРОФИЛИ ДЛЯ АДРЕСОВ** добавляет к каждому профилю пресета, который отбирает трафик по `list-user.txt`, такой же профиль по `lists\ipset-user.txt` — туда LISTS кладёт адреса наборов. Копии стоят после оригиналов: имя из списка доменов сильнее, а адрес ловит то, у чего имени нет (QUIC, звонки). Копируется только профильная часть (`--filter-…`, `--lua-desync`…), общие параметры (`--lua-init`, `--blob`, `--wf-…`) остаются в одном экземпляре. Пресет сохраняется сразу; выключили чип — копии убрались, пресет вернулся байт в байт. **ПРОВЕРИТЬ** покажет командную строку и недостающие файлы. `%Z2%` в тексте — папка `Tools\zapret2`. **START** запускает winws2.exe с пресетом из поля (даже не сохранённым; сохраняется при запуске). Подбор стратегии для zapret2 — вручную: blockcheck2 в релизе для Windows не поставляется.

## BYEDPI

**UPDATE** ставит пакет ByeDPI Manager «All in One» в `Tools\ByeDPI`: окно управления, `ciadpi.exe`, ProxiFyre и установщики зависимостей. Настройки Manager (`config`) и списки проверки (`proxytest`) при обновлении не затрагиваются. Архив сначала проверяется и распаковывается рядом; затем файлы заменяются, а если какой-то занят другой программой, всё возвращается как было и версия остаётся прежней. Рядом стоят **ОТКЛЮЧИТЬ** и **УДАЛИТЬ BYEDPI**: подключение снимается, системный прокси возвращается, окно Manager и ProxiFyre из этой папки закрываются, папка `Tools\ByeDPI` стирается. Драйвера у ByeDPI нет (это прокси); Windows Packet Filter из папки `redist`, если вы ставили его для ProxiFyre, остаётся в Windows — его снимают в «Приложениях».

**ОТКРЫТЬ MANAGER** запускает его окно (подбор стратегии, режим ProxiFyre для отдельных программ). **ЗАВИСИМОСТИ** открывает папку `redist` — Windows Packet Filter и Visual C++ 2022 нужны только для ProxiFyre.

**ПОДКЛЮЧЕНИЕ** — простое: `ciadpi.exe` на локальном порту плюс системный прокси Windows (`socks5://127.0.0.1:порт`). **ВЗЯТЬ ИЗ MANAGER** берёт параметры и порт из его настроек. При отключении прежний прокси возвращается, если за это время его не изменила другая программа. Стратегия по умолчанию — `-d1 -d3+s -s6+s -d9+s -s12+s -d15+s -s20+s -d25+s -s30+s -d35+s -r1+s -S -a1 -As -d1 -d3+s -s6+s -d9+s -s12+s -d15+s -s20+s -d25+s -s30+s -d35+s -S -a1`: две группы разрезов и disorder по SNI, вторая (после `-As`) работает, когда ломается TLS. `-S` (md5sig) есть только в Linux, поэтому программа убирает его из командной строки — так делает и ByeDPI Manager в Windows. Файл настроек, где ещё стоит умолчание прежних версий, получает новое; стратегия, которую вы написали сами, не трогается.

**ПО СПИСКАМ** — ВЫКЛ, ПО ДОМЕНАМ, ПО АДРЕСАМ. ByeDPI умеет ограничить стратегию списком: `--hosts файл` (только эти домены, поддомены учитываются) или `--ipset файл` (только эти адреса); остальной трафик идёт как есть. Списки — наборы из LISTS (чип BYEDPI): файлы `Tools\ByeDPI\lists\hosts.txt` и `ipset.txt`. Как программа вставляет ограничение: ciadpi делит параметры на группы по каждому `--auto` (`-A`), и условия проверяются в каждой группе отдельно, поэтому `--hosts`/`--ipset` ставится в начало **каждой** группы — иначе группа без ограничения продолжала бы работать для всех сайтов. Стратегия, у которой уже есть свой `--hosts`/`--ipset`, остаётся как вы её написали. Домены и адреса вместе не совмещаются: условия в одной группе складываются по «И», так что режим выбирается один. Если для режима нет ни одной записи, подключение не запускается и говорит почему (ciadpi с пустым списком не применил бы ничего). **КОМАНДА** показывает итоговую командную строку и находит помехи, ничего не запуская.

## Командная строка

Две команды работают без окна, для сборщика релиза (права администратора им не нужны, запроса UAC нет; код завершения 0 — всё, что просили, сделано, 1 — что-то не вышло, 2 — команда не понята):

- `App\AudionDpiManager.exe --install-apps [all|zapret|zapret2|byedpi] [--force]` ставит то, что ставят кнопки UPDATE: пакет Flowseal в `Tools\zapret-discord-youtube`, zapret2 в `Tools\zapret2`, ByeDPI Manager в `Tools\ByeDPI`. Без `--force` — только то, чего нет или что вышло новее.
- `App\AudionDpiManager.exe --reset-apps` возвращает установленные приложения к их собственному умолчанию: блоки этой программы в списках Flowseal, собственные списки `*-user.txt` и фильтр игр Flowseal, два списка zapret2, файлы списков ByeDPI, файлы журналов. Сами приложения остаются. Только то, что лежит в папке проекта: пакет Flowseal, на который указывают настройки вне проекта (или ссылка на другую папку), не трогается; ссылки (junction) внутри пакета — `lists`, `utils` — тоже не обходятся: очистка их называет и пропускает.

В сборщике это шаг `[06] INSTALL APPS` файла `builder_main.cmd` и первое, что делает `cleanup_project.cmd`; чистка ещё убирает `config\settings.json` (программа стартует по умолчанию: русский язык и тёмная тема), историю, журналы и папки сборки. Ни одна из команд не собирает программу, а чистка ничего не ставит.

### ByeDPI: параметры и настройки Manager

**ПАРАМЕТРЫ…** открывает список всех параметров `ciadpi.exe` по группам его руководства (подключение, ограничение области, автоматический режим, приёмы обхода, только Linux): у каждого краткое пояснение и кнопка **ВСТАВИТЬ**, которая ставит готовый шаблон параметра в конец поля параметров. Поиск сужает список по названию или слову. Параметры, которые есть только в Linux, тоже показаны, с пометкой «не действует на Windows»: программа убирает их из командной строки, как это делает ByeDPI Manager.

**НАСТРОЙКИ MANAGER** показывают и меняют файл настроек ByeDPI Manager (`Tools\ByeDPI\config\settings.json`), те же, что на вкладках его окна: маршрутизацию (ВЫКЛ, PROXIFYRE, СИСТЕМНЫЙ ПРОКСИ), LAN, список программ для ProxiFyre (в строке имя процесса, exe или папка; кнопки ФАЙЛ… и ПАПКА… добавляют их) и поведение окна (подключаться при запуске, запускать свёрнутым, сворачивать в трей). **СОХРАНИТЬ В MANAGER** пишет только эти ключи, остальное в файле (язык, горячая клавиша, история стратегий) остаётся. **ОТДАТЬ В MANAGER** в карточке подключения записывает в тот же файл параметры и порт из полей, **ВЗЯТЬ ИЗ MANAGER** делает обратное. Manager читает файл при запуске и пишет при закрытии, поэтому при сохранении здесь его окно должно быть закрыто: пока оно открыто, программа писать отказывается. Подключение этого раздела настройки маршрутизации не использует; запуск программ через ProxiFyre, подбор стратегий и автозапуск с Windows делает само окно Manager (ОТКРЫТЬ MANAGER).

## Что программа меняет на машине

- Запускает и останавливает `winws.exe` / `winws2.exe` / `ciadpi.exe`.
- Ставит и снимает службу `zapret`, останавливает и удаляет драйвер WinDivert (по кнопкам). Стирает папки установленных инструментов (кнопки УДАЛИТЬ, после вопроса).
- Включает метки времени TCP (`netsh interface tcp set global timestamps=enabled`).
- Меняет DNS адаптеров (раздел DNS) и системный прокси (BYEDPI → ПОДКЛЮЧИТЬ). Оба возвращаются кнопками.
- Дописывает блок в `hosts` (LISTS → ЗАПИСАТЬ В HOSTS) после копии; блок убирается кнопкой.
- Записывает включённые наборы списков в списки выбранных DPI-инструментов (LISTS → СПИСКИ ИЗ GITHUB → «Записывать в»): у Zapret и zapret2 блоками между строками-метками (`list-general-user.txt` и список IPSET пакета; `Tools\zapret2\lists\list-user.txt` и `ipset-user.txt`), у ByeDPI — своими файлами `Tools\ByeDPI\lists\hosts.txt` и `ipset.txt`. Блоки убираются по меткам. Режим IPSet меняет только с вашего согласия; пресет zapret2 меняется только кнопкой ПРОФИЛИ ДЛЯ АДРЕСОВ, а режим «по спискам» ByeDPI — только вашим выбором.
- Удаляет кэш Discord и службы других обходов — только по своим кнопкам и после вопроса.

Всё это записывается в журнал. Ничего не запускается по расписанию Windows. В сеть программа обращается только за версиями, релизами и списками на GitHub и — по вашей кнопке ПРОВЕРИТЬ в разделе DNS — к серверам, которые вы сами указали. Раз в сутки, пока окно открыто, она заново скачивает включённые наборы списков; чип РАЗ В СУТКИ в LISTS это выключает.

## Где что лежит

- `Start.exe` → `App\AudionDpiManager.exe` — программа.
- `Tools\zapret-discord-youtube` — пакет Flowseal (папку можно выбрать другую; папка с таким именем в корне, где её держали версии до 1.6.0, используется, пока новое место пусто).
- `Tools\zapret2`, `Tools\ByeDPI` — ставятся разделами по кнопке.
- `config\settings.json` — язык, тема, шрифт, папка Zapret, свой DNS. `config\history\` — кэш конфигураций, копии DNS и прокси; `config\history\lists\` — наборы списков (подписанные тексты и `sets.json` с переключателями). `config\zapret2\preset.txt` — ваш пресет. `LICENSE` и `NOTICE` — лицензия и уведомление.
- `._runtime\` — журналы, скачанное, кэш ответов GitHub, копии hosts.

## Лицензия и товарный знак

Audion DPI Manager © 2026 Tensionix распространяется по лицензии **Apache License 2.0** (полный текст — файл `LICENSE`, уведомление — `NOTICE`; оба открываются кнопками в разделе ABOUT). «Audion» и знак Audion — товарные знаки автора: лицензия Apache 2.0 (раздел 6) не даёт права использовать это название и знак, и копия или изменённая версия программы не должна выдаваться за Audion. Чужие программы (Flowseal, zapret2, ByeDPI, WinDivert) и их списки скачиваются с GitHub по вашей кнопке и остаются со своими лицензиями.

## Если что-то не так

- **«Программа запущена без прав администратора».** Закройте окно и запустите Start.exe.
- **Обход запустился и сразу остановился.** В журнале — причина: чаще нет файла списка или антивирус убрал драйвер. DIAGNOSTICS покажет второе.
- **Драйвер не выгружается при обновлении.** Замена ставится на следующую загрузку Windows; перезагрузитесь.
- **Ничего не открывается после смены DNS.** DNS → ВЕРНУТЬ КАК БЫЛО.
- **Антивирус ругается на WinDivert.** Это ложное срабатывание; добавьте папку Zapret в исключения.
