# 🎮 Как найти и протестировать стратегию для игры (профиль + TCPView)
> [!info] О чём заметка
> Пошаговый метод подбора рабочей [[desync|стратегии обхода]] для игры — «для самых непонятливых», без угадываний. Суть: **сначала** через `tcpview64.exe` собираем реальные IP-адреса, на которые ходит игра, кладём их в **свой [[profile|профиль]]** — и только **потом** перебираем стратегии. Так вы заранее знаете, что профиль точно применяется к трафику игры, и любой провал — это честно провал стратегии, а не «профиль не попал в нужный адрес». Что такое пресет и профиль — в [[preset]] и [[profile]]; создание профиля по шагам — в [[add-profile]]; сбор адресов — в [[Создание своей категории]].
> [!tip] TL;DR
> 1. **Собери IP игры** через TCPView (`tcpview64.exe`): запусти игру, смотри Remote-адреса её процессов.
> 2. **Создай профиль под игру** ([[add-profile]]) и внеси все найденные IP в ipset этого профиля.
> 3. Теперь профиль **гарантированно применяется** к игре — перебирай стратегии в «Готовых стратегиях».
> 4. Каждую стратегию проверяй **полным перезапуском игры** (вплоть до трея) — см. [[verify-strategy]].
> 5. Сначала пробей **TCP**, потом отдельным профилем — **UDP**: пока TCP не установился, UDP даже не начнёт подключаться.
> 6. Игра заблокирована так, что и адреса не снять? Сначала найди стратегию на пресете **«ALL TCP & UDP»** — на работающей игре TCPView или netlimiter покажет полный список адресов (связка методов — в конце заметки).
## Почему «тыкать стратегии наугад» не работает
Подбор обхода — это два независимых вопроса: **к какому трафику** применять дурение ([[filter|фильтр]]: домены, IP, порты) и **какую именно** стратегию применять ([[desync]]). Когда фильтр заполнен наугад, перебор стратегий превращается в гадание с двумя классическими ложными выводами:
- **«Эта стратегия не работает»** — а на деле [[profile|профиль]] просто не покрывал адрес, на который реально ходит игра. Стратегия тестировалась вхолостую: дурение применялось не к тому трафику или вообще ни к чему.
- **«Профиль не применяется на нужную игру»** — потому что неизвестно, какой адрес игре вообще нужен: лаунчер ходит на одни домены, авторизация — на другие, игровой трафик летит на третьи IP.
Оба вывода — [[symptom-not-cause|симптомы, а не причины]]. Лечится это тем, что вопрос «к какому трафику» закрывается **до** перебора: адреса игры не угадываются, а **снимаются с живого трафика** программой TCPView. После этого перебор становится честным экспериментом — фильтр заведомо верный, меняется только стратегия.
Проще говоря: у любой неудачи при подборе есть **два возможных виновника** — не подошла стратегия или профиль вообще не попадает в трафик игры. Пока адреса в профиле угаданы, вы не знаете, кто из двух виноват, и каждый провал ничего не сообщает. Когда адреса сняты с реального трафика через TCPView, второй виновник исключён: профиль точно попадает в игру, и провал теперь означает ровно одно — не подошла именно эта стратегия, берём следующую.
## Шаг 1. Собери IP-адреса игры через TCPView
**TCPView** (`tcpview64.exe`) — бесплатная утилита Sysinternals ([скачать](https://download.sysinternals.com/files/TCPView.zip)), которая показывает все соединения каждого процесса в реальном времени. Ключевое её свойство для нашей задачи: она **видит даже те запросы, которые не были доставлены** — заблокированные соединения всё равно отправляются и попадают в список (в отличие от NetLimiter, показывающего только удачные запросы). Подробный разбор работы с TCPView и Wireshark — в [[Создание своей категории]].
1. Запусти TCPView, затем запусти игру и её лаунчер.
2. Найди в списке процессы игры/лаунчера (сортировка по колонке процесса или поиск).
3. Выпиши **все Remote-адреса** этих процессов — именно удалённые адреса участвуют в подключении и нужны Запрету (Local-адреса нужны только чтобы определить UDP-порты).
4. Дай игре пожить: открой магазин, зайди в матч, включи голосовой чат — разные функции ходят на разные адреса, и чем дольше понаблюдаешь, тем полнее список.
> [!warning] Наглухо заблокированная игра не покажет все свои адреса
> TCPView видит соединения, которые игра **попыталась** открыть — в том числе заблокированные. Но если из-за блокировки игра застревает на лаунчере или логине, до серверов матчей и голосового чата она просто **не доходит** — этих адресов в списке не будет, игра ещё не пыталась к ним подключиться. Выход — связка с пресетом «ALL TCP & UDP»: временно найти на нём стратегию, при которой игра работает целиком, и снять полный список адресов с живой игры. Как это сделать — в разделе про лобовой вариант ниже.
> [!note] Сначала TCP, потом UDP
> Архитектурно, если TCP-соединение игры не установилось, UDP-трафик даже не начнёт устанавливаться. Поэтому сначала собираем и пробиваем **TCP-адреса** (этот и следующие два шага), и только когда игра начала подключаться — отдельно смотрим UDP (шаг 4).
## Шаг 2. Создай профиль игры и внеси туда собранные IP
Полная пошаговая инструкция по созданию [[profile|профиля]] — [[add-profile|«Как добавить свой профиль»]] (там же — зачем сперва дублировать [[preset|пресет]] как бэкап). Кратко применительно к игре:
1. «Профили пресета» → большой `+` → название (например, имя игры) и TCP-порты: не знаешь точных — ставь `80,443-65535`.
2. Открой созданный профиль → вкладка **«Редактор»** → выбери тип **Ipset** (работа по IP-адресам, а не по доменам — см. [[ipset]]).
3. Внеси в «Ваши записи» **все** Remote-IP из шага 1, по одному на строку, и сохрани список.
4. Если из TCPView видны и доменные имена — их можно продублировать в hostlist того же профиля ([[hostlist]]).
С этого момента главное сомнение снято: профиль **точно применяется** к трафику игры, потому что в нём лежат адреса, снятые с её живых соединений, а не угаданные.
## Шаг 3. Перебирай стратегии — теперь честно
Открой профиль игры → вкладка **«Готовые стратегии»**. Это список готовых вариантов дурения ([[fake]], [[multisplit]], [[multidisorder]] и комбинации) — он одинаков для любого профиля:
![[vse-saity-strategii-gui-2026-07.png]]
Цикл перебора:
- [ ] Выбери следующую стратегию (справа от названия — подсказка, на какой технике она основана).
- [ ] Проверь, что профиль **«Включён»** (чекбокс в правом верхнем углу) и статус во вкладке «Управление Zapret 2» — «Zapret работает».
- [ ] **Полностью перезапусти игру и лаунчер** — вплоть до выхода из системного трея. Иначе игра держит старые соединения, к которым новая стратегия не применяется, и перебор идёт «в воздух» — механика разобрана в [[verify-strategy|«Как проверить, заработала ли стратегия»]].
- [ ] Проверь: запускается, логинится, качает обновления.
- [ ] Не работает → следующая стратегия. Работает → шаг 4.
Каждый «провал» теперь информативен: фильтр заведомо верный, значит именно эта стратегия не подходит под блокировку — берём следующую.
## Шаг 4. UDP: игровой трафик реального времени
Если игра стала запускаться и логиниться (TCP пробит), но **не пускает в матч, лагает или молчит голосовой чат** — дело в UDP-составляющей. Для неё нужен **отдельный [[profile|UDP-профиль]]**:
1. Определи UDP-порты и адреса: Local-порты видны в TCPView, конкретные адреса на конкретном UDP-порту удобнее ловить Wireshark'ом — оба инструмента разобраны в [[Создание своей категории]]. Есть и способ без стороннего софта: записать debug-лог winws2 с расширенным [[wf|wf-фильтром]] и снять UDP-адреса игры из таблицы соединений [[log-analyzer|анализатора лога]] — TCPView удалённые адреса UDP часто не показывает вовсе.
2. Создай профиль с UDP-фильтром и своим ipset, стратегии для UDP перебираются так же (обычно это варианты [[fake]]).
> [!warning] Игровой UDP почти всегда `unknown` — ставь `--payload=all`, иначе профиль молчит
> Самая частая причина «UDP-профиль не работает у игры»: по умолчанию [[payload|фильтр payload]] равен `known`, то есть дурение применяется только к **опознанным** протоколам (TLS, QUIC, HTTP, `mtproto_initial`). Но игры почти всегда гоняют трафик реального времени по **собственным проприетарным протоколам**, которые Zapret не распознаёт — их тип payload получается `unknown`, и дефолтный `known` **пропускает такой трафик мимо**, даже если фильтр по портам и ipset совпал идеально. Готовых распознавателей под конкретные игры в Zapret обычно нет, так что рассчитывать на автоопределение не стоит. Лечится явным указанием payload в UDP-профиле: `--payload=unknown` (только неопознанное — как раз игровой случай) или, чтобы не гадать, `--payload=all` (и известное, и неопознанное). Практичнее сразу ставить `--payload=all` во всех игровых UDP-профилях. Подробный разбор типов и синтаксиса — в [[payload#Игры: payload часто unknown — ставьте unknown или all|заметке про payload]].
## Куда деть собранные адреса ещё
Полный список IP и портов игры — ценность не только для вас: его можно [отправить разработчикам Zapret2 GUI](https://github.com/youtubediscord/zapret/issues/new?template=hostlist_ipset_request.yml), чтобы игру добавили в категории по умолчанию — правила оформления в [[Создание своей категории]]. Тогда следующим игрокам не придётся проходить этот путь.
## Лобовой вариант: пресеты «ALL TCP & UDP» — и связка с TCPView
В чатах поддержки (июль 2026) часто советуют путь ещё проще: включить [[preset|пресет]] из раздела `ALL TCP & UDP` — там стратегия применяется **сразу ко всем сайтам** (широкий профиль-перехватчик «Все сайты (исключение)», механика — в [[profile#Порядок профилей важен: чем выше — тем главнее|«Порядок профилей»]]) — и перебирать стратегии в нём. По словам разработчика Zapret2 GUI, это «самый тупой, но лёгкий способ найти нужную стратегию».
![[all-tcp-udp-presets-2026-07.png]]
![[vse-saity-profili-gui-2026-07.png]]
### Как такой пресет устроен внутри
Чтобы понимать, чем именно вы щёлкаете при таком переборе, вот реальное содержимое стокового пресета `ALL TCP & UDP hostfakesplit_multi_syndata` (BuiltinVersion 2.24, июль 2026) — шапка с [[blob|блобами]] опущена, она такая же, как в любом пресете (см. [[preset#Структура пресета|структуру пресета]]):
```bash
# Preset: ALL TCP & UDP hostfakesplit_multi_syndata
# BuiltinVersion: 2.24
--wf-tcp-out=80,443-65535 # перехват почти всех TCP-портов
--wf-udp-out=80,443-65535 # и почти всех UDP-портов
# ( ...стандартная шапка: --lua-init, кэш, --blob — опущена... )
--name=Исключения (RU сайты) # профиль 1 — самый верхний
--filter-tcp=80,443-65535
--ipset=lists/ipset-ru.txt # российские сайты,
--ipset=lists/ipset-dns.txt # DNS-серверы
--ipset=lists/ipset-exclude.txt # и ручные исключения...
--out-range=-d8
--payload=tls_client_hello
--lua-desync=pass # ...не дурятся вообще
--new
--name=Все сайты (айпи) # профиль 2 — ВЕСЬ остальной TCP
--filter-tcp=80,443-65535
--ipset-exclude=lists/ipset-ru.txt
--ipset-exclude=lists/ipset-dns.txt
--ipset-exclude=lists/ipset-exclude.txt
--out-range=-n8
--lua-desync=send:repeats=2
--lua-desync=syndata:blob=stun_pat
--lua-desync=hostfakesplit_multi:hosts=google.com,vimeo.com:tcp_ts=-1000:tcp_md5:repeats=2
--new
--name=Все сайты UDP (айпи) # профиль 3 — ВЕСЬ UDP, отдельно
--filter-udp=443-65535
--ipset-exclude=lists/ipset-ru.txt
--ipset-exclude=lists/ipset-dns.txt
--ipset-exclude=lists/ipset-exclude.txt
--out-range=-d8
--payload=all
--lua-desync=fake:blob=quic_google:ip_autottl=-2,3-20:ip6_autottl=-2,3-20:repeats=10:payload=all
```
Что здесь важно понимать:
- **Перехват на всю ширину.** [[wf|WinDivert-фильтры]] `--wf-tcp-out` и `--wf-udp-out` открыты на `80,443-65535` — Zapret видит почти весь исходящий трафик, включая нестандартные игровые порты. Именно поэтому такой пресет «дотягивается» до игры, адресов которой вы не знаете.
- **Российское — мимо дурения.** Самый верхний профиль «Исключения (RU сайты)» держит [[ipset|ipset-списки]] российских сайтов и DNS на стратегии `pass` («ничего не делать»). По правилу [[profile#Порядок профилей важен: чем выше — тем главнее|«выше = главнее»]] он срабатывает первым — поэтому «на all-tcp ломается всё» — преувеличение: отваливаться могут в основном зарубежные сервисы, а RU-ресурсы пресет не трогает вовсе.
- **Один TCP-профиль на всё остальное.** «Все сайты (айпи)» берёт весь TCP **за вычетом** тех же списков (`--ipset-exclude`) — это и есть тот профиль, где вы перебираете стратегии: GUI при выборе в «Готовых стратегиях» подменяет строки `--lua-desync` именно этого блока. В этом пресете стоит связка `send` + [[syndata]] (с блобом `stun_pat`) + [[hostfakesplit|hostfakesplit_multi]] (маскировка под чужие хосты `google.com`, `vimeo.com`).
- **UDP — отдельный профиль с отдельной стратегией.** «Все сайты UDP (айпи)» дурит весь UDP 443-65535 своей стратегией ([[fake]] с QUIC-блобом и автоподбором TTL). Смена TCP-стратегии его не касается — ещё одно напоминание, что игровой UDP-трафик пробивается отдельно.
- **Названия профилей от пресета к пресету отличаются** — в этом файле «Все сайты (айпи)», в других стоковых «Все сайты (исключение)» / «Все сайты (хостлисты)» (как на скриншоте выше). Механика одна: широкий фильтр минус списки исключений.
> [!tip] Как узнать профиль «на все сайты» в любом пресете
> Признак простой (его же называет разработчик GUI, чат поддержки, июль 2026): если в профиле **нет** `--ipset`/`--hostlist`, а есть только исключающие списки `--ipset-exclude`/`--hostlist-exclude` — профиль действует **на все сайты**. Именно так устроены «Все сайты (айпи)» и «Все сайты UDP (айпи)» в листинге выше.
### Перебрал все пресеты — перебор только начинается
Готовых пресетов в разделе `ALL TCP & UDP` немного — 12 штук (GUI v21.1.3.18, июль 2026, скриншот выше). Частая ошибка: переключить все 12, не завестись — и решить «я всё перепробовал, ничего не работает». Это не так: перепробованы только пресеты, а **стратегий гораздо больше, чем пресетов**.
Проще говоря: [[preset|пресет]] — это не отдельный способ обхода, а всего лишь **пара заранее выбранных за вас стратегий** — одна для [[profile|TCP-профиля]], одна для UDP-профиля. Сами стратегии лежат в списке «Готовые стратегии» внутри каждого профиля, и в этом списке порядка сотни вариантов (оценка по списку в GUI v21.1.3.18, июль 2026). Переключая пресеты, вы попробовали только 12 пар из этой сотни — все остальные стратегии по-прежнему доступны и перебираются вручную, прямо внутри любого включённого пресета, отдельно для TCP и отдельно для UDP:
- «Профили пресета» → TCP-профиль («Все сайты (айпи)» / «Все сайты (исключение)») → «Готовые стратегии» → выбрать следующую. Этот профиль отвечает за лаунчер, логин, загрузку.
- «Профили пресета» → UDP-профиль («Все сайты UDP») → «Готовые стратегии» → выбрать следующую. Этот отвечает за матчи и голос; его стратегия от TCP-профиля не зависит.
Вывод: кончились 12 пресетов — не бросайте перебор. Откройте профиль внутри любого из них и продолжайте менять стратегии по одной: сочетаний «TCP-стратегия + UDP-стратегия» — сотни.
### Как понять, что стратегия на «all tcp» сработала
Открывать каждый сайт подряд не нужно. Раз пресет применяет стратегию ко всему трафику, критерий проверки один — **сама игра**: полностью перезапустил ([[verify-strategy|вплоть до трея]]) → запускается, логинится, пускает в матч. Остальные сайты — не индикатор: им та же стратегия может не подойти, и это ничего не говорит о том, работает ли она для игры.
### Связка двух методов: нашёл стратегию — сразу собери адреса
Когда игра на «all tcp» заработала, **не спеши переключаться обратно**. Именно в этот момент TCPView покажет **полный** список адресов: игра живая, проходит все этапы — лаунчер, логин, матчи, голос — и реально открывает соединения ко всем своим серверам (заблокированная игра до большинства из них просто не доходила, см. шаг 1). Порядок такой:
1. На рабочей «all tcp»-стратегии запусти TCPView и сними все Remote-адреса игры, погоняв её по всем режимам.
2. Вернись на свой обычный пресет.
3. Создай узкий профиль игры с этими адресами и **той самой стратегией** — шаги 2–3 основного метода.
Так лобовой перебор и метод TCPView смыкаются в один цикл: «all tcp» отвечает на вопрос «какая стратегия», работающая игра под ним — на вопрос «какие адреса», а узкий профиль закрепляет и то и другое без побочных эффектов.
Оставаться же на «all tcp» насовсем не стоит: пока он активен, зарубежные сервисы (Spotify, Discord, форумы) получают ту же неоптимальную для них стратегию и могут отваливаться, а узкие профили под широким перехватчиком не срабатывают вовсе. Это **поисковый стенд**, а не постоянная конфигурация; постоянная — узкий профиль из шагов выше.
## Если ни одна стратегия не помогла
- Проверь честность проверки: полный перезапуск игры и лаунчера, вплоть до трея ([[verify-strategy]]).
- Если перебирал только стоковые пресеты «ALL TCP & UDP» — это лишь 12 готовых комбинаций: внутри любого из них TCP- и UDP-стратегии меняются независимо, комбинаций сотни (см. [[find-game-strategy#Перебрал все пресеты — перебор только начинается|раздел про перебор внутри пресета]]).
- Не работает именно UDP-часть (не пускает в матч, молчит голос)? Проверь, что в UDP-профиле стоит `--payload=all` или `--payload=unknown`: с дефолтным `known` игровой UDP с неопознанным протоколом дурится вхолостую (см. предупреждение в [[find-game-strategy#Шаг 4. UDP: игровой трафик реального времени|Шаге 4]]).
- Пересними адреса: у игр адреса и CDN меняются, список из TCPView мог устареть или быть неполным (собери его заново, погоняв игру подольше).
- Убедись, что профиль игры стоит **выше** широких ipset-профилей в пресете — иначе трафик перехватывает профиль над ним ([[profile#Порядок профилей важен: чем выше — тем главнее|порядок профилей]], [[profile-independence|один сайт — один профиль]]).
- Возможно, игра вообще не блокируется по DPI (упал сам сервис, GeoIP-бан, проблема провайдера) — тогда никакая стратегия не поможет; с чего начать диагностику — [[symptom-not-cause|«Почему „не работает“ — это симптом»]].
## 📚 См. также
- [[Создание своей категории]] — TCPView и Wireshark подробно: как собирать домены, IP и UDP-порты ресурса
- [[find-domain-owner|Как узнать, какому CDN принадлежит домен]] — тот же принцип «сначала адреса, потом стратегии», но для сайтов: браузерное расширение вместо TCPView
- [[add-profile|Как добавить свой профиль]] — пошаговое создание профиля в GUI (бэкап пресета, редактор списков, включение)
- [[verify-strategy|Как проверить, заработала ли стратегия]] — почему без полного перезапуска игры перебор бессмыслен
- [[profile|Что такое профиль]] — фильтры, порядок «выше = главнее» и механика широких профилей «all tcp udp»
- [[preset|Что такое пресет]] — почему захардкоженная стратегия «на всё» чинит одни сайты и ломает другие
- [[payload|Типы --payload]] — почему игровой UDP-трафик получает тип `unknown` и когда ставить `--payload=all`
- [[ipset]] · [[hostlist]] — файлы списков IP и доменов, которые наполняет профиль
- [[circular]] — автоматический перебор стратегий (другая механика: Lua-оркестратор сам меняет стратегию при неудачах)
- [[log-analyzer|Анализ лога winws2]] — сбор адресов и портов игры через debug-лог, без Wireshark и TCPView (особенно для UDP)
- [[Blockcheck|BlockCheck]] — автоподбор стратегии для сайтов (для игр работает хуже: проверяет через curl один домен)
- [[symptom-not-cause|Почему «не работает» — это симптом]] — частые ложные выводы при настройке
---
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны на GitHub: [исходник этой заметки](https://github.com/youtubediscord/todo/blob/main/Zapret2/find-game-strategy.md) · [весь репозиторий](https://github.com/youtubediscord/todo/tree/main).
<iframe
src="https://youtubediscord.github.io/todo?u=https%3A%2F%2Fpublish.obsidian.md%2Fzapret%2Ffind-game-strategy&t=find-game-strategy&i=find-game-strategy"
title="Комментарии"
style="width:100%;min-height:560px;border:0"
loading="lazy">
</iframe>