Zapret | Дорожная карта
2.37K subscribers
28 photos
24 files
3.58K links
Дорожная карта обновлений.

Узнайте что я буду редактировать в Запрет для обхода блокировок Дискорда и Ютуба в первую очередь

И ужаснуться моим техническим непонятным запискам без контекста.
Download Telegram
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 для копия / импорт / список пресетов тоже нашёлся отдельный слой, который тормозил. Это уже была не проблема шаблонов, как у reset, а проблема индекса пресетов и повторных проходов по нему.

👤 Автор: loop-uh
🔗 SHA: 6364f6c

📊 Статистика: 8 files changed, 141 insertions(+), 197 deletions(-)

📁 Изменённые файлы:
✏️ src/core/presets/repository.py
✏️ src/core/presets/template_support.py
✏️ src/main.py
✏️ src/managers/initialization_manager.py
✏️ src/ui/pages/home_page.py
✏️ src/ui/pages/zapret1/user_presets_page.py
✏️ src/ui/pages/zapret2/direct_control_page.py
✏️ src/ui/pages/zapret2/user_presets_page.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит

📝 vault backup: 2026-04-06 14:29:15

👤 Автор: fuckyou
📅 Дата: 06.04.2026 11:29:15
🔗 SHA: 17cb2fe

📊 Статистика:
➕ Добавлено: 18 строк
➖ Удалено: 18 строк
📝 Всего изменений: 36

📁 Изменено файлов: 16

✏️ Zapret/manual.md
+1 -1

Удалилось:
[[Zapret2 - оркестратор]]


Добавилось:
[[оркестратор]]


✏️ Zapret/zapret_not_working.md
+1 -1

Удалилось:
Единственный надёжный способ найти рабочую стратегию — анализ нескольких типичных стратегий из го...


Добавилось:
Единственный надёжный способ найти рабочую стратегию — анализ нескольких типичных стратегий из го...


✏️ Zapret2/Zapret2.md
+9 -9

Удалилось:
[[Zapret2 - основные флаги]]

[[Zapret2 - wf]]

[[Zapret2 - out-range]]

[[Zapret2 - payload]]

[[Zapret2 - lua-desync]]

[[Zapret2 - blob]]

[[Zapret2 - последовательность аргументов]]

[[Zapret2 - mtproto]]

[[Zapret2 - Roadmap обучения]]


Добавилось:
[[основные флаги]]

[[wf]]

[[out-range]]

[[payload]]

[[desync]]

[[blob]]

[[последовательность аргументов]]

[[распознавание mtproto]]

[[roadmap обучения]]


📝 Zapret2/blob.md
+0 -0

📝 Zapret2/desync.md
+0 -0

✏️ Zapret2/filter.md
+1 -1

Удалилось:
Фильтры в nfqws2 определяют, какие пакеты/соединения будут обрабатываться профилем мультистратеги...


Добавилось:
Фильтры в nfqws2 определяют, какие пакеты/соединения будут обрабатываться профилем мультистратеги...


✏️ Zapret2/guide.md
+1 -1

Удалилось:
Данная статья описывается для программы с поддержкой интерфейса (GUI), но Вы можете настроить и о...


Добавилось:
Данная статья описывается для программы с поддержкой интерфейса (GUI), но Вы можете настроить и о...


📝 Zapret2/out-range.md
+0 -0

📝 Zapret2/payload.md
+0 -0

✏️ Zapret2/preset.md
+4 -4

Удалилось:
**Пресет** (*часто называемые конфигами*) — это `.txt` файл(ы) с перечислением всех [[Zapret2 - о...

Далее следуют [[Zapret2 - wf|глобальные фильтры WinDivert]], на языке [[Zapret2]] они имеют напра...

### 3. [[Zapret2 - blob|Блобы]] (заготовки данных)

[[Zapret2 - blob|Блоб]] — это заранее подготовленные данные (*для удобства в готовом пресете сраз...


Добавилось:
**Пресет** (*часто называемые конфигами*) — это `.txt` файл(ы) с перечислением всех [[основные фл...

Далее следуют [[wf|глобальные фильтры WinDivert]], на языке [[Zapret2]] они имеют направление (`-...

### 3. [[blob|Блобы]] (заготовки данных)

[[blob|Блоб]] — это заранее подготовленные данные (*для удобства в готовом пресете сразу перечисл...


... и еще 6 файлов

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/todo

📝 vault backup: 2026-04-06 14:29:15

👤 Автор: fuckyou
🔗 SHA: 17cb2fe

📊 Статистика: 16 files changed, 18 insertions(+), 18 deletions(-)

📁 Изменённые файлы:
✏️ Zapret/manual.md\n✏️ Zapret/zapret_not_working.md\n✏️ Zapret2/Zapret2.md\n📝 Zapret2/Zapret2 - blob.md Zapret2/blob.md\n📝 Zapret2/Zapret2 - lua-desync.md Zapret2/desync.md\n✏️ Zapret2/filter.md\n✏️ Zapret2/guide.md\n📝 Zapret2/Zapret2 - out-range.md Zapret2/out-range.md\n📝 Zapret2/Zapret2 - payload.md Zapret2/payload.md\n✏️ Zapret2/preset.md\n📝 "Zapret2/Zapret2 - Roadmap \320\276\320\261\321\203\321\207\320\265\320\275\320\270\321\217.md" "Zapret2/roadmap \320\276\320\261\321\203\321\207\320\265\320\275\320\270\321\217.md"\n📝 Zapret2/Zapret2 - wf.md Zapret2/wf.md\n📝 "Zapret2/Zapret2 - \320\276\321\200\320\272\320\265\321\201\321\202\321\200\320\260\321\202\320\276\321\200.md" "Zapret2/\320\276\321\200\320\272\320\265\321\201\321\202\321\200\320\260\321\202\320\276\321\200.md"\n📝 "Zapret2/Zapret2 - \320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265 \321\204\320\273\320\260\320\263\320\270.md" "Zapret2/\320\276\321\201\320\275\320\276\320\262\320\275\321\213\320\265 \321\204\320\273\320\260\320\263\320\270.md"\n📝 "Zapret2/Zapret2 - \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\321\214 \320\260\321\200\320\263\321\203\320\274\320\265\320\275\321\202\320\276\320\262.md" "Zapret2/\320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\321\214 \320\260\321\200\320\263\321\203\320\274\320\265\320\275\321\202\320\276\320\262.md"\n📝 Zapret2/Zapret2 - mtproto.md "Zapret2/\321\200\320\260\321\201\320\277\320\276\320\267\320\275\320\260\320\262\320\260\320\275\320\270\320\265 mtproto.md"\n
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 фикс багов

👤 Автор: loop-uh
🔗 SHA: d32041f

📊 Статистика: 41 files changed, 2368 insertions(+), 915 deletions(-)

📁 Изменённые файлы:
✏️ src/core/direct_preset_core/common/strategy_catalogs.py
✏️ src/core/direct_preset_core/service.py
✏️ src/core/presets/runtime_store.py
✏️ src/core/runtime/preset_runtime_coordinator.py
✏️ src/main.py
✏️ src/managers/initialization_manager.py
✏️ src/orchestra/blocked_strategies_manager.py
🆕 src/orchestra/ignored_targets.py
✏️ src/orchestra/locked_strategies_manager.py
✏️ src/orchestra/orchestra_runner.py
✏️ src/preset_orchestra_zapret2/preset_manager.py
✏️ src/telegram_proxy/manager.py
✏️ src/tray.py
✏️ src/ui/main_window.py
✏️ src/ui/main_window_navigation.py
✏️ src/ui/main_window_navigation_build.py
✏️ src/ui/main_window_pages.py
✏️ src/ui/main_window_state.py
✏️ src/ui/mode_page_scope.py
✏️ src/ui/page_names.py
✏️ src/ui/page_registry.py
✏️ src/ui/pages/orchestra/blocked_page.py
✏️ src/ui/pages/orchestra/locked_page.py
✏️ src/ui/pages/orchestra_page.py
✏️ src/ui/pages/orchestra_zapret2/__init__.py
🆕 src/ui/pages/orchestra_zapret2/preset_detail_page.py
🆕 src/ui/pages/orchestra_zapret2/preset_subpage_base.py
✏️ src/ui/pages/orchestra_zapret2/user_presets_page.py
✏️ src/ui/pages/preset_subpage_base.py
✏️ src/ui/pages/telegram_proxy_page.py
🆕 src/ui/pages/user_presets_runtime.py
✏️ src/ui/pages/zapret1/direct_control_page.py
✏️ src/ui/pages/zapret1/direct_zapret1_page.py
✏️ src/ui/pages/zapret1/user_presets_page.py
✏️ src/ui/pages/zapret2/direct_control_page.py
✏️ src/ui/pages/zapret2/direct_zapret2_page.py
✏️ src/ui/pages/zapret2/preset_detail_page.py
✏️ src/ui/pages/zapret2/strategy_detail_page.py
✏️ src/ui/pages/zapret2/user_presets_page.py
✏️ src/ui/pages/zapret2_orchestra_strategies_page.py
✏️ src/ui/widgets/direct_zapret2_strategies_tree.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 21.0.0.6

👤 Автор: loop-uh
🔗 SHA: 8742917

📊 Статистика: 17 files changed, 388 insertions(+), 234 deletions(-)

📁 Изменённые файлы:
✏️ src/core/direct_flow.py
✏️ src/core/direct_preset_core/common/target_metadata_loader.py
✏️ src/core/direct_preset_core/common/target_metadata_service.py
✏️ src/core/direct_preset_core/engines/_shared.py
🆕 src/core/presets/cache_signatures.py
✏️ src/core/presets/direct_facade_backend.py
✏️ src/core/presets/runtime_store.py
✏️ src/preset_orchestra_zapret2/preset_manager.py
✏️ src/preset_orchestra_zapret2/preset_store.py
✏️ src/ui/main_window.py
✏️ src/ui/main_window_navigation_build.py
✏️ src/ui/pages/orchestra_zapret2/user_presets_page.py
✏️ src/ui/pages/zapret1/direct_zapret1_page.py
✏️ src/ui/pages/zapret1/user_presets_page.py
✏️ src/ui/pages/zapret2/direct_zapret2_page.py
🆕 src/ui/pages/zapret2/strategy_detail_mode_policy.py
✏️ src/ui/pages/zapret2/strategy_detail_page.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 Update dpi_controller.py

👤 Автор: loop-uh
🔗 SHA: c3ca689

📊 Статистика: 1 file changed, 28 insertions(+), 11 deletions(-)

📁 Изменённые файлы:
✏️ src/dpi/dpi_controller.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 Теперь в public_zapretgui/src/managers/initialization_manager.py поздний post-init запускается не через QTimer.singleShot(...), а через обычный queued-сигнал _PostInitLaunchBridge. Это значит следующее: - тяжёлая часть всё ещё не выполняется прямо внутри быстрого стартового участка; - но больше нет искусственной задержки вроде 180ms; - запуск переносится просто на следующий проход цикла интерфейса, то есть без «магического ожидания» и без таймерной эвристики. Проще говоря: мы сохранили главную пользу отложенного запуска, но убрали именно тот механизм, который уже раньше показал себя плохим, когда поведение начинает зависеть от случайной задержки, а не от реального жизненного цикла окна. Что изменилось по сути:

👤 Автор: loop-uh
🔗 SHA: d17f746

📊 Статистика: 3 files changed, 266 insertions(+), 65 deletions(-)

📁 Изменённые файлы:
✏️ src/core/direct_flow.py
✏️ src/managers/initialization_manager.py
✏️ src/ui/pages/appearance_page.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 первый запуск теперь отполирован

👤 Автор: loop-uh
🔗 SHA: b06dbf7

📊 Статистика: 14 files changed, 369 insertions(+), 484 deletions(-)

📁 Изменённые файлы:
✏️ src/core/direct_flow.py
✏️ src/dpi/dpi_controller.py
✏️ src/main.py
✏️ src/managers/dpi_manager.py
✏️ src/managers/dpi_runtime_service.py
✏️ src/managers/initialization_manager.py
✏️ src/startup/kaspersky.py
✏️ src/startup/telega_check.py
✏️ src/tray.py
✏️ src/ui/pages/control_page.py
✏️ src/ui/pages/home_page.py
✏️ src/ui/pages/zapret1/direct_control_page.py
✏️ src/ui/pages/zapret2/direct_control_page.py
✏️ src/ui/window_notification_controller.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 - закрытие при WindowDeactivate, то есть когда окно перестаёт быть активным; - закрытие при FocusOut, то есть когда popup теряет фокус; - закрытие при смене состояния приложения через applicationStateChanged, то есть как раз при уходе из активного окна, например через Alt+Tab; - для трея сохранена отдельная Windows-специфика: закрытие по клику вне меню через глобальную проверку мыши. На этот общий helper я перевёл все живые popup-меню, которые у вас открывались через menu.exec(...) в пользовательских сценариях: - public_zapretgui/src/ui/pages/preset_actions_menu.py - public_zapretgui/src/ui/pages/preset_rating_menu.py - public_zapretgui/src/ui/pages/preset_subpage_base.py - public_zapretgui/src/ui/pages/zapret2/strategy_detail_page.py - public_zapretgui/src/ui/pages/orchestra_page.py - public_zapretgui/src/ui/pages/strategy_scan_page.py - public_zapretgui/src/tray.py То есть смысл правки такой: раньше у трея была одна отдельно починенная логика, а у остальных меню была своя, местами слабая или вообще отсутствующая. Теперь у программы есть один общий механизм popup-lifecycle, а tray просто использует его через свою обёртку с дополнительным поведением для клика мимо.

👤 Автор: loop-uh
🔗 SHA: 51466d4

📊 Статистика: 15 files changed, 609 insertions(+), 585 deletions(-)

📁 Изменённые файлы:
✏️ src/autostart/autostart_direct.py
✏️ src/core/direct_flow.py
✏️ src/dpi/dpi_controller.py
✏️ src/launcher_common/builder_factory.py
✏️ src/managers/dpi_manager.py
✏️ src/managers/initialization_manager.py
✏️ src/tray.py
✏️ src/ui/main_window_mode_switch.py
✏️ src/ui/pages/orchestra_page.py
✏️ src/ui/pages/preset_actions_menu.py
✏️ src/ui/pages/preset_rating_menu.py
✏️ src/ui/pages/preset_subpage_base.py
✏️ src/ui/pages/strategy_scan_page.py
✏️ src/ui/pages/zapret2/strategy_detail_page.py
🆕 src/ui/popup_menu.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 ввёл единый лёгкий cleanup helper для обычного старта: _unload_known_windivert_drivers() и _perform_standard_windivert_cleanup(). Это важно, потому что раньше zapret1 и zapret2 делали почти одинаковую стандартную очистку разными кусками кода, и эти куски уже начали жить как два отдельных владельца одной и той же policy. Теперь обычная очистка перед стартом у них канонически одна. В public_zapretgui/src/zapret1_launcher/strategy_runner.py:410 я разложил ordinary launch path на отдельные этапы: подготовка cleanup через _prepare_cleanup_before_spawn_locked(...), потом отдельное решение о retry через _maybe_retry_after_failed_spawn_locked(...). Самое важное здесь то, что ранее убранный fallback с “selected-source refresh” больше не вернулся: runner не пытается тихо восстанавливать отсутствующий preset через другой путь, а честно падает с ошибкой, если входной preset не существует. В public_zapretgui/src/zapret2_launcher/strategy_runner.py:857 сделал аналогичное разделение, но без насильственного выравнивания поведения под zapret1, потому что у них реально разная retry-модель. Для zapret2 теперь отдельно видны:

👤 Автор: loop-uh
🔗 SHA: f258b2e

📊 Статистика: 7 files changed, 347 insertions(+), 283 deletions(-)

📁 Изменённые файлы:
✏️ src/core/direct_flow.py
✏️ src/core/presets/direct_facade_backend.py
✏️ src/core/presets/repository.py
✏️ src/dpi/dpi_controller.py
✏️ src/launcher_common/runner_base.py
✏️ src/zapret1_launcher/strategy_runner.py
✏️ src/zapret2_launcher/strategy_runner.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 direct-модуль ZapretGUI и много ходов подряд последовательно его приводили к одной модели: - один source preset как источник истины, - одна startup/runtime orchestration модель, - отдельные policy entrypoint’ы для content change и preset switch, - bridge’и между runner/controller/store/watchers, - и меньше локальной логики в UI.

👤 Автор: loop-uh
🔗 SHA: 4600eea

📊 Статистика: 22 files changed, 643 insertions(+), 147 deletions(-)

📁 Изменённые файлы:
🆕 src/core/presets/direct_runtime_events.py
✏️ src/core/presets/support_files.py
✏️ src/core/presets/v1_builtin_templates.py
✏️ src/core/runtime/preset_runtime_coordinator.py
🆕 src/dpi/direct_runtime_apply_policy.py
✏️ src/dpi/dpi_controller.py
🆕 src/dpi/runtime_preset_switch_policy.py
✏️ src/dpi/zapret2_core_restart.py
✏️ src/launcher_common/preset_runner_support.py
✏️ src/main.py
✏️ src/managers/initialization_manager.py
✏️ src/ui/main_window.py
✏️ src/ui/pages/dpi_settings_page.py
✏️ src/ui/pages/preset_subpage_base.py
✏️ src/ui/pages/strategy_scan_page.py
✏️ src/ui/pages/zapret1/user_presets_page.py
✏️ src/ui/pages/zapret2/direct_control_page.py
✏️ src/ui/pages/zapret2/direct_zapret2_page.py
✏️ src/ui/pages/zapret2/strategy_detail_page.py
✏️ src/ui/pages/zapret2/user_presets_page.py
✏️ src/zapret1_launcher/strategy_runner.py
✏️ src/zapret2_launcher/strategy_runner.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 при первом клике боковое меню вызывает show_page(), дальше идёт ensure_page(), и уже там в главном потоке сразу выполняются две дорогие вещи подряд: импорт Python- модуля страницы и создание всего дерева виджетов этой страницы. Это видно в связке public_zapretgui/src/ui/main_window.py:326 -> public_zapretgui/src/ui/main_window_pages.py:82 -> public_zapretgui/src/ui/main_window_pages.py:138. Для DPI Settings я отдельно промерил сам импорт модуля, и только он занял примерно 913 мс, ещё до полноценного показа страницы. То есть пользователь нажимает пункт меню, а приложение в этот же момент начинает “разворачивать” тяжёлый модуль страницы прямо в интерфейсном потоке. Что я поменял. После первого показа окна и завершения базовой сборки интерфейса я добавил отложенный прогрев страниц: приложение теперь не ждёт первого клика пользователя, а по очереди, в спокойном режиме, заранее импортирует тяжёлые модули страниц и прогревает самые неприятные экраны. Это сделано в public_zapretgui/src/ui/main_window.py:340 и public_zapretgui/src/ui/main_window_pages.py:18, public_zapretgui/src/ui/main_window_pages.py:119. Приоритет я дал тем страницам, на которых вы как раз замечаете лаги: DPI Settings, BlockCheck, Logs, Appearance, Servers, а затем уже остальным. Важно, что я не добавлял кривой обход вида “если долго, то открой старую ветку” и не возвращал legacy- путь. Логика открытия страниц осталась одной и той же, просто тяжёлая подготовка теперь выносится из момента клика пользователя в отложенный этап после старта окна. Проверка прошла нормально. Точечный тест на lazy-архитектуру страниц зелёный: python -m pytest private_zapretgui/tests/test_main_window_lazy_wiring.py -q, результат 18 passed. Ещё отдельно прогнал compileall по изменённым файлам, синтаксических ошибок нет. Для этого я добавил и новые тесты в private_zapretgui/tests/test_main_window_lazy_wiring.py:399, чтобы закрепить порядок прогрева тяжёлых страниц и убедиться, что импорт модулей не дублируется. Что было моей задачей и что сейчас происходит в проекте. Задача была понять, почему визуально “почти пустые” страницы открываются медленно, хотя интерфейс вроде бы не должен делать тяжёлую работу прямо на нажатии. По итогам разбора выяснилось, что реальный тормоз сидел в архитектуре lazy-страниц: ленивость была полезна для старта приложения, но плата за это переносилась на первый клик по странице. Сейчас проект устроен так: главное окно по-прежнему использует ленивый реестр страниц, но после старта оно дополнительно делает мягкий прогрев тяжёлых экранов, чтобы пользователь не ловил подвисание в момент навигации. Проще говоря, раньше тяжёлая подготовка происходила “когда вы уже нажали”, а теперь она уходит в отложенную фазу после показа основного окна. Если захотите, следующим шагом я могу по

👤 Автор: loop-uh
🔗 SHA: bc1785f

📊 Статистика: 2 files changed, 137 insertions(+)

📁 Изменённые файлы:
✏️ src/ui/main_window.py
✏️ src/ui/main_window_pages.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/zapret

📝 акетные lazy-экспорты сработали очень заметно: тот же ui.pages.zapret1 упал примерно с 1772 ms до 50 ms на грубом импорте. Сейчас дождусь итогового статуса тестов и потом сведу всё, что уже вырезано из старой архитектуры.

👤 Автор: loop-uh
🔗 SHA: 8126884

📊 Статистика: 42 files changed, 2068 insertions(+), 1755 deletions(-)

📁 Изменённые файлы:
✏️ src/main.py
✏️ src/ui/main_window_navigation_build.py
✏️ src/ui/main_window_pages.py
✏️ src/ui/pages/about_page.py
✏️ src/ui/pages/appearance_page.py
✏️ src/ui/pages/autostart_page.py
✏️ src/ui/pages/base_page.py
✏️ src/ui/pages/blobs_page.py
✏️ src/ui/pages/blockcheck_page.py
✏️ src/ui/pages/control_page.py
✏️ src/ui/pages/custom_domains_page.py
✏️ src/ui/pages/custom_ipset_page.py
✏️ src/ui/pages/dns_check_page.py
✏️ src/ui/pages/dpi_settings_page.py
✏️ src/ui/pages/home_page.py
✏️ src/ui/pages/hostlist_page.py
✏️ src/ui/pages/hosts_page.py
✏️ src/ui/pages/ipset_page.py
✏️ src/ui/pages/logs_page.py
✏️ src/ui/pages/netrogat_page.py
✏️ src/ui/pages/network_page.py
✏️ src/ui/pages/orchestra/__init__.py
✏️ src/ui/pages/orchestra_page.py
✏️ src/ui/pages/orchestra_zapret2/__init__.py
✏️ src/ui/pages/premium_page.py
✏️ src/ui/pages/servers_page.py
✏️ src/ui/pages/strategy_scan_page.py
✏️ src/ui/pages/support_page.py
✏️ src/ui/pages/telegram_proxy_page.py
✏️ src/ui/pages/user_presets_runtime.py
✏️ src/ui/pages/zapret1/__init__.py
✏️ src/ui/pages/zapret1/direct_control_page.py
✏️ src/ui/pages/zapret1/strategy_detail_page_v1.py
✏️ src/ui/pages/zapret1/user_presets_page.py
✏️ src/ui/pages/zapret2/__init__.py
✏️ src/ui/pages/zapret2/direct_control_page.py
✏️ src/ui/pages/zapret2/strategy_detail_page.py
✏️ src/ui/pages/zapret2/user_presets_page.py
🆕 src/ui/widgets/win11_controls.py
✏️ src/updater/__init__.py
🆕 src/updater/server_status_workers.py
🆕 src/updater/update_page_controller.py

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит

📝 vault backup: 2026-04-07 12:46:29

👤 Автор: fuckyou
📅 Дата: 07.04.2026 09:46:29
🔗 SHA: 466becf

📊 Статистика:
➕ Добавлено: 424 строк
➖ Удалено: 0 строк
📝 Всего изменений: 424

📁 Изменено файлов: 1

🆕 VLESS-SOCKS5-vulnerability.md
+424 -0

Добавилось:
# Критическая уязвимость VLESS-клиентов: неаутентифицированный SOCKS5 на localhost

**Дата публикации:** 7 апреля 2026

**Источник:** [runetfreedom — ntc.party](https://ntc.party/t/topic/), [Habr](https://habr.com/ru/...

**POC:** [github.com/runetfreedom/per-app-split-bypass-poc](https://github.com/runetfreedom/per-a...

**Severity:** Critical (массовая эксплуатация неизбежна)

---

## TL;DR

Все популярные VLESS/xray/sing-box клиенты создают на localhost SOCKS5-прокси **без аутентификаци...

---

## 1. Предпосылки

... и еще 306 строк

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/todo

📝 vault backup: 2026-04-07 12:46:29

👤 Автор: fuckyou
🔗 SHA: 466becf

📊 Статистика: 1 file changed, 424 insertions(+)

📁 Изменённые файлы:
🆕 VLESS-SOCKS5-vulnerability.md\n
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит

📝 vault backup: 2026-04-07 12:54:52

👤 Автор: fuckyou
📅 Дата: 07.04.2026 09:54:52
🔗 SHA: c74b423

📊 Статистика:
➕ Добавлено: 788 строк
➖ Удалено: 0 строк
📝 Всего изменений: 788

📁 Изменено файлов: 1

🆕 Localhost-tracking-Meta-Yandex-SOCKS5.md
+788 -0

Добавилось:
# Localhost-атака: как Meta, Яндекс и шпионское ПО эксплуатируют loopback-интерфейс

**Дата:** 7 апреля 2026

**Статус:** Верифицировано — исследование USENIX Security 26, POC опубликован

**Оригинал исследования:** [localmess.github.io](https://localmess.github.io/)

**Научная статья:** [Bridges to Self: Silent Web-to-App Tracking on Mobile via Localhost](https:/...

**POC (Meta/Яндекс):** [github.com/localmess/localhost-abuse](https://github.com/localmess/localh...

**POC (VLESS обход split tunneling):** [github.com/runetfreedom/per-app-split-bypass-poc](https:/...

---

## Оглавление

1. [Корневая проблема: архитектура loopback в ОС](#1-корневая-проблема-архитектура-loopback-в-ос)

... и еще 609 строк

🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/todo

📝 vault backup: 2026-04-07 12:54:52

👤 Автор: fuckyou
🔗 SHA: c74b423

📊 Статистика: 1 file changed, 788 insertions(+)

📁 Изменённые файлы:
🆕 Localhost-tracking-Meta-Yandex-SOCKS5.md\n
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит

📝 vault backup: 2026-04-07 12:55:34

👤 Автор: fuckyou
📅 Дата: 07.04.2026 09:55:34
🔗 SHA: 4b0d7f1

📊 Статистика:
➕ Добавлено: 1 строк
➖ Удалено: 1 строк
📝 Всего изменений: 2

📁 Изменено файлов: 1

✏️ VLESS-SOCKS5-vulnerability.md
+1 -1

Удалилось:
Яндекс **уже использовал** подобную технику ранее (сканирование localhost для обнаружения прокси).


Добавилось:
Яндекс **уже использовал** подобную технику ранее ([[Localhost-tracking-Meta-Yandex-SOCKS5|сканир...


🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/todo

📝 vault backup: 2026-04-07 12:55:34

👤 Автор: fuckyou
🔗 SHA: 4b0d7f1

📊 Статистика: 1 file changed, 1 insertion(+), 1 deletion(-)

📁 Изменённые файлы:
✏️ VLESS-SOCKS5-vulnerability.md\n
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord

🔔 Новый коммит в youtubediscord/todo

📝 vault backup: 2026-04-07 13:07:16

👤 Автор: fuckyou
🔗 SHA: 796e43d

📊 Статистика: 1 file changed, 1114 insertions(+)

📁 Изменённые файлы:
🆕 VLESS-localhost-protection-guide.md\n
🔗 Открыть на GitHub