132 Commits

Author SHA1 Message Date
Flowseal
4180d36b68 Version bump 2025-12-28 06:00:34 +03:00
Flowseal
5033f20594 Update hosts and readme instructions 2025-12-28 05:59:29 +03:00
Flowseal
789254328a hosts for finnish discord voice channels 2025-12-28 05:47:44 +03:00
pandatick
f754baa650 Include all .bat instead general-*.bat (#7879) 2025-12-28 05:08:10 +03:00
Matvey Beloded
04df4830e7 Fixed script termination if no option was selected in 'Install Service' (#7897) 2025-12-28 05:07:52 +03:00
FlowersOfMind
e20eecd37c fix freezing on tests and best strategy choosing (#7853) 2025-12-28 05:07:44 +03:00
Flowseal
8a1885d7d0 fix typo 2025-12-25 21:00:31 +03:00
Flowseal
d2cf5c005c Readme update 2025-12-25 18:32:59 +03:00
Flowseal
59f26cc148 new strategies 2025-12-25 17:06:47 +03:00
Flowseal
ab727a9094 version bump 2025-12-25 16:52:29 +03:00
Flowseal
a7f23f17f4 archive extraction msg fix 2025-12-25 16:37:00 +03:00
Flowseal
95a23d6bf5 alt3 strategy rework 2025-12-25 16:29:13 +03:00
Flowseal
e88c07d0ec badseq inc 10000000 to 2 2025-12-25 16:18:05 +03:00
Flowseal
2d8f7c0c1f fake discord and stun blob 2025-12-25 16:10:41 +03:00
Flowseal
028c9badf6 ps1 gitattributes 2025-12-25 16:04:43 +03:00
Flowseal
454b12c9fb domain discordstatus.com 2025-12-25 16:03:31 +03:00
Flowseal
528b707bab check for acrhive extraction 2025-12-25 16:02:48 +03:00
Flowseal
651342d06f external commands check 2025-12-25 15:57:15 +03:00
FlowersOfMind
621a501d03 fix window closing on error (#7756) 2025-12-25 15:42:15 +03:00
Flowseal
ada3a43664 change ipset to any only if dpi checking 2025-12-24 18:14:02 +03:00
Flowseal
56977c45a1 utils folder; check updates switcher 2025-12-24 17:53:33 +03:00
harmonicano
5a2b7d5e52 Исправление дублирования имён сервисов в проверке на VPN (#7369) 2025-12-24 14:07:18 +03:00
FlowersOfMind
4f7d1bb9d0 zapret configs test script added (#7029) 2025-12-24 14:06:57 +03:00
lxstwxrden
51cbdb2180 max.ru tls 1.3 update (#7600) 2025-12-24 13:59:00 +03:00
Flowseal
6b33dd5600 Improved diagnostics 2025-12-13 16:54:59 +03:00
Yevgeny Kungurov
d40ae860e1 README update (#5497) 2025-12-13 16:52:14 +03:00
Yevgeny Kungurov
a725b3eb65 Improved diagnostics (#6488) 2025-12-13 16:51:59 +03:00
harmonicano
f3556ec9c8 Вывод сервисов VPN в диагностиках (#6135) 2025-12-13 16:50:06 +03:00
Yevgeny Kungurov
52fd70e98a Fix service_check_updates (#7184) 2025-12-13 16:49:18 +03:00
Flowseal
cee87db301 Update IPSet 2025-12-13 16:48:29 +03:00
lxstwxrden
6e299fce26 Update IPSet (#7136) 2025-12-13 16:47:18 +03:00
lxstwxrden
bab2426685 Дамп TLS ClientHello с Макса(max.ru) (#6645) 2025-12-13 16:46:54 +03:00
Flowseal
c341cfce2d Update ipset-exclude.txt 2025-12-13 16:46:29 +03:00
Yevgeny Kungurov
b4e9e2a778 Update ipset-exclude.txt (#6419) 2025-12-13 16:45:06 +03:00
lxstwxrden
0bb36b8345 fix readme mistake (#6160) 2025-10-31 20:02:13 +03:00
Flowseal
6fa7bbfd99 Упрощение и обновление readme 2025-10-29 21:03:28 +03:00
Flowseal
e5c16c26dd Version bump 2025-10-29 20:53:43 +03:00
Flowseal
e5e03903a3 fix for UDP GameFilter profile search failed because of hostlist 2025-10-29 20:51:53 +03:00
Flowseal
7caf18f067 Version bump 2025-10-29 16:58:55 +03:00
Flowseal
5de4f57df4 normalize line endings 2025-10-29 16:54:27 +03:00
Flowseal
b9ec911ef4 gitattributes 2025-10-29 16:53:44 +03:00
Flowseal
dc417adf7b Ipset empty mode renamed to none; new mode - any 2025-10-29 16:53:06 +03:00
Flowseal
72d93b88c6 Ipset update from V3nilla's list 2025-10-29 16:33:49 +03:00
Flowseal
2017b60d0c alt9 missed hostlist 2025-10-29 16:23:55 +03:00
Flowseal
ed4d52108b General strategy changed to custom fake 2025-10-29 16:21:52 +03:00
Flowseal
fe6e10e861 new ALT9 with hostfakesplit 2025-10-29 16:14:48 +03:00
Flowseal
e97d00946c ALT9 renamed to ALT10 2025-10-29 16:14:36 +03:00
Flowseal
ae99645851 Exclude lists 2025-10-29 15:47:35 +03:00
Flowseal
2f46d349e3 Split list for google services 2025-10-29 14:19:56 +03:00
Flowseal
770c25bceb Alt4 new fooling 2025-10-29 14:07:21 +03:00
Flowseal
4239338f41 Separate youtube strategy for 4pda fake 2025-10-29 13:50:42 +03:00
Flowseal
8970cd4ede alt9 fake reorder 2025-10-28 16:46:14 +03:00
Flowseal
dd6f1b6c6e Merged tcp80 to tcp443 2025-10-28 16:32:20 +03:00
Flowseal
97bfe7301b New stategy with 4pda fake - ALT9 2025-10-28 16:16:10 +03:00
Flowseal
5caadc8fcf Merge branch 'main' of https://github.com/Flowseal/zapret-discord-youtube 2025-10-28 16:06:09 +03:00
lxstwxrden
1c694cf9cc General ALT8 - Хотфикс (#5572) 2025-10-28 16:05:40 +03:00
Flowseal
7f086ae776 latest winws from win bundle 2025-10-28 16:05:22 +03:00
lxstwxrden
3fa8f33f79 winws.exe - v72.2 (#5604) 2025-10-28 16:01:03 +03:00
lxstwxrden
adf4927fb2 ECH Fix (#5625) 2025-10-28 15:59:08 +03:00
Yevgeny Kungurov
4f617f31e9 Add cloudflare services (#5947) 2025-10-28 15:58:23 +03:00
Flowseal
cd21d074ca Fakes warning 2025-10-06 20:06:28 +03:00
Flowseal
778f6d4c0f Version bump 2025-10-04 14:58:13 +03:00
Flowseal
1c05e1b2d3 Readme update 2025-10-04 14:57:31 +03:00
Flowseal
7afb2cf364 Rename MGTS strategies to SIMPLE FAKE 2025-10-04 14:49:22 +03:00
Flowseal
e548374644 Strategies update 2025-10-04 14:48:11 +03:00
Flowseal
5c6e6a56de Diagnostics: add proxy check, fix windivert check 2025-10-04 14:34:00 +03:00
Flowseal
f933c41ac4 Merge branch 'main' of https://github.com/Flowseal/zapret-discord-youtube 2025-10-04 14:23:57 +03:00
lxstwxrden
68a89148f1 general (ALT8) (#5091) 2025-10-04 14:20:37 +03:00
Evgeniy
0a513b9409 Add hetzner to ipset setting (#5239) 2025-10-04 14:20:20 +03:00
Flowseal
4a05ad518f fakedsplit future expansion support 2025-10-04 14:18:13 +03:00
Yevgeny Kungurov
9c302f1bbf README update (#5422) 2025-10-03 23:37:53 +03:00
Flowseal
0949686499 diagnostics variables pre-set 2025-09-20 17:36:51 +03:00
Flowseal
2a4e602621 typo 2025-09-20 17:04:23 +03:00
Flowseal
10ae6c6cf2 Fix for args with value 2025-09-14 21:48:41 +03:00
Flowseal
875be6bf67 ipset switch fix 2025-09-10 02:32:39 +03:00
Flowseal
8e8156472a Version readability fix 2025-09-10 01:43:47 +03:00
Flowseal
105e2cd302 Version bump 2025-09-09 20:51:58 +03:00
Flowseal
3eb9afdf52 Updated discord ports 2025-09-09 20:51:13 +03:00
Flowseal
733c14d37a Strategies upd 2025-09-09 20:28:22 +03:00
Flowseal
4743104fe0 Changed ipset placeholder to unused (test-net-3) 2025-09-09 20:22:16 +03:00
Flowseal
46b1ce93dc Version display 2025-09-09 19:56:14 +03:00
Flowseal
25e01f021d README update 2025-09-09 19:49:52 +03:00
Flowseal
98d637d8b3 Fix exclamation mark 2025-09-09 19:01:31 +03:00
Flowseal
586aeca80c Timestamps enable implementation 2025-09-09 17:15:41 +03:00
Flowseal
72294fa261 Text improvements 2025-09-08 14:32:52 +03:00
Yevgeny Kungurov
d3d1569572 DNS check update (#4765) 2025-09-08 14:29:56 +03:00
lxstwxrden
7b9673764d v71.3 + v71.4 (#4886) 2025-09-08 14:29:27 +03:00
Yevgeny Kungurov
bf924b803f Change failed update message (#5007) 2025-09-08 14:28:51 +03:00
Flowseal
a609396772 Remove unused arg 2025-08-28 19:22:47 +03:00
Flowseal
7e52c9790a Remove strategy source output if no service installed 2025-08-15 19:55:19 +03:00
Flowseal
731013a010 Improved "Remove Services", "Check Status" output. Added some conflicts check in diagnostics. 2025-08-15 19:13:10 +03:00
Flowseal
adbe23b167 Base Filtering Engine check 2025-08-15 17:47:17 +03:00
Flowseal
89a9ada900 DNS check update 2025-08-15 17:43:31 +03:00
Flowseal
32bc3939b2 Version bump 2025-07-29 20:33:27 +03:00
Flowseal
80f1ba0570 Icon fix 2025-07-29 20:32:29 +03:00
Flowseal
3db34875e1 Update refactoring 2025-07-29 20:25:19 +03:00
max-pulya
efeee9d4cd Улучшение системы обновления, что бы она не мешала запуску запрета (#4143) 2025-07-29 20:16:20 +03:00
Yevgeny Kungurov
ddbb863649 Fix problem related to not wokring Wi-Fi (#4308) 2025-07-29 19:59:53 +03:00
Flowseal
cfec4f6963 actions stale test 2025-07-09 04:10:47 +03:00
Flowseal
2ca69a8252 Merge branch 'main' of https://github.com/Flowseal/zapret-discord-youtube 2025-07-09 04:07:32 +03:00
Flowseal
1955a838f3 actions stale update 2025-07-09 04:07:23 +03:00
Dronatar
f684e33754 Update service.bat (#4109)
Небольшое исправление вывода имени ранее установленного сервиса
2025-07-09 03:49:41 +03:00
allkeltysss
4a3ce73378 Исправлена проблема с обновлением списка ipset (#4065) 2025-07-07 12:36:35 +03:00
Flowseal
cc52322fe5 Version bump 2025-07-04 14:48:41 +03:00
Flowseal
2cd68f24f1 Cosmetic changes for service status 2025-07-04 14:47:17 +03:00
Dronatar
13444ab388 Информация о том, какой файл был установлен сервисом (#3890)
information about which file was installed by the service
2025-07-04 14:45:20 +03:00
Flowseal
b23ef448d7 Синонимы заменены на актуальные значения 2025-07-04 14:36:39 +03:00
Flowseal
83a6efa135 Updated auto comment action 2025-07-04 13:48:31 +03:00
Flowseal
fa32c6661c Added intel connectivity network check 2025-07-04 13:48:21 +03:00
Flowseal
ba78a8e6c8 permissions for actions 2025-07-03 23:07:18 +03:00
Flowseal
c96152664f Actions for issues 2025-07-03 23:00:57 +03:00
Flowseal
86e7e06274 IPSet and game filter disabled by default 2025-07-03 22:10:12 +03:00
Flowseal
163bb7613c strategies fixes 2025-07-03 22:01:40 +03:00
unknown
f76d4cf376 Readme update 2025-06-20 14:57:29 +03:00
unknown
7f7831d82a Version bump 2025-06-20 14:55:58 +03:00
unknown
a4425d7b6e Added Game filter for TCP 2025-06-20 14:54:26 +03:00
unknown
653d01b224 Added 2 new strategies, added warning in service.bat after switching game filter 2025-06-20 14:39:45 +03:00
unknown
cf03dd0c3d Version bump 2025-06-17 17:33:06 +03:00
unknown
105978ee43 Readme update 2025-06-17 17:30:18 +03:00
unknown
6b71827a3b Check Status improvements 2025-06-17 16:53:14 +03:00
unknown
702e7cd13f Support stop for separate discord strategy 2025-06-17 16:36:25 +03:00
unknown
c8eb80b4c6 Game filter compatability with service installer 2025-06-17 15:41:32 +03:00
unknown
8d2deff133 Game filter for standalone strategies 2025-06-17 15:25:52 +03:00
unknown
3ef216b71b Fixed DelayedExpansion, game filter template 2025-06-17 03:47:27 +03:00
unknown
785b8de6d2 added update ipset script 2025-06-16 22:53:13 +03:00
unknown
faed518d0c ipset from V3nilla, new logic for ipset switch 2025-06-16 17:53:31 +03:00
unknown
50a6d390f7 strategies rename 2025-06-16 17:00:03 +03:00
lxstwxrden
e0455fcbfc Новая стратегия - FAKE TLS MOD AUTO ALT (#2970) 2025-06-16 16:54:07 +03:00
unknown
df54a4ea72 winws update 2025-06-16 16:47:11 +03:00
KG7x
7a55a2f3cd Автоматическая подстановка имени тайтла из имени батника (#2754) 2025-06-16 16:44:42 +03:00
Yevgeny Kungurov
8a30df6f03 Update TLS MOD AUTO (#3372) 2025-06-16 16:37:16 +03:00
Dronatar
779853740f Обновление YouTube в list-general.txt 2025-06-15 20:48:35 +03:00
49 changed files with 26530 additions and 421 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
*.bat text eol=crlf
*.ps1 text eol=crlf

View File

@@ -1,60 +1,60 @@
name: 🐛 Проблема
title: '[Проблема] '
description: Сообщить о проблеме
labels: ['type: проблема', 'status: нуждается в сортировке']
body:
- type: checkboxes
id: checklist
attributes:
label: ⚠️ Чеклист
description: Перед созданием нового Issue, удостоверьтесь что выполнили следующие пункты
options:
- label: Я искал решение проблемы в [README](https://github.com/Flowseal/zapret-discord-youtube/blob/main/README.md) и среди [Issues](https://github.com/Flowseal/zapret-discord-youtube/issues)
- label: Я скачал ``zapret-discord-youtube`` из [релизов официального репозитория](https://github.com/Flowseal/zapret-discord-youtube/releases)
- type: textarea
id: description
attributes:
label: Опишите вашу проблему
description: Чётко опишите проблему с которой вы столкнулись
placeholder: Описание проблемы
validations:
required: true
- type: textarea
id: version
attributes:
label: Версия zapret-discord-youtube
description: Версия zapret-discord-youtube на которой вы словили проблему
placeholder: Версия
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Шаги воспроизведения проблемы
description: Шаги по воспроизведению поведения (вашей проблемы).
placeholder: |
Напишите здесь шаги, с помощью которых можно повторить вашу проблему
на других компьютерах
- type: textarea
id: bat-name
attributes:
label: Какой .bat файл вы используете?
validations:
required: true
- type: textarea
id: other-bat
attributes:
label: Использовали ли вы другие .bat?
description: Пробовали ли вы использовать другой .bat для устранения проблемы? Если использовали, то какие?
- type: textarea
id: additions
attributes:
label: Дополнительные детали
description: Дополнительные детали о которых нам нужно знать
name: 🐛 Проблема
title: '[Проблема] '
description: Сообщить о проблеме
labels: ['type: проблема', 'status: нуждается в сортировке']
body:
- type: checkboxes
id: checklist
attributes:
label: ⚠️ Чеклист
description: Перед созданием нового Issue, удостоверьтесь что выполнили следующие пункты
options:
- label: Я искал решение проблемы в [README](https://github.com/Flowseal/zapret-discord-youtube/blob/main/README.md) и среди [Issues](https://github.com/Flowseal/zapret-discord-youtube/issues)
- label: Я скачал ``zapret-discord-youtube`` из [релизов официального репозитория](https://github.com/Flowseal/zapret-discord-youtube/releases)
- type: textarea
id: description
attributes:
label: Опишите вашу проблему
description: Чётко опишите проблему с которой вы столкнулись
placeholder: Описание проблемы
validations:
required: true
- type: textarea
id: version
attributes:
label: Версия zapret-discord-youtube
description: Версия zapret-discord-youtube на которой вы словили проблему
placeholder: Версия
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Шаги воспроизведения проблемы
description: Шаги по воспроизведению поведения (вашей проблемы).
placeholder: |
Напишите здесь шаги, с помощью которых можно повторить вашу проблему
на других компьютерах
- type: textarea
id: bat-name
attributes:
label: Какой .bat файл вы используете?
validations:
required: true
- type: textarea
id: other-bat
attributes:
label: Использовали ли вы другие .bat?
description: Пробовали ли вы использовать другой .bat для устранения проблемы? Если использовали, то какие?
- type: textarea
id: additions
attributes:
label: Дополнительные детали
description: Дополнительные детали о которых нам нужно знать

51
.github/workflows/comment.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Auto comment on new issues
on:
issues:
types: [opened]
permissions:
issues: write
jobs:
comment:
runs-on: ubuntu-latest
steps:
- name: Comment on new issue
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.issue.number }}
body: |
Пожалуйста, ознакомтесь с README. В нем есть ответы на распространенные вопросы и описание файлов: [README.md](https://github.com/Flowseal/zapret-discord-youtube/blob/main/README.md)
##
### Прежде всего
- Запустите `service.bat` и выберите пункт `Run Diagnostics`, чтобы проверить на конфликтующие сервисы.
- Если у вас проблемы с запуском Discord, то в конце согласитесь на очистку кэша.
- Если не работает / перестала работать стратегия, то попробуйте другие.
- Если у вас проблемы с чем-то, что корректно работает без zapret, то убедитесь, что `Game Filter` (disabled) в `service.bat`. Если это не помогло, то в `service.bat` выберите `Switch ipset`, чтобы он стал (empty)
##
### Не запускаются файлы?
- Убедитесь, что файлы разархивированы
- **Убедитесь, что вы скачали со страницы релизов**, а не с кнопки Code на главной странице репозитория
- Попробуйте запустить service.bat от имени администратора, и выбрать Remove Services для удаления прошлых обходов данного обхода
- Вспомните, использовали ли вы другие обходы (например, GoodbyeDPI). Если да, то удалите их по их же инструкции. Другие обходы, установленные на автозапуск будут мешать запуску zapret
- Отключите антивирусы, различные клинеры с доп. защитой, защитные средства браузера или другое ПО, которое может повредить архив. Перекачайте обход [со страницы релизов](https://github.com/Flowseal/zapret-discord-youtube/releases) и распакуйте в новую папку
- Запустите service.bat и выберите Run Diagnostics, он проверит на возможные распространённые конфликты на вашем компьютере
- Попробуйте отключить другие прокси / VPN
- "Служба базовой фильтрации" или "Base Filtering Engine" должна быть включена (Win+R -> services.msc)
##
### Не работает игра / сервис / сайт?
- Проверьте работоспособность без обхода:
- **Работает:**
Домен можно удалить в `lists/list-general.txt`
Если это игра или сервис, то можете попробовать выключить `Game Filter` в `service.bat` (требуется перезапуск обхода или переустановка сервиса)
Если не помогло выключение `Game Filter`, то можно найти IP и удалить из `ipset-all.txt`. Если не можете найти IP, то можно выключить фильтрацию по IP в `service.bat` (пункт `Switch Ipset`)
- **Не работает: пробуйте другие стратегии.** Если не помогло, то:
*Если это сайт*, то добавьте домен в `lists/list-general.txt` (поддомены автоматически учитываются).
*Если это игра*, то попробуйте включить `Game Filter` и `ipset` в `service.bat` (требуется перезапуск обхода или переустановка сервиса). Если не помогло, то, возможно, IP не включён в список `ipset-all.txt`; в этом случае необходимо найти его самому и добавить ip/подсеть в упомянутый файл.
**Пробуйте разные стратегии после внесения изменений в случае, если это не сработало**

30
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Close stale issues
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
actions: write
issues: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9.1.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 60
days-before-close: 7
stale-issue-message: '⏳ Issue помечена как неактивная. Она будет закрыта через 7 дней, если не появится новых комментариев.'
close-issue-message: '❌ Issue автоматически закрыта из-за отсутствия активности. Откройте снова при необходимости.'
days-before-pr-stale: -1
days-before-pr-close: -1
exempt-issue-labels: 'pinned,games'
remove-stale-when-updated: true
operations-per-run: 4500

200
.service/hosts Normal file
View File

@@ -0,0 +1,200 @@
104.25.158.178 finland10000.discord.media
104.25.158.178 finland10001.discord.media
104.25.158.178 finland10002.discord.media
104.25.158.178 finland10003.discord.media
104.25.158.178 finland10004.discord.media
104.25.158.178 finland10005.discord.media
104.25.158.178 finland10006.discord.media
104.25.158.178 finland10007.discord.media
104.25.158.178 finland10008.discord.media
104.25.158.178 finland10009.discord.media
104.25.158.178 finland10010.discord.media
104.25.158.178 finland10011.discord.media
104.25.158.178 finland10012.discord.media
104.25.158.178 finland10013.discord.media
104.25.158.178 finland10014.discord.media
104.25.158.178 finland10015.discord.media
104.25.158.178 finland10016.discord.media
104.25.158.178 finland10017.discord.media
104.25.158.178 finland10018.discord.media
104.25.158.178 finland10019.discord.media
104.25.158.178 finland10020.discord.media
104.25.158.178 finland10021.discord.media
104.25.158.178 finland10022.discord.media
104.25.158.178 finland10023.discord.media
104.25.158.178 finland10024.discord.media
104.25.158.178 finland10025.discord.media
104.25.158.178 finland10026.discord.media
104.25.158.178 finland10027.discord.media
104.25.158.178 finland10028.discord.media
104.25.158.178 finland10029.discord.media
104.25.158.178 finland10030.discord.media
104.25.158.178 finland10031.discord.media
104.25.158.178 finland10032.discord.media
104.25.158.178 finland10033.discord.media
104.25.158.178 finland10034.discord.media
104.25.158.178 finland10035.discord.media
104.25.158.178 finland10036.discord.media
104.25.158.178 finland10037.discord.media
104.25.158.178 finland10038.discord.media
104.25.158.178 finland10039.discord.media
104.25.158.178 finland10040.discord.media
104.25.158.178 finland10041.discord.media
104.25.158.178 finland10042.discord.media
104.25.158.178 finland10043.discord.media
104.25.158.178 finland10044.discord.media
104.25.158.178 finland10045.discord.media
104.25.158.178 finland10046.discord.media
104.25.158.178 finland10047.discord.media
104.25.158.178 finland10048.discord.media
104.25.158.178 finland10049.discord.media
104.25.158.178 finland10050.discord.media
104.25.158.178 finland10051.discord.media
104.25.158.178 finland10052.discord.media
104.25.158.178 finland10053.discord.media
104.25.158.178 finland10054.discord.media
104.25.158.178 finland10055.discord.media
104.25.158.178 finland10056.discord.media
104.25.158.178 finland10057.discord.media
104.25.158.178 finland10058.discord.media
104.25.158.178 finland10059.discord.media
104.25.158.178 finland10060.discord.media
104.25.158.178 finland10061.discord.media
104.25.158.178 finland10062.discord.media
104.25.158.178 finland10063.discord.media
104.25.158.178 finland10064.discord.media
104.25.158.178 finland10065.discord.media
104.25.158.178 finland10066.discord.media
104.25.158.178 finland10067.discord.media
104.25.158.178 finland10068.discord.media
104.25.158.178 finland10069.discord.media
104.25.158.178 finland10070.discord.media
104.25.158.178 finland10071.discord.media
104.25.158.178 finland10072.discord.media
104.25.158.178 finland10073.discord.media
104.25.158.178 finland10074.discord.media
104.25.158.178 finland10075.discord.media
104.25.158.178 finland10076.discord.media
104.25.158.178 finland10077.discord.media
104.25.158.178 finland10078.discord.media
104.25.158.178 finland10079.discord.media
104.25.158.178 finland10080.discord.media
104.25.158.178 finland10081.discord.media
104.25.158.178 finland10082.discord.media
104.25.158.178 finland10083.discord.media
104.25.158.178 finland10084.discord.media
104.25.158.178 finland10085.discord.media
104.25.158.178 finland10086.discord.media
104.25.158.178 finland10087.discord.media
104.25.158.178 finland10088.discord.media
104.25.158.178 finland10089.discord.media
104.25.158.178 finland10090.discord.media
104.25.158.178 finland10091.discord.media
104.25.158.178 finland10092.discord.media
104.25.158.178 finland10093.discord.media
104.25.158.178 finland10094.discord.media
104.25.158.178 finland10095.discord.media
104.25.158.178 finland10096.discord.media
104.25.158.178 finland10097.discord.media
104.25.158.178 finland10098.discord.media
104.25.158.178 finland10099.discord.media
104.25.158.178 finland10100.discord.media
104.25.158.178 finland10101.discord.media
104.25.158.178 finland10102.discord.media
104.25.158.178 finland10103.discord.media
104.25.158.178 finland10104.discord.media
104.25.158.178 finland10105.discord.media
104.25.158.178 finland10106.discord.media
104.25.158.178 finland10107.discord.media
104.25.158.178 finland10108.discord.media
104.25.158.178 finland10109.discord.media
104.25.158.178 finland10110.discord.media
104.25.158.178 finland10111.discord.media
104.25.158.178 finland10112.discord.media
104.25.158.178 finland10113.discord.media
104.25.158.178 finland10114.discord.media
104.25.158.178 finland10115.discord.media
104.25.158.178 finland10116.discord.media
104.25.158.178 finland10117.discord.media
104.25.158.178 finland10118.discord.media
104.25.158.178 finland10119.discord.media
104.25.158.178 finland10120.discord.media
104.25.158.178 finland10121.discord.media
104.25.158.178 finland10122.discord.media
104.25.158.178 finland10123.discord.media
104.25.158.178 finland10124.discord.media
104.25.158.178 finland10125.discord.media
104.25.158.178 finland10126.discord.media
104.25.158.178 finland10127.discord.media
104.25.158.178 finland10128.discord.media
104.25.158.178 finland10129.discord.media
104.25.158.178 finland10130.discord.media
104.25.158.178 finland10131.discord.media
104.25.158.178 finland10132.discord.media
104.25.158.178 finland10133.discord.media
104.25.158.178 finland10134.discord.media
104.25.158.178 finland10135.discord.media
104.25.158.178 finland10136.discord.media
104.25.158.178 finland10137.discord.media
104.25.158.178 finland10138.discord.media
104.25.158.178 finland10139.discord.media
104.25.158.178 finland10140.discord.media
104.25.158.178 finland10141.discord.media
104.25.158.178 finland10142.discord.media
104.25.158.178 finland10143.discord.media
104.25.158.178 finland10144.discord.media
104.25.158.178 finland10145.discord.media
104.25.158.178 finland10146.discord.media
104.25.158.178 finland10147.discord.media
104.25.158.178 finland10148.discord.media
104.25.158.178 finland10149.discord.media
104.25.158.178 finland10150.discord.media
104.25.158.178 finland10151.discord.media
104.25.158.178 finland10152.discord.media
104.25.158.178 finland10153.discord.media
104.25.158.178 finland10154.discord.media
104.25.158.178 finland10155.discord.media
104.25.158.178 finland10156.discord.media
104.25.158.178 finland10157.discord.media
104.25.158.178 finland10158.discord.media
104.25.158.178 finland10159.discord.media
104.25.158.178 finland10160.discord.media
104.25.158.178 finland10161.discord.media
104.25.158.178 finland10162.discord.media
104.25.158.178 finland10163.discord.media
104.25.158.178 finland10164.discord.media
104.25.158.178 finland10165.discord.media
104.25.158.178 finland10166.discord.media
104.25.158.178 finland10167.discord.media
104.25.158.178 finland10168.discord.media
104.25.158.178 finland10169.discord.media
104.25.158.178 finland10170.discord.media
104.25.158.178 finland10171.discord.media
104.25.158.178 finland10172.discord.media
104.25.158.178 finland10173.discord.media
104.25.158.178 finland10174.discord.media
104.25.158.178 finland10175.discord.media
104.25.158.178 finland10176.discord.media
104.25.158.178 finland10177.discord.media
104.25.158.178 finland10178.discord.media
104.25.158.178 finland10179.discord.media
104.25.158.178 finland10180.discord.media
104.25.158.178 finland10181.discord.media
104.25.158.178 finland10182.discord.media
104.25.158.178 finland10183.discord.media
104.25.158.178 finland10184.discord.media
104.25.158.178 finland10185.discord.media
104.25.158.178 finland10186.discord.media
104.25.158.178 finland10187.discord.media
104.25.158.178 finland10188.discord.media
104.25.158.178 finland10189.discord.media
104.25.158.178 finland10190.discord.media
104.25.158.178 finland10191.discord.media
104.25.158.178 finland10192.discord.media
104.25.158.178 finland10193.discord.media
104.25.158.178 finland10194.discord.media
104.25.158.178 finland10195.discord.media
104.25.158.178 finland10196.discord.media
104.25.158.178 finland10197.discord.media
104.25.158.178 finland10198.discord.media
104.25.158.178 finland10199.discord.media

12063
.service/ipset-service.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
1.7.2b
1.9.2

140
README.md
View File

@@ -2,13 +2,18 @@
# <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=28 /> <a href="https://github.com/Flowseal/">Flowseal</a><a href="https://github.com/Flowseal/zapret-discord-youtube">/zapret-discord-youtube</a> <img src="https://cdn-icons-png.flaticon.com/128/1384/1384060.png" height=28 />
*"Plug & Play"* обход блокировок <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=15 /> Discord и <img src="https://cdn-icons-png.flaticon.com/128/1384/1384060.png" height=15 /> YouTube для Windows
Альтернатива https://github.com/bol-van/zapret-win-bundle
Альтернатива https://github.com/bol-van/zapret-win-bundle
Также вы можете материально поддержать оригинального разработчика zapret [тут](https://github.com/bol-van/zapret?tab=readme-ov-file#%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0)
</div>
> [!CAUTION]
>
> ### ФЕЙКИ
> Я не веду никакие другие страницы/группы в телеграм/ютуб каналы
> Если вы наткнулись на что-то вне этой страницы гитхаба, что распространяется от моего лица - **ФЕЙК**.
> [!WARNING]
>
> ### АНТИВИРУСЫ
> WinDivert может вызвать реакцию антивируса.
> WinDivert - это инструмент для перехвата и фильтрации трафика, необходимый для работы zapret.
@@ -21,62 +26,108 @@
> **Выдержка из [`readme.md`](https://github.com/bol-van/zapret-win-bundle/blob/master/readme.md#%D0%B0%D0%BD%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D1%83%D1%81%D1%8B) репозитория [bol-van/zapret-win-bundle](https://github.com/bol-van/zapret-win-bundle)*
> [!IMPORTANT]
> Все файлы в папке [`bin`](./bin) взяты из [zapret-win-bundle/zapret-winws](https://github.com/bol-van/zapret-win-bundle/tree/master/zapret-winws). Вы можете это проверить с помощью хэшей/контрольных сумм.
> Все бинарные файлы в папке [`bin`](./bin) взяты из [zapret-win-bundle/zapret-winws](https://github.com/bol-van/zapret-win-bundle/tree/master/zapret-winws). Вы можете это проверить с помощью хэшей/контрольных сумм. Проверяйте, что запускаете, используя сборки из интернета!
## ⚙️Использование
1. Загрузите архив (zip/rar) со [страницы последнего релиза](https://github.com/Flowseal/zapret-discord-youtube/releases/latest)
1. Включите Secure DNS
* В Chrome - "Использовать безопасный DNS", и выбрать поставщика услуг DNS (выбрать вариант, отличный от поставщика по умолчанию)
* В Firefox - "Включить DNS через HTTPS, используя: Максимальную защиту", затем "Выбрать поставщика" и вписать URL поставщика вручную, например можно использовать `https://dns.google/dns-query` (т.к. поставщик Cloudflare может быть заблокирован)
* В Windows 11 поддерживается включение Secure DNS прямо в настройках ОС - [инструкция тут](https://www.howtogeek.com/765940/how-to-enable-dns-over-https-on-windows-11/). Рекомендуется, если вы пользуетесь Windows 11
2. Распакуйте содержимое архива по пути, который не содержит кириллицу/спец. символы
2. Скачайте архив (zip/rar) со [страницы последнего релиза](https://github.com/Flowseal/zapret-discord-youtube/releases/latest)
3. Запустите нужный файл
3. Зайдите в свойства скачанного архива и поставьте галочку "Разблокировать". Если вы используете архиватор 7-Zip или PeaZip, этот шаг можно пропустить
4. Распакуйте содержимое архива по пути, который не содержит кириллицу/спец. символы
5. Запустите нужный файл
## ℹ️Краткие описания файлов
- [**`discord.bat`**](./discord.bat) - запуск со стратегией для обхода блокировки <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=15 /> Discord
- [**`general.bat ...`**](./general.bat) - запуск стратегии вручную
- [**`general.bat`**](./general.bat) - запуск со стратегией для обхода блокировок <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=15 /> Discord и <img src="https://cdn-icons-png.flaticon.com/128/1384/1384060.png" height=12 /> YouTube
Запуск вручную можно использовать для проверки работоспособности стратегий. Работоспособность той или иной стратегии зависит от многих факторов. **Пробуйте разные стратегии (ALT, FAKE и другие), пока не найдёте рабочее для вас решение**
- [**`cloudflare_switch.bat`**](./cloudflare_switch.bat) - включение/выключение обхода Cloudflare *(на деле перетирает список `ipset-cloudflare`, перезапуск после изменения не нужен)*
- [**`service.bat`**](./service.bat) - установка в автозапуск и другие функции:
- <ins>**`Install Service`** - установка любой стратегии в автозапуск (services.msc)</ins>
- **`Remove Services`** - удаление стратегии и WinDivert из служб
- **`Check Status`** - проверка статуса обхода и служб (стратегии на автозапуске и WinDivert)
- **`Run Diagnostics`** - диагностика на распространённые причины, по которым zapret может не работать.
В конце можно очистить кэш <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=11 /> `Discord`, что может помочь, если он неожиданно перестал работать
- **`Check Updates`** - проверка на обновления
- **`Switch Check Updates`** - Вкл/Выкл автоматическую проверку на обновления
- **`Switch Game Filter`** - переключение режима обхода для игр (и других сервисов, использующих UDP и TCP на портах выше 1023).
**После переключения требуется перезапуск стратегии.**
В скобках указан текущий статус (включено/выключено).
- **`Switch ipset`** - переключение режима обхода сервисов из `ipset-all.txt`.
Полезно при тестировании, если не работает ресурс, который без zapret работает
В скобках указан текущий статус:
- `none` - никакие айпи не попадают под проверку
- `loaded` - айпи проверяется на вхождение в список
- `any` - любой айпи попадает под фильтр
- **`Update ipset list`** - обновление списка `ipset-all.txt` актуальным из репозитория
- **`Update hosts file`** - обновление файла hosts <ins>**для починки подключения к голосовому чату Discord**</ins>
- **`Run Tests`** - запуск утилиты для проверки стратегий на работоспособность:
- `Standard tests` - проверка сайтов из `utils/targets.txt`
- `DPI checkers` - проверка DPI на различных провайдерах (Cloudflare, Amazon и др.)
- [**`service.bat`**](./service.bat) - установка на автозапуск (`Install Service`), удаление из автозапуска (`Remove Services`), проверка сервисов, диагностика, проверка обновлений
## ☑️Распространенные проблемы
## ☑️Распространенные вопросы и проблемы
### Не работает <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=18 /> Discord
### После запуска скрипта `general*` ничего не происходит
- См. [#252](https://github.com/Flowseal/zapret-discord-youtube/discussions/252)
- После запуска стратегии (отдельным bat файлом, не через service), должен открыться winws.exe (обход), который можно увидеть в панели задач.
Если этого не произошло, то см. [#522](https://github.com/Flowseal/zapret-discord-youtube/issues/522)
### Не работает <img src="https://cdn-icons-png.flaticon.com/128/1384/1384060.png" height=18 /> YouTube
### Бесконечное "подключение" к голосовому чату Discord
Запустите **`service.bat`**, выберите пункт **`Update hosts file (for discord voice)`**. После чего, если ваш hosts будет неактуальным, то Вам будет предложено обновить его самостоятельно:
-опируйте весь текст из открывшегося блокнота
- Откройте файл `hosts` в появившейся папке с помощью текстового редактора
- Добавьте в конец файла `hosts` то, что скопировали (или замените, если до этого Вы уже добавляли подобное)
- Сохраните и перепроверьте подключение. Если не работает - убедитесь, что файл `hosts` действительно сохранился.
- См. [#251](https://github.com/Flowseal/zapret-discord-youtube/discussions/251)
### Обход не работает
### Обход не работает / перестал работать
> [!IMPORTANT]
> **Стратегии блокировок со временем изменяются.**
> Определенная стратегия обхода zapret может работать какое-то время, но если меняется способ блокировки или обнаружения обхода блокировки, то она перестанет работать.
> **Стратегии со временем могут переставать работать.**
> Определенная стратегия может работать какое-то время, но со временем она может переставать работать из-за обнаружения.
> В репозитории представлены множество различных стратегий для обхода. Если ни одна из них вам не помогает, то вам необходимо создать новую, взяв за основу одну из представленных здесь и изменив её параметры.
> Информацию про параметры стратегий вы можете найти [тут](https://github.com/bol-van/zapret/blob/master/docs/readme.md#nfqws).
- Проверьте другие стратегии (**`ALT`**/**`МГТС`**)
- Проверьте, чтобы не было ошибок в `service.bat` -> `Run Diagnostics`
- Обновите файлы в папке [`bin`](./bin), взяв новые из [zapret-win-bundle/zapret-winws](https://github.com/bol-van/zapret-win-bundle/tree/master/zapret-winws)
- Убедитесь, что адрес ресурса записан в списках доменов или IP
- Проверьте другие стратегии (**`ALT`**/**`FAKE`** и другие)
- Попробуйте полную переустановку (см. раздел ниже)
- См. [#765](https://github.com/Flowseal/zapret-discord-youtube/issues/765)
### Файлы не запускаются
### Как переустновить/обновить полностью?
- Сохраните ресурсы/данные, которые вы сами добавляли
- Перезапустите устройство
- `service.bat` -> `Remove Services`
- `service.bat` -> `Run Diagnostics` (если есть ошибки - устраните их) -> в конце Y
- Удалите папку с запретом
- Скачайте последнюю версию [со страницы релизов](https://github.com/Flowseal/zapret-discord-youtube/releases) (`zapret-discord-youtube-...`)
- Распакуйте в новую папку в корне диска (без спец. символов и пробелов)
- Далее пробуйте запускать различные `general` скрипты (стратегии). Проверьте доступность интернет ресурсов - если не работают, то закрывайте программу (в панели задач иконка замочка) и пробуйте другую стратегию
- Как найдёте рабочую стратегию, можете поставить её на автозапуск: `service.bat` -> `Install Service` -> выбираете нужную
- См. [#522](https://github.com/Flowseal/zapret-discord-youtube/issues/522)
### Не работает игра/приложение с включённым запретом
- Проверьте, что в service.bat `Game Filter` **`disabled`**, а `ipset` **`empty`**. Иначе это может затронуть доступность ресурсов, которых вы не ожидали.
### Античит ругается на WinDivert
- Прочитайте инструкцию тут - https://github.com/bol-van/zapret-win-bundle/tree/master/windivert-hide
### Требуется цифровая подпись драйвера WinDivert (Windows 7)
- Замените файлы `WinDivert.dll` и `WinDivert64.sys` в папке [`bin`](./bin) на одноименные из [zapret-win-bundle/win7](https://github.com/bol-van/zapret-win-bundle/tree/master/win7)
### Не работает вместе с VPN
- Отключите функцию **TUN** (Tunneling) в настройках вашего VPN
### При удалении с помощью [**`service.bat`**](./service.bat), WinDivert остается в службах
1. Узнайте название службы с помощью команды, в командной строке Windows (Win+R, `cmd`):
@@ -88,29 +139,42 @@ driverquery | find "Divert"
2. Остановите и удалите службу командами:
```cmd
sc stop {название, которые вы узнали в шаге 1}
sc stop название_из_первогоага
sc delete {название, которые вы узнали в шаге 1}
sc delete название_из_первогоага
```
### Не работает <img src="https://cdn-icons-png.flaticon.com/128/1384/1384060.png" height=18 /> YouTube
- Убедитесь что вы настроили Secure DNS.
- Отключите блокировщик рекламы, известно что YouTube начал с ними бороться.
- Пробуйте все другие стратегии (если раньше работало, но перестало).
- См. также [#251](https://github.com/Flowseal/zapret-discord-youtube/discussions/251)
### Не работает <img src="https://cdn-icons-png.flaticon.com/128/5968/5968756.png" height=18 /> Discord
- Желательно сначала узнать, на какой стратегии открывается сайт YouTube. Запустите эту стратегию.
- Проверьте Discord в браузере: https://discord.com/app. В браузере работает? Если работает, то можете пользоваться в нём.
- Если Discord и в браузере не работает, убедитесь что вы настроили Secure DNS, и после этого ещё раз пробуйте все стратегии. Бывает такое, что на одной стратегии YouTube работает, а Discord нет.
- См. также [#252](https://github.com/Flowseal/zapret-discord-youtube/discussions/252)
### Не нашли своей проблемы
* Создайте её [тут](https://github.com/Flowseal/zapret-discord-youtube/issues)
## 🗒️Добавление адресов прочих заблокированных ресурсов
## 🗒️Добавление адресов прочих ресурсов
Список блокирующихся адресов для обхода можно расширить, добавляя их в:
- [`list-general.txt`](./list-general.txt) для файлов `general *.bat`
- [`list-discord.txt`](./list-discord.txt) для файла [`discord.bat`](./discord.bat)
> [!IMPORTANT]
> После обновления списка адресов zapret необходимо перезапустить.
Список адресов для обхода можно расширить, добавляя их в:
- [`list-general.txt`](./lists/list-general.txt) для доменов (поддомены автоматически учитываются)
- [`list-exclude.txt`](./lists/list-exclude.txt) для исключения доменов (например, если айпи сети указан в `ipset-all.txt`, но конкретный домен из этой сети не надо фильтровать)
- [`ipset-all.txt`](./lists/ipset-all.txt) для IP и подсетей
- [`ipset-exclude.txt`](./lists/ipset-exclude.txt) для исключения IP и подсетей
## ⭐Поддержка проекта
Вы можете поддержать проект, поставив :star: этому репозиторию (сверху справа этой страницы)
Также, вы можете материально поддержать разработчика zapret [тут](https://github.com/bol-van/zapret/issues/590#issuecomment-2408866758)
Также вы можете материально поддержать оригинального разработчика zapret [тут](https://github.com/bol-van/zapret?tab=readme-ov-file#%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0)
<a href="https://star-history.com/#Flowseal/zapret-discord-youtube&Date">
<picture>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,50 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
:: Admin rights check
if "%1"=="admin" (
echo Started with admin rights
) else (
echo Requesting admin rights...
powershell -Command "Start-Process 'cmd.exe' -ArgumentList '/c \"\"%~f0\" admin\"' -Verb RunAs"
exit /b
)
set "LISTS=%~dp0lists\"
set "FILE=%LISTS%ipset-cloudflare.txt"
if not exist "%FILE%" (
echo Error! ipset-cloudflare.txt not found, path: %FILE%
goto :eof
)
findstr /C:"0.0.0.0" "%FILE%" >nul
if %ERRORLEVEL%==0 (
echo Enabling cloudflare bypass...
>"%FILE%" (
echo 173.245.48.0/20
echo 103.21.244.0/22
echo 103.22.200.0/22
echo 103.31.4.0/22
echo 141.101.64.0/18
echo 108.162.192.0/18
echo 190.93.240.0/20
echo 188.114.96.0/20
echo 197.234.240.0/22
echo 198.41.128.0/17
echo 162.158.0.0/15
echo 104.16.0.0/13
echo 104.24.0.0/14
echo 172.64.0.0/13
echo 131.0.72.0/22
)
) else (
echo Disabling cloudflare bypass...
>"%FILE%" (
echo 0.0.0.0/32
)
)
echo Done.
pause

View File

@@ -1,16 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: discord" /min "%BIN%winws.exe" --wf-tcp=443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-discord.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=443 --hostlist="%LISTS%list-discord.txt" --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-autottl --dpi-desync-fooling=badseq --dpi-desync-repeats=8

View File

@@ -5,16 +5,19 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general (ALT)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split --dpi-desync-autottl=5 --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split --dpi-desync-autottl=5 --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3

23
general (ALT10).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-tls-mod=none --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-tls-mod=none --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls=^! --dpi-desync-fake-tls-mod=rnd,sni=www.google.com --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-tls-mod=none --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

23
general (ALT11).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=654 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=654 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=654 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -5,16 +5,19 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general (ALT2)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=split2 --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=split2 --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -5,16 +5,19 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general (ALT3)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-autottl --dpi-desync-fooling=badseq --dpi-desync-repeats=8 --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-autottl --dpi-desync-fooling=badseq --dpi-desync-repeats=8
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-hostfakesplit-mod=host=www.google.com,altorder=1 --dpi-desync-fooling=ts --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -5,16 +5,19 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general (ALT4)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -6,15 +6,16 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general (ALT5)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-l3=ipv4 --filter-tcp=443 --dpi-desync=syndata --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-l3=ipv4 --filter-tcp=443,2053,2083,2087,2096,8443,%GameFilter% --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=syndata,multidisorder --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=14 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3

23
general (ALT6).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

23
general (ALT7).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-pos=2,sniext+1 --dpi-desync-split-seqovl=679 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-pos=2,sniext+1 --dpi-desync-split-seqovl=679 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-pos=2,sniext+1 --dpi-desync-split-seqovl=679 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=syndata --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

23
general (ALT8).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

23
general (ALT9).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-fooling=ts --dpi-desync-hostfakesplit-mod=host=ozon.ru --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-fooling=ts --dpi-desync-hostfakesplit-mod=host=www.google.com --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-fooling=ts,md5sig --dpi-desync-hostfakesplit-mod=host=ozon.ru --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-fooling=ts --dpi-desync-hostfakesplit-mod=host=ozon.ru --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls=^! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls=^! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls=^! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls=^! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -1,20 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: general (FAKE TLS MOD ALT)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-fooling=md5sig --dpi-desync-fake-tls-mod=rnd,rndsni,padencap --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-fooling=md5sig --dpi-desync-fake-tls-mod=rnd,rndsni,padencap

View File

@@ -1,20 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: general (FAKE TLS MOD AUTO)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,fakedsplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,fakedsplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=md5sig

View File

@@ -1,20 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: general (FAKE TLS MOD)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=8 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=3 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-ttl=4 --dpi-desync-fake-tls-mod=rnd,rndsni,padencap --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=8 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=3 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-ttl=4 --dpi-desync-fake-tls-mod=rnd,rndsni,padencap

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3

23
general (SIMPLE FAKE).bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3

View File

@@ -1,20 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: general (MGTS)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"

View File

@@ -1,20 +0,0 @@
@echo off
chcp 65001 > nul
:: 65001 - UTF-8
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
start "zapret: general (MGTS2)" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"

View File

@@ -5,16 +5,19 @@ chcp 65001 > nul
cd /d "%~dp0"
call service.bat status_zapret
call service.bat check_updates
call service.bat load_game_filter
echo:
set "BIN=%~dp0bin\"
set "LISTS=%~dp0lists\"
cd /d %BIN%
start "zapret: general" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6 --new ^
--filter-tcp=80 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --hostlist="%LISTS%list-general.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=midsld --dpi-desync-repeats=8 --dpi-desync-fooling=md5sig,badseq --new ^
--filter-udp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
--filter-tcp=443 --ipset="%LISTS%ipset-cloudflare.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=midsld --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig,badseq
start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,2053,2083,2087,2096,8443,%GameFilter% --wf-udp=443,19294-19344,50000-50100,%GameFilter% ^
--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%quic_initial_www_google_com.bin" --dpi-desync-fake-stun="%BIN%quic_initial_www_google_com.bin" --dpi-desync-repeats=6 --new ^
--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin" --new ^
--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --new ^
--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin" --new ^
--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=80,443,%GameFilter% --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin" --new ^
--filter-udp=%GameFilter% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --dpi-desync=fake --dpi-desync-autottl=2 --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2

1
lists/ipset-all.txt Normal file
View File

@@ -0,0 +1 @@
203.0.113.113/32

12063
lists/ipset-all.txt.backup Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +0,0 @@
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/13
104.24.0.0/14
172.64.0.0/13
131.0.72.0/22

11
lists/ipset-exclude.txt Normal file
View File

@@ -0,0 +1,11 @@
0.0.0.0/8
10.0.0.0/8
127.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.0.0/16
224.0.0.0/4
100.64.0.0/10
::1
fc00::/7
fe80::/10

View File

@@ -1,25 +0,0 @@
cloudflare-ech.com
dis.gd
discord-attachments-uploads-prd.storage.googleapis.com
discord.app
discord.co
discord.com
discord.design
discord.dev
discord.gift
discord.gifts
discord.gg
discord.media
discord.new
discord.status
discord.store
discordapp.com
discordapp.net
discordcdn.com
discordmerch.com
discordpartygames.com
discordsays.com
discordsez.com
discord-activities.com
discordactivities.com
stable.dl2.discordapp.net

25
lists/list-exclude.txt Normal file
View File

@@ -0,0 +1,25 @@
pusher.com
live-video.net
ttvnw.net
twitch.tv
mail.ru
citilink.ru
yandex.com
nvidia.com
donationalerts.com
vk.com
yandex.kz
mts.ru
multimc.org
ya.ru
dns-shop.ru
habr.com
3dnews.ru
sberbank.ru
ozon.ru
wildberries.ru
microsoft.com
msi.com
akamaitechnologies.com
2ip.ru
yandex.ru

View File

@@ -1,4 +1,20 @@
cloudflare-ech.com
encryptedsni.com
cloudflareaccess.com
cloudflareapps.com
cloudflarebolt.com
cloudflareclient.com
cloudflareinsights.com
cloudflareok.com
cloudflarepartners.com
cloudflareportal.com
cloudflarepreview.com
cloudflareresolve.com
cloudflaressl.com
cloudflarestatus.com
cloudflarestorage.com
cloudflarestream.com
cloudflaretest.com
dis.gd
discord-attachments-uploads-prd.storage.googleapis.com
discord.app
@@ -22,21 +38,7 @@ discordmerch.com
discordpartygames.com
discordsays.com
discordsez.com
ggpht.com
googlevideo.com
jnn-pa.googleapis.com
stable.dl2.discordapp.net
wide-youtube.l.google.com
youtube-nocookie.com
youtube-ui.l.google.com
youtube.com
youtubeembeddedplayer.googleapis.com
youtubekids.com
youtubei.googleapis.com
youtu.be
yt-video-upload.l.google.com
ytimg.com
ytimg.l.google.com
discordstatus.com
frankerfacez.com
ffzap.com
betterttv.net

17
lists/list-google.txt Normal file
View File

@@ -0,0 +1,17 @@
yt3.ggpht.com
yt4.ggpht.com
yt3.googleusercontent.com
googlevideo.com
jnn-pa.googleapis.com
stable.dl2.discordapp.net
wide-youtube.l.google.com
youtube-nocookie.com
youtube-ui.l.google.com
youtube.com
youtubeembeddedplayer.googleapis.com
youtubekids.com
youtubei.googleapis.com
youtu.be
yt-video-upload.l.google.com
ytimg.com
ytimg.l.google.com

View File

@@ -1,62 +1,116 @@
@echo off
setlocal EnableDelayedExpansion
set "LOCAL_VERSION=1.7.2b"
set "LOCAL_VERSION=1.9.2"
:: External commands
if "%~1"=="status_zapret" (
call :test_service zapret soft
call :tcp_enable
exit /b
)
if "%~1"=="check_updates" (
call :service_check_updates soft
if exist "%~dp0utils\check_updates.enabled" (
if not "%~2"=="soft" (
start /b service check_updates soft
) else (
call :service_check_updates soft
)
)
exit /b
)
if "%~1"=="load_game_filter" (
call :game_switch_status
exit /b
)
if "%1"=="admin" (
call :check_command chcp
call :check_command find
call :check_command findstr
call :check_command netsh
echo Started with admin rights
) else (
call :check_extracted
call :check_command powershell
echo Requesting admin rights...
powershell -Command "Start-Process 'cmd.exe' -ArgumentList '/c \"\"%~f0\" admin\"' -Verb RunAs"
exit /b
exit
)
:: MENU ================================
setlocal EnableDelayedExpansion
:menu
cls
call :ipset_switch_status
call :game_switch_status
call :check_updates_switch_status
set "menu_choice=null"
echo =======================
echo ========= v!LOCAL_VERSION! =========
echo 1. Install Service
echo 2. Remove Services
echo 3. Check Service Status
echo 3. Check Status
echo 4. Run Diagnostics
echo 5. Check Updates
echo 6. Switch Check Updates (%CheckUpdatesStatus%)
echo 7. Switch Game Filter (%GameFilterStatus%)
echo 8. Switch ipset (%IPsetStatus%)
echo 9. Update ipset list
echo 10. Update hosts file (for discord voice)
echo 11. Run Tests
echo 0. Exit
set /p menu_choice=Enter choice (0-5):
set /p menu_choice=Enter choice (0-11):
if "%menu_choice%"=="1" goto service_install
if "%menu_choice%"=="2" goto service_remove
if "%menu_choice%"=="3" goto service_status
if "%menu_choice%"=="4" goto service_diagnostics
if "%menu_choice%"=="5" goto service_check_updates
if "%menu_choice%"=="6" goto check_updates_switch
if "%menu_choice%"=="7" goto game_switch
if "%menu_choice%"=="8" goto ipset_switch
if "%menu_choice%"=="9" goto ipset_update
if "%menu_choice%"=="10" goto hosts_update
if "%menu_choice%"=="11" goto run_tests
if "%menu_choice%"=="0" exit /b
goto menu
:: TCP ENABLE ==========================
:tcp_enable
netsh interface tcp show global | findstr /i "timestamps" | findstr /i "enabled" > nul || netsh interface tcp set global timestamps=enabled > nul 2>&1
exit /b
:: STATUS ==============================
:service_status
cls
chcp 65001 > nul
echo Checking services and tasks...
chcp 437 > nul
sc query "zapret" >nul 2>&1
if !errorlevel!==0 (
for /f "tokens=2*" %%A in ('reg query "HKLM\System\CurrentControlSet\Services\zapret" /v zapret-discord-youtube 2^>nul') do echo Service strategy installed from "%%B"
)
call :test_service zapret
call :test_service WinDivert
set "BIN_PATH=%~dp0bin\"
if not exist "%BIN_PATH%\*.sys" (
call :PrintRed "WinDivert64.sys file NOT found."
)
echo:
tasklist /FI "IMAGENAME eq winws.exe" | find /I "winws.exe" > nul
if !errorlevel!==0 (
echo Bypass is ACTIVE
call :PrintGreen "Bypass (winws.exe) is RUNNING."
) else (
echo Bypass NOT FOUND
call :PrintRed "Bypass (winws.exe) is NOT running."
)
pause
@@ -77,8 +131,10 @@ if "%ServiceStatus%"=="RUNNING" (
) else (
echo "%ServiceName%" service is RUNNING.
)
) else if "%ServiceStatus%"=="STOP_PENDING" (
call :PrintYellow "!ServiceName! is STOP_PENDING, that may be caused by a conflict with another bypass. Run Diagnostics to try to fix conflicts"
) else if not "%~2"=="soft" (
echo "%ServiceName%" is NOT running.
echo "%ServiceName%" service is NOT running.
)
exit /b
@@ -90,13 +146,30 @@ cls
chcp 65001 > nul
set SRVCNAME=zapret
net stop %SRVCNAME%
sc delete %SRVCNAME%
sc query "!SRVCNAME!" >nul 2>&1
if !errorlevel!==0 (
net stop %SRVCNAME%
sc delete %SRVCNAME%
) else (
echo Service "%SRVCNAME%" is not installed.
)
net stop "WinDivert"
sc delete "WinDivert"
net stop "WinDivert14"
sc delete "WinDivert14"
tasklist /FI "IMAGENAME eq winws.exe" | find /I "winws.exe" > nul
if !errorlevel!==0 (
taskkill /IM winws.exe /F > nul
)
sc query "WinDivert" >nul 2>&1
if !errorlevel!==0 (
net stop "WinDivert"
sc query "WinDivert" >nul 2>&1
if !errorlevel!==0 (
sc delete "WinDivert"
)
)
net stop "WinDivert14" >nul 2>&1
sc delete "WinDivert14" >nul 2>&1
pause
goto menu
@@ -117,7 +190,7 @@ echo Pick one of the options:
set "count=0"
for %%f in (*.bat) do (
set "filename=%%~nxf"
if /i not "!filename:~0,7!"=="service" if /i not "!filename:~0,17!"=="cloudflare_switch" (
if /i not "!filename:~0,7!"=="service" (
set /a count+=1
echo !count!. %%f
set "file!count!=%%f"
@@ -127,7 +200,11 @@ for %%f in (*.bat) do (
:: Choosing file
set "choice="
set /p "choice=Input file index (number): "
if "!choice!"=="" goto :eof
if "!choice!"=="" (
echo The choice is empty, exiting...
pause
goto menu
)
set "selectedFile=!file%choice%!"
if not defined selectedFile (
@@ -137,7 +214,7 @@ if not defined selectedFile (
)
:: Args that should be followed by value
set "args_with_value=sni"
set "args_with_value=sni host altorder"
:: Parsing args (mergeargs: 2=start param|3=arg with value|1=params args|0=default)
set "args="
@@ -147,6 +224,7 @@ set QUOTE="
for /f "tokens=*" %%a in ('type "!selectedFile!"') do (
set "line=%%a"
call set "line=%%line:^!=EXCL_MARK%%"
echo !line! | findstr /i "%BIN%winws.exe" >nul
if not errorlevel 1 (
@@ -182,8 +260,10 @@ for /f "tokens=*" %%a in ('type "!selectedFile!"') do (
) else (
set "arg=\!QUOTE!%~dp0!arg!\!QUOTE!"
)
) else if "!arg:~0,12!" EQU "%%GameFilter%%" (
set "arg=%GameFilter%"
)
if !mergeargs!==1 (
set "temp_args=!temp_args!,!arg!"
) else if !mergeargs!==3 (
@@ -195,9 +275,9 @@ for /f "tokens=*" %%a in ('type "!selectedFile!"') do (
if "!arg:~0,2!" EQU "--" (
set "mergeargs=2"
) else if !mergeargs!==2 (
set "mergeargs=1"
) else if !mergeargs!==1 (
) else if !mergeargs! GEQ 1 (
if !mergeargs!==2 set "mergeargs=1"
for %%x in (!args_with_value!) do (
if /i "%%x"=="!arg!" (
set "mergeargs=3"
@@ -214,15 +294,22 @@ for /f "tokens=*" %%a in ('type "!selectedFile!"') do (
)
:: Creating service with parsed args
call :tcp_enable
set ARGS=%args%
call set "ARGS=%%ARGS:EXCL_MARK=^!%%"
echo Final args: !ARGS!
set SRVCNAME=zapret
net stop %SRVCNAME% >nul 2>&1
sc delete %SRVCNAME% >nul 2>&1
sc create %SRVCNAME% binPath= "\"%BIN_PATH%winws.exe\" %ARGS%" DisplayName= "zapret" start= auto
sc create %SRVCNAME% binPath= "\"%BIN_PATH%winws.exe\" !ARGS!" DisplayName= "zapret" start= auto
sc description %SRVCNAME% "Zapret DPI bypass software"
sc start %SRVCNAME%
for %%F in ("!file%choice%!") do (
set "filename=%%~nF"
)
reg add "HKLM\System\CurrentControlSet\Services\zapret" /v zapret-discord-youtube /t REG_SZ /d "!filename!" /f
pause
goto menu
@@ -231,6 +318,7 @@ goto menu
:: CHECK UPDATES =======================
:service_check_updates
chcp 437 > nul
cls
:: Set current version and URLs
set "GITHUB_VERSION_URL=https://raw.githubusercontent.com/Flowseal/zapret-discord-youtube/main/.service/version.txt"
@@ -238,44 +326,104 @@ set "GITHUB_RELEASE_URL=https://github.com/Flowseal/zapret-discord-youtube/relea
set "GITHUB_DOWNLOAD_URL=https://github.com/Flowseal/zapret-discord-youtube/releases/latest/download/zapret-discord-youtube-"
:: Get the latest version from GitHub
for /f "delims=" %%A in ('powershell -command "(Invoke-WebRequest -Uri \"%GITHUB_VERSION_URL%\" -Headers @{\"Cache-Control\"=\"no-cache\"} -TimeoutSec 5).Content.Trim()" 2^>nul') do set "GITHUB_VERSION=%%A"
for /f "delims=" %%A in ('powershell -command "(Invoke-WebRequest -Uri \"%GITHUB_VERSION_URL%\" -Headers @{\"Cache-Control\"=\"no-cache\"} -UseBasicParsing -TimeoutSec 5).Content.Trim()" 2^>nul') do set "GITHUB_VERSION=%%A"
:: Error handling
if not defined GITHUB_VERSION (
echo Warning: failed to fetch the latest version. Check your internet connection. This warning does not affect the operation of zapret
pause
if "%1"=="soft" exit /b
echo Warning: failed to fetch the latest version. This warning does not affect the operation of zapret
timeout /T 9
if "%1"=="soft" exit
goto menu
)
:: Version comparison
if "%LOCAL_VERSION%"=="%GITHUB_VERSION%" (
echo Latest version installed: %LOCAL_VERSION%
) else (
echo New version available: %GITHUB_VERSION%
echo Release page: %GITHUB_RELEASE_URL%%GITHUB_VERSION%
set "CHOICE="
set /p "CHOICE=Do you want to automatically download the new version? (Y/N) (default: Y) "
if "!CHOICE!"=="" set "CHOICE=Y"
if "!CHOICE!"=="y" set "CHOICE=Y"
if "%1"=="soft" exit
pause
goto menu
)
if /i "!CHOICE!"=="Y" (
echo Opening the download page...
start "" "%GITHUB_DOWNLOAD_URL%%GITHUB_VERSION%.rar"
)
echo New version available: %GITHUB_VERSION%
echo Release page: %GITHUB_RELEASE_URL%%GITHUB_VERSION%
set "CHOICE="
set /p "CHOICE=Do you want to automatically download the new version? (Y/N) (default: Y) "
if "%CHOICE%"=="" set "CHOICE=Y"
if /i "%CHOICE%"=="y" set "CHOICE=Y"
if /i "%CHOICE%"=="Y" (
echo Opening the download page...
start "" "%GITHUB_DOWNLOAD_URL%%GITHUB_VERSION%.rar"
)
if "%1"=="soft" exit /b
if "%1"=="soft" exit
pause
goto menu
:: DIAGNOSTICS =========================
:service_diagnostics
chcp 437 > nul
cls
:: Base Filtering Engine
sc query BFE | findstr /I "RUNNING" > nul
if !errorlevel!==0 (
call :PrintGreen "Base Filtering Engine check passed"
) else (
call :PrintRed "[X] Base Filtering Engine is not running. This service is required for zapret to work"
)
echo:
:: Proxy check
set "proxyEnabled=0"
set "proxyServer="
for /f "tokens=2*" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable 2^>nul ^| findstr /i "ProxyEnable"') do (
if "%%B"=="0x1" set "proxyEnabled=1"
)
if !proxyEnabled!==1 (
for /f "tokens=2*" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer 2^>nul ^| findstr /i "ProxyServer"') do (
set "proxyServer=%%B"
)
call :PrintYellow "[?] System proxy is enabled: !proxyServer!"
call :PrintYellow "Make sure it's valid or disable it if you don't use a proxy"
) else (
call :PrintGreen "Proxy check passed"
)
echo:
:: Check netsh
where netsh >nul 2>nul
if !errorlevel! neq 0 (
call :PrintRed "[X] netsh command not found, check your PATH variable"
echo PATH = "%PATH%"
echo:
pause
goto menu
)
:: TCP timestamps check
netsh interface tcp show global | findstr /i "timestamps" | findstr /i "enabled" > nul
if !errorlevel!==0 (
call :PrintGreen "TCP timestamps check passed"
) else (
call :PrintYellow "[?] TCP timestamps are disabled. Enabling timestamps..."
netsh interface tcp set global timestamps=enabled > nul 2>&1
if !errorlevel!==0 (
call :PrintGreen "TCP timestamps successfully enabled"
) else (
call :PrintRed "[X] Failed to enable TCP timestamps"
)
)
echo:
:: AdguardSvc.exe
tasklist /FI "IMAGENAME eq AdguardSvc.exe" | find /I "AdguardSvc.exe" > nul
if !errorlevel!==0 (
@@ -283,7 +431,7 @@ if !errorlevel!==0 (
call :PrintRed "https://github.com/Flowseal/zapret-discord-youtube/issues/417"
) else (
call :PrintGreen "Adguard check passed"
)
)
echo:
:: Killer
@@ -296,6 +444,16 @@ if !errorlevel!==0 (
)
echo:
:: Intel Connectivity Network Service
sc query | findstr /I "Intel" | findstr /I "Connectivity" | findstr /I "Network" > nul
if !errorlevel!==0 (
call :PrintRed "[X] Intel Connectivity Network Service found. It conflicts with zapret"
call :PrintRed "https://github.com/ValdikSS/GoodbyeDPI/issues/541#issuecomment-2661670982"
) else (
call :PrintGreen "Intel Connectivity check passed"
)
echo:
:: Check Point
set "checkpointFound=0"
sc query | findstr /I "TracSrvWrapper" > nul
@@ -326,10 +484,25 @@ if !errorlevel!==0 (
)
echo:
:: WinDivert64.sys file
set "BIN_PATH=%~dp0bin\"
if not exist "%BIN_PATH%\*.sys" (
call :PrintRed "WinDivert64.sys file NOT found."
)
echo:
:: VPN
set "VPN_SERVICES="
sc query | findstr /I "VPN" > nul
if !errorlevel!==0 (
call :PrintYellow "[?] Some VPN services found. Some VPNs can conflict with zapret"
for /f "tokens=2 delims=:" %%A in ('sc query ^| findstr /I "VPN"') do (
if not defined VPN_SERVICES (
set "VPN_SERVICES=!VPN_SERVICES!%%A"
) else (
set "VPN_SERVICES=!VPN_SERVICES!,%%A"
)
)
call :PrintYellow "[?] VPN services found:!VPN_SERVICES!. Some VPNs can conflict with zapret"
call :PrintYellow "Make sure that all VPNs are disabled"
) else (
call :PrintGreen "VPN check passed"
@@ -337,21 +510,121 @@ if !errorlevel!==0 (
echo:
:: DNS
set "dnsfound=0"
for /f "skip=1 tokens=*" %%a in ('wmic nicconfig where "IPEnabled=true" get DNSServerSearchOrder /format:table') do (
echo %%a | findstr /i "192.168." >nul
if !errorlevel!==0 (
set "dnsfound=1"
set "dohfound=0"
for /f "delims=" %%a in ('powershell -Command "Get-ChildItem -Recurse -Path 'HKLM:System\CurrentControlSet\Services\Dnscache\InterfaceSpecificParameters\' | Get-ItemProperty | Where-Object { $_.DohFlags -gt 0 } | Measure-Object | Select-Object -ExpandProperty Count"') do (
if %%a gtr 0 (
set "dohfound=1"
)
)
if !dnsfound!==1 (
call :PrintYellow "[?] DNS servers are probably not specified."
call :PrintYellow "Provider's DNS servers are automatically used, which may affect zapret. It is recommended to install well-known DNS servers and setup DoH"
if !dohfound!==0 (
call :PrintYellow "[?] Make sure you have configured secure DNS in a browser with some non-default DNS service provider,"
call :PrintYellow "If you use Windows 11 you can configure encrypted DNS in the Settings to hide this warning"
) else (
call :PrintGreen "DNS check passed"
call :PrintGreen "Secure DNS check passed"
)
echo:
:: WinDivert conflict
tasklist /FI "IMAGENAME eq winws.exe" | find /I "winws.exe" > nul
set "winws_running=!errorlevel!"
sc query "WinDivert" | findstr /I "RUNNING STOP_PENDING" > nul
set "windivert_running=!errorlevel!"
if !winws_running! neq 0 if !windivert_running!==0 (
call :PrintYellow "[?] winws.exe is not running but WinDivert service is active. Attempting to delete WinDivert..."
net stop "WinDivert" >nul 2>&1
sc delete "WinDivert" >nul 2>&1
sc query "WinDivert" >nul 2>&1
if !errorlevel!==0 (
call :PrintRed "[X] Failed to delete WinDivert. Checking for conflicting services..."
set "conflicting_services=GoodbyeDPI"
set "found_conflict=0"
for %%s in (!conflicting_services!) do (
sc query "%%s" >nul 2>&1
if !errorlevel!==0 (
call :PrintYellow "[?] Found conflicting service: %%s. Stopping and removing..."
net stop "%%s" >nul 2>&1
sc delete "%%s" >nul 2>&1
if !errorlevel!==0 (
call :PrintGreen "Successfully removed service: %%s"
) else (
call :PrintRed "[X] Failed to remove service: %%s"
)
set "found_conflict=1"
)
)
if !found_conflict!==0 (
call :PrintRed "[X] No conflicting services found. Check manually if any other bypass is using WinDivert."
) else (
call :PrintYellow "[?] Attempting to delete WinDivert again..."
net stop "WinDivert" >nul 2>&1
sc delete "WinDivert" >nul 2>&1
sc query "WinDivert" >nul 2>&1
if !errorlevel! neq 0 (
call :PrintGreen "WinDivert successfully deleted after removing conflicting services"
) else (
call :PrintRed "[X] WinDivert still cannot be deleted. Check manually if any other bypass is using WinDivert."
)
)
) else (
call :PrintGreen "WinDivert successfully removed"
)
echo:
)
:: Conflicting bypasses
set "conflicting_services=GoodbyeDPI discordfix_zapret winws1 winws2"
set "found_any_conflict=0"
set "found_conflicts="
for %%s in (!conflicting_services!) do (
sc query "%%s" >nul 2>&1
if !errorlevel!==0 (
if "!found_conflicts!"=="" (
set "found_conflicts=%%s"
) else (
set "found_conflicts=!found_conflicts! %%s"
)
set "found_any_conflict=1"
)
)
if !found_any_conflict!==1 (
call :PrintRed "[X] Conflicting bypass services found: !found_conflicts!"
set "CHOICE="
set /p "CHOICE=Do you want to remove these conflicting services? (Y/N) (default: N) "
if "!CHOICE!"=="" set "CHOICE=N"
if "!CHOICE!"=="y" set "CHOICE=Y"
if /i "!CHOICE!"=="Y" (
for %%s in (!found_conflicts!) do (
call :PrintYellow "Stopping and removing service: %%s"
net stop "%%s" >nul 2>&1
sc delete "%%s" >nul 2>&1
if !errorlevel!==0 (
call :PrintGreen "Successfully removed service: %%s"
) else (
call :PrintRed "[X] Failed to remove service: %%s"
)
)
net stop "WinDivert" >nul 2>&1
sc delete "WinDivert" >nul 2>&1
net stop "WinDivert14" >nul 2>&1
sc delete "WinDivert14" >nul 2>&1
)
echo:
)
:: Discord cache clearing
set "CHOICE="
set /p "CHOICE=Do you want to clear the Discord cache? (Y/N) (default: Y) "
@@ -391,6 +664,253 @@ echo:
pause
goto menu
:: GAME SWITCH ========================
:game_switch_status
chcp 437 > nul
set "gameFlagFile=%~dp0utils\game_filter.enabled"
if exist "%gameFlagFile%" (
set "GameFilterStatus=enabled"
set "GameFilter=1024-65535"
) else (
set "GameFilterStatus=disabled"
set "GameFilter=12"
)
exit /b
:game_switch
chcp 437 > nul
cls
if not exist "%gameFlagFile%" (
echo Enabling game filter...
echo ENABLED > "%gameFlagFile%"
call :PrintYellow "Restart the zapret to apply the changes"
) else (
echo Disabling game filter...
del /f /q "%gameFlagFile%"
call :PrintYellow "Restart the zapret to apply the changes"
)
pause
goto menu
:: CHECK UPDATES SWITCH =================
:check_updates_switch_status
chcp 437 > nul
set "checkUpdatesFlag=%~dp0utils\check_updates.enabled"
if exist "%checkUpdatesFlag%" (
set "CheckUpdatesStatus=enabled"
) else (
set "CheckUpdatesStatus=disabled"
)
exit /b
:check_updates_switch
chcp 437 > nul
cls
if not exist "%checkUpdatesFlag%" (
echo Enabling check updates...
echo ENABLED > "%checkUpdatesFlag%"
) else (
echo Disabling check updates...
del /f /q "%checkUpdatesFlag%"
)
pause
goto menu
:: IPSET SWITCH =======================
:ipset_switch_status
chcp 437 > nul
set "listFile=%~dp0lists\ipset-all.txt"
for /f %%i in ('type "%listFile%" 2^>nul ^| find /c /v ""') do set "lineCount=%%i"
if !lineCount!==0 (
set "IPsetStatus=any"
) else (
findstr /R "^203\.0\.113\.113/32$" "%listFile%" >nul
if !errorlevel!==0 (
set "IPsetStatus=none"
) else (
set "IPsetStatus=loaded"
)
)
exit /b
:ipset_switch
chcp 437 > nul
cls
set "listFile=%~dp0lists\ipset-all.txt"
set "backupFile=%listFile%.backup"
if "%IPsetStatus%"=="loaded" (
echo Switching to none mode...
if not exist "%backupFile%" (
ren "%listFile%" "ipset-all.txt.backup"
) else (
del /f /q "%backupFile%"
ren "%listFile%" "ipset-all.txt.backup"
)
>"%listFile%" (
echo 203.0.113.113/32
)
) else if "%IPsetStatus%"=="none" (
echo Switching to any mode...
>"%listFile%" (
rem Creating empty file
)
) else if "%IPsetStatus%"=="any" (
echo Switching to loaded mode...
if exist "%backupFile%" (
del /f /q "%listFile%"
ren "%backupFile%" "ipset-all.txt"
) else (
echo Error: no backup to restore. Update list from service menu first
pause
goto menu
)
)
pause
goto menu
:: IPSET UPDATE =======================
:ipset_update
chcp 437 > nul
cls
set "listFile=%~dp0lists\ipset-all.txt"
set "url=https://raw.githubusercontent.com/Flowseal/zapret-discord-youtube/refs/heads/main/.service/ipset-service.txt"
echo Updating ipset-all...
if exist "%SystemRoot%\System32\curl.exe" (
curl -L -o "%listFile%" "%url%"
) else (
powershell -Command ^
"$url = '%url%';" ^
"$out = '%listFile%';" ^
"$dir = Split-Path -Parent $out;" ^
"if (-not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir | Out-Null };" ^
"$res = Invoke-WebRequest -Uri $url -TimeoutSec 10 -UseBasicParsing;" ^
"if ($res.StatusCode -eq 200) { $res.Content | Out-File -FilePath $out -Encoding UTF8 } else { exit 1 }"
)
echo Finished
pause
goto menu
:: HOSTS UPDATE =======================
:hosts_update
chcp 437 > nul
cls
set "hostsFile=%SystemRoot%\System32\drivers\etc\hosts"
set "hostsUrl=https://raw.githubusercontent.com/Flowseal/zapret-discord-youtube/refs/heads/main/.service/hosts"
set "tempFile=%TEMP%\zapret_hosts.txt"
set "needsUpdate=0"
echo Checking hosts file...
if exist "%SystemRoot%\System32\curl.exe" (
curl -L -s -o "%tempFile%" "%hostsUrl%"
) else (
powershell -Command ^
"$url = '%hostsUrl%';" ^
"$out = '%tempFile%';" ^
"$res = Invoke-WebRequest -Uri $url -TimeoutSec 10 -UseBasicParsing;" ^
"if ($res.StatusCode -eq 200) { $res.Content | Out-File -FilePath $out -Encoding UTF8 } else { exit 1 }"
)
if not exist "%tempFile%" (
call :PrintRed "Failed to download hosts file from repository"
pause
goto menu
)
set "firstLine="
set "lastLine="
for /f "usebackq delims=" %%a in ("%tempFile%") do (
if not defined firstLine (
set "firstLine=%%a"
)
set "lastLine=%%a"
)
findstr /C:"!firstLine!" "%hostsFile%" >nul 2>&1
if !errorlevel! neq 0 (
echo First line from repository not found in hosts file
set "needsUpdate=1"
)
findstr /C:"!lastLine!" "%hostsFile%" >nul 2>&1
if !errorlevel! neq 0 (
echo Last line from repository not found in hosts file
set "needsUpdate=1"
)
if "%needsUpdate%"=="1" (
echo:
call :PrintYellow "Hosts file needs to be updated"
call :PrintYellow "Please manually copy the content from the downloaded file to your hosts file"
start notepad "%tempFile%"
explorer /select,"%hostsFile%"
) else (
call :PrintGreen "Hosts file is up to date"
if exist "%tempFile%" del /f /q "%tempFile%"
)
echo:
pause
goto menu
:: RUN TESTS =============================
:run_tests
chcp 65001 >nul
cls
:: Require PowerShell 3.0+
powershell -NoProfile -Command "if ($PSVersionTable -and $PSVersionTable.PSVersion -and $PSVersionTable.PSVersion.Major -ge 3) { exit 0 } else { exit 1 }" >nul 2>&1
if %errorLevel% neq 0 (
echo PowerShell 3.0 or newer is required.
echo Please upgrade PowerShell and rerun this script.
echo.
pause
goto menu
)
echo Starting configuration tests in PowerShell window...
echo.
start "" powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0utils\test zapret.ps1"
pause
goto menu
:: Utility functions
:PrintGreen
@@ -403,4 +923,26 @@ exit /b
:PrintYellow
powershell -Command "Write-Host \"%~1\" -ForegroundColor Yellow"
exit /b
exit /b
:check_command
where %1 >nul 2>&1
if %errorLevel% neq 0 (
echo [ERROR] %1 not found in PATH
echo Fix your PATH variable with instructions here https://github.com/Flowseal/zapret-discord-youtube/issues/7490
pause
exit /b 1
)
exit /b 0
:check_extracted
set "extracted=1"
if not exist "%~dp0bin\" set "extracted=0"
if "%extracted%"=="0" (
echo Zapret must be extracted from archive first or bin folder not found for some reason
pause
exit
)
exit /b 0

View File

@@ -0,0 +1 @@
ENABLED

35
utils/targets.txt Normal file
View File

@@ -0,0 +1,35 @@
# targets.txt - endpoint list for zapret.ps1 tests
#
# Format:
# KeyName = "https://host..." -> Runs HTTP/TLS checks + ping
# KeyName = "PING:1.2.3.4" -> Ping only
#
# Keys must be a single word (letters/digits/underscore), because the
# script parses them as simple identifiers. You can add or remove lines.
### Discord
DiscordMain = "https://discord.com"
DiscordGateway = "https://gateway.discord.gg"
DiscordCDN = "https://cdn.discordapp.com"
DiscordUpdates = "https://updates.discord.com"
### YouTube
YouTubeWeb = "https://www.youtube.com"
YouTubeShort = "https://youtu.be"
YouTubeImage = "https://i.ytimg.com"
YouTubeVideoRedirect = "https://redirector.googlevideo.com"
### Google
GoogleMain = "https://www.google.com"
GoogleGstatic = "https://www.gstatic.com"
### Cloudflare
CloudflareWeb = "https://www.cloudflare.com"
CloudflareCDN = "https://cdnjs.cloudflare.com"
### Public DNS (PING-only)
CloudflareDNS1111 = "PING:1.1.1.1"
CloudflareDNS1001 = "PING:1.0.0.1"
GoogleDNS8888 = "PING:8.8.8.8"
GoogleDNS8844 = "PING:8.8.4.4"
Quad9DNS9999 = "PING:9.9.9.9"

893
utils/test zapret.ps1 Normal file
View File

@@ -0,0 +1,893 @@
$hasErrors = $false
$rootDir = Split-Path $PSScriptRoot
$listsDir = Join-Path $rootDir "lists"
$utilsDir = Join-Path $rootDir "utils"
$resultsDir = Join-Path $utilsDir "test results"
if (-not (Test-Path $resultsDir)) { New-Item -ItemType Directory -Path $resultsDir | Out-Null }
# Define functions early
function Get-IpsetStatus {
$listFile = Join-Path $listsDir "ipset-all.txt"
if (-not (Test-Path $listFile)) { return "none" }
$lineCount = (Get-Content $listFile | Measure-Object -Line).Lines
if ($lineCount -eq 0) { return "any" }
$hasDummy = Get-Content $listFile | Select-String -Pattern "203\.0\.113\.113/32" -Quiet
if ($hasDummy) { return "none" } else { return "loaded" }
}
function Set-IpsetMode {
param([string]$mode)
$listFile = Join-Path $listsDir "ipset-all.txt"
$backupFile = Join-Path $listsDir "ipset-all.test-backup.txt"
if ($mode -eq "any") {
# Always backup current file (even if none)
if (Test-Path $listFile) {
Copy-Item $listFile $backupFile -Force
} else {
# If none, create empty backup
"" | Out-File $backupFile -Encoding UTF8
}
# Make file empty
"" | Out-File $listFile -Encoding UTF8
} elseif ($mode -eq "restore") {
if (Test-Path $backupFile) {
Move-Item $backupFile $listFile -Force
}
}
}
trap {
Write-Host "[ERROR] Script interrupted. Restoring ipset..." -ForegroundColor Red
if ($originalIpsetStatus -and $originalIpsetStatus -ne "any") {
Set-IpsetMode -mode "restore"
}
Remove-Item -Path $ipsetFlagFile -ErrorAction SilentlyContinue
break
}
function New-OrderedDict { New-Object System.Collections.Specialized.OrderedDictionary }
function Add-OrSet {
param($dict, $key, $val)
if ($dict.Contains($key)) { $dict[$key] = $val } else { $dict.Add($key, $val) }
}
# Convert raw target value to structured target (supports PING:ip for ping-only targets)
function Convert-Target {
param(
[string]$Name,
[string]$Value
)
if ($Value -like "PING:*") {
$ping = $Value -replace '^PING:\s*', ''
$url = $null
$pingTarget = $ping
} else {
$url = $Value
$pingTarget = $url -replace "^https?://", "" -replace "/.*$", ""
}
return (New-Object PSObject -Property @{
Name = $Name
Url = $url
PingTarget = $pingTarget
})
}
function Get-DpiSuite {
# Suite sourced from monitor.ps1 (DPI TCP 16-20)
return @(
@{ Id = "US.CF-01"; Provider = "Cloudflare"; Url = "https://cdn.cookielaw.org/scripttemplates/202501.2.0/otBannerSdk.js"; Times = 1 }
@{ Id = "US.CF-02"; Provider = "Cloudflare"; Url = "https://genshin.jmp.blue/characters/all#"; Times = 1 }
@{ Id = "US.CF-03"; Provider = "Cloudflare"; Url = "https://api.frankfurter.dev/v1/2000-01-01..2002-12-31"; Times = 1 }
@{ Id = "US.DO-01"; Provider = "DigitalOcean"; Url = "https://genderize.io/"; Times = 2 }
@{ Id = "DE.HE-01"; Provider = "Hetzner"; Url = "https://j.dejure.org/jcg/doctrine/doctrine_banner.webp"; Times = 1 }
@{ Id = "FI.HE-01"; Provider = "Hetzner"; Url = "https://tcp1620-01.dubybot.live/1MB.bin"; Times = 1 }
@{ Id = "FI.HE-02"; Provider = "Hetzner"; Url = "https://tcp1620-02.dubybot.live/1MB.bin"; Times = 1 }
@{ Id = "FI.HE-03"; Provider = "Hetzner"; Url = "https://tcp1620-05.dubybot.live/1MB.bin"; Times = 1 }
@{ Id = "FI.HE-04"; Provider = "Hetzner"; Url = "https://tcp1620-06.dubybot.live/1MB.bin"; Times = 1 }
@{ Id = "FR.OVH-01"; Provider = "OVH"; Url = "https://eu.api.ovh.com/console/rapidoc-min.js"; Times = 1 }
@{ Id = "FR.OVH-02"; Provider = "OVH"; Url = "https://ovh.sfx.ovh/10M.bin"; Times = 1 }
@{ Id = "SE.OR-01"; Provider = "Oracle"; Url = "https://oracle.sfx.ovh/10M.bin"; Times = 1 }
@{ Id = "DE.AWS-01"; Provider = "AWS"; Url = "https://tms.delta.com/delta/dl_anderson/Bootstrap.js"; Times = 1 }
@{ Id = "US.AWS-01"; Provider = "AWS"; Url = "https://corp.kaltura.com/wp-content/cache/min/1/wp-content/themes/airfleet/dist/styles/theme.css"; Times = 1 }
@{ Id = "US.GC-01"; Provider = "Google Cloud"; Url = "https://api.usercentrics.eu/gvl/v3/en.json"; Times = 1 }
@{ Id = "US.FST-01"; Provider = "Fastly"; Url = "https://openoffice.apache.org/images/blog/rejected.png"; Times = 1 }
@{ Id = "US.FST-02"; Provider = "Fastly"; Url = "https://www.juniper.net/etc.clientlibs/juniper/clientlibs/clientlib-site/resources/fonts/lato/Lato-Regular.woff2"; Times = 1 }
@{ Id = "PL.AKM-01"; Provider = "Akamai"; Url = "https://www.lg.com/lg5-common-gp/library/jquery.min.js"; Times = 1 }
@{ Id = "PL.AKM-02"; Provider = "Akamai"; Url = "https://media-assets.stryker.com/is/image/stryker/gateway_1?$max_width_1410$"; Times = 1 }
@{ Id = "US.CDN77-01"; Provider = "CDN77"; Url = "https://cdn.eso.org/images/banner1920/eso2520a.jpg"; Times = 1 }
@{ Id = "DE.CNTB-01"; Provider = "Contabo"; Url = "https://cloudlets.io/wp-content/themes/Avada/includes/lib/assets/fonts/fontawesome/webfonts/fa-solid-900.woff2"; Times = 1 }
@{ Id = "FR.SW-01"; Provider = "Scaleway"; Url = "https://renklisigorta.com.tr/teklif-al"; Times = 1 }
@{ Id = "US.CNST-01"; Provider = "Constant"; Url = "https://cdn.xuansiwei.com/common/lib/font-awesome/4.7.0/fontawesome-webfont.woff2?v=4.7.0"; Times = 1 }
# Local test payload (requires: run make-test-payload.ps1 and serve via python -m http.server 8000)
# @{ Id = "LOCAL.TEST-16K"; Provider = "LocalTest"; Url = "http://127.0.0.1:8000/test-payload-16384b.bin"; Times = 1 }
)
}
function Build-DpiTargets {
param(
[string]$CustomUrl
)
$suite = Get-DpiSuite
$targets = @()
if ($CustomUrl) {
$targets += @{ Id = "CUSTOM"; Provider = "Custom"; Url = $CustomUrl }
} else {
foreach ($entry in $suite) {
$repeat = $entry.Times
if (-not $repeat -or $repeat -lt 1) { $repeat = 1 }
for ($i = 0; $i -lt $repeat; $i++) {
$suffix = ""
if ($repeat -gt 1) { $suffix = "@$i" }
$targets += @{ Id = "$($entry.Id)$suffix"; Provider = $entry.Provider; Url = $entry.Url }
}
}
}
return $targets
}
function Invoke-DpiSuite {
param(
[array]$Targets,
[int]$TimeoutSeconds,
[int]$RangeBytes,
[int]$WarnMinKB,
[int]$WarnMaxKB,
[int]$MaxParallel
)
$tests = @(
@{ Label = "HTTP"; Args = @("--http1.1") },
@{ Label = "TLS1.2"; Args = @("--tlsv1.2", "--tls-max", "1.2") },
@{ Label = "TLS1.3"; Args = @("--tlsv1.3", "--tls-max", "1.3") }
)
$rangeSpec = "0-$($RangeBytes - 1)"
$warnDetected = $false
Write-Host "[INFO] Targets: $($Targets.Count) (custom URL overrides suite). Range: $rangeSpec bytes; Timeout: $TimeoutSeconds s; Warn window: $WarnMinKB-$WarnMaxKB KB" -ForegroundColor Cyan
Write-Host "[INFO] Starting DPI TCP 16-20 checks (parallel: $MaxParallel)..." -ForegroundColor DarkGray
$runspacePool = [runspacefactory]::CreateRunspacePool(1, $MaxParallel)
$runspacePool.Open()
$scriptBlock = {
param($target, $tests, $rangeSpec, $TimeoutSeconds, $WarnMinKB, $WarnMaxKB)
$warned = $false
$lines = @()
foreach ($test in $tests) {
$curlArgs = @(
"-L",
"--range", $rangeSpec,
"-m", $TimeoutSeconds,
"-w", "%{http_code} %{size_download}",
"-o", "NUL",
"-s"
) + $test.Args + $target.Url
$output = & curl.exe @curlArgs 2>&1
$exit = $LASTEXITCODE
$text = ($output | Out-String).Trim()
$code = "NA"
$sizeBytes = 0
if ($text -match '^(?<code>\d{3})\s+(?<size>\d+)$') {
$code = $matches['code']
$sizeBytes = [int64]$matches['size']
} elseif (($exit -eq 35) -or ($text -match "not supported|does not support|protocol\s+'.+'\s+not\s+supported|protocol\s+.+\s+not\s+supported|unsupported protocol|TLS.not supported|Unrecognized option|Unknown option|unsupported option|unsupported feature|schannel|SSL")) {
$code = "UNSUP"
} elseif ($text) {
$code = "ERR"
}
$sizeKB = [math]::Round($sizeBytes / 1024, 1)
$status = "OK"
$color = "Green"
if ($code -eq "UNSUP") {
$status = "UNSUPPORTED"
$color = "Yellow"
} elseif ($exit -ne 0 -or $code -eq "ERR" -or $code -eq "NA") {
$status = "FAIL"
$color = "Red"
}
if (($sizeKB -ge $WarnMinKB) -and ($sizeKB -le $WarnMaxKB) -and ($exit -ne 0)) {
$status = "LIKELY_BLOCKED"
$color = "Yellow"
$warned = $true
}
$lines += [PSCustomObject]@{
TargetId = $target.Id
Provider = $target.Provider
TestLabel = $test.Label
Code = $code
SizeBytes = $sizeBytes
SizeKB = $sizeKB
Status = $status
Color = $color
Warned = $warned
}
}
return [PSCustomObject]@{
TargetId = $target.Id
Provider = $target.Provider
Lines = $lines
Warned = $warned
}
}
$runspaces = @()
foreach ($target in $Targets) {
$powershell = [powershell]::Create().AddScript($scriptBlock)
[void]$powershell.AddArgument($target)
[void]$powershell.AddArgument($tests)
[void]$powershell.AddArgument($rangeSpec)
[void]$powershell.AddArgument($TimeoutSeconds)
[void]$powershell.AddArgument($WarnMinKB)
[void]$powershell.AddArgument($WarnMaxKB)
$powershell.RunspacePool = $runspacePool
$runspaces += [PSCustomObject]@{
Powershell = $powershell
Handle = $powershell.BeginInvoke()
}
}
$results = @()
foreach ($rs in $runspaces) {
# Wait for the runspace to complete with a small grace period beyond curl's timeout
try {
$waitMs = ([int]$TimeoutSeconds + 5) * 1000
$handle = $rs.Handle
if ($handle -and $handle.AsyncWaitHandle) {
$completed = $handle.AsyncWaitHandle.WaitOne($waitMs)
if (-not $completed) {
Write-Host "[WARN] Runspace for target timed out after $waitMs ms; stopping runspace..." -ForegroundColor Yellow
try { $rs.Powershell.Stop() } catch {}
}
}
} catch {
# ignore wait errors and attempt to EndInvoke
}
try {
$results += $rs.Powershell.EndInvoke($rs.Handle)
} catch {
Write-Host "[WARN] EndInvoke failed for a runspace; treating as failure." -ForegroundColor Yellow
$failedLine = [PSCustomObject]@{
TestLabel = 'RUNSPACE'
Code = 'ERR'
SizeBytes = 0
SizeKB = 0
Status = 'FAIL'
Color = 'Red'
Warned = $false
}
$results += [PSCustomObject]@{ TargetId = 'UNKNOWN'; Provider = 'UNKNOWN'; Lines = @($failedLine); Warned = $false }
}
$rs.Powershell.Dispose()
}
$runspacePool.Close()
$runspacePool.Dispose()
foreach ($res in $results) {
Write-Host "`n=== $($res.TargetId) [$($res.Provider)] ===" -ForegroundColor DarkCyan
foreach ($line in $res.Lines) {
$msg = "[{0}][{1}] code={2} size={3} bytes ({4} KB) status={5}" -f $line.TargetId, $line.TestLabel, $line.Code, $line.SizeBytes, $line.SizeKB, $line.Status
Write-Host $msg -ForegroundColor $line.Color
if ($line.Status -eq "LIKELY_BLOCKED") {
Write-Host " Pattern matches 16-20KB freeze; censor likely cutting this strategy." -ForegroundColor Yellow
}
}
if (-not $res.Warned) {
Write-Host " No 16-20KB freeze pattern for this target." -ForegroundColor Green
} else {
$warnDetected = $true
}
}
if ($warnDetected) {
Write-Host ""
Write-Host "[WARNING] Detected possible DPI TCP 16-20 blocking on one or more targets. Consider changing strategy/SNI/IP." -ForegroundColor Red
} else {
Write-Host ""
Write-Host "[OK] No 16-20KB freeze pattern detected across targets." -ForegroundColor Green
}
return $results
}
function Test-ZapretServiceConflict {
return [bool](Get-Service -Name "zapret" -ErrorAction SilentlyContinue)
}
# Check Admin
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "[ERROR] Run as Administrator to execute tests" -ForegroundColor Red
$hasErrors = $true
} else {
Write-Host "[OK] Administrator rights detected" -ForegroundColor Green
}
# Check curl
if (-not (Get-Command "curl.exe" -ErrorAction SilentlyContinue)) {
Write-Host "[ERROR] curl.exe not found" -ForegroundColor Red
Write-Host "Install curl or add it to PATH" -ForegroundColor Yellow
$hasErrors = $true
} else {
Write-Host "[OK] curl.exe found" -ForegroundColor Green
}
# Check for leftover ipset flag from previous interrupted run
$ipsetFlagFile = Join-Path $rootDir "ipset_switched.flag"
if (Test-Path $ipsetFlagFile) {
Write-Host "[INFO] Detected leftover ipset switch flag. Restoring ipset..." -ForegroundColor Yellow
Set-IpsetMode -mode "restore"
Remove-Item -Path $ipsetFlagFile -ErrorAction SilentlyContinue
}
# Get original ipset status early
$originalIpsetStatus = Get-IpsetStatus
# Warn about ipset switching and X button behavior
if ($originalIpsetStatus -ne "any") {
Write-Host "[INFO] Current ipset status: $originalIpsetStatus" -ForegroundColor Cyan
Write-Host "[WARNING] Ipset will be switched to 'any' for accurate DPI tests." -ForegroundColor Yellow
Write-Host "[WARNING] If you close the window with the X button, ipset will NOT restore immediately." -ForegroundColor Yellow
Write-Host "[WARNING] It will be restored automatically on the next script run." -ForegroundColor Yellow
}
# Check if zapret service installed
if (Test-ZapretServiceConflict) {
Write-Host "[ERROR] Windows service 'zapret' is installed" -ForegroundColor Red
Write-Host " Remove the service before running tests" -ForegroundColor Yellow
Write-Host " Open service.bat and choose 'Remove Services'" -ForegroundColor Yellow
$hasErrors = $true
}
if ($hasErrors) {
Write-Host ""
Write-Host "Fix the errors above and rerun." -ForegroundColor Yellow
Write-Host "Press any key to exit..." -ForegroundColor Yellow
[void][System.Console]::ReadKey($true)
exit 1
}
# DPI checker defaults (override via MONITOR_* env vars like in monitor.ps1)
$dpiTimeoutSeconds = 5
$dpiRangeBytes = 262144
$dpiWarnMinKB = 14
$dpiWarnMaxKB = 22
$dpiMaxParallel = 8
$dpiCustomUrl = $env:MONITOR_URL
if ($env:MONITOR_TIMEOUT) { [int]$dpiTimeoutSeconds = $env:MONITOR_TIMEOUT }
if ($env:MONITOR_RANGE) { [int]$dpiRangeBytes = $env:MONITOR_RANGE }
if ($env:MONITOR_WARN_MINKB) { [int]$dpiWarnMinKB = $env:MONITOR_WARN_MINKB }
if ($env:MONITOR_WARN_MAXKB) { [int]$dpiWarnMaxKB = $env:MONITOR_WARN_MAXKB }
if ($env:MONITOR_MAX_PARALLEL) { [int]$dpiMaxParallel = $env:MONITOR_MAX_PARALLEL }
$dpiTargets = Build-DpiTargets -CustomUrl $dpiCustomUrl
# Config
$targetDir = $rootDir
if (-not $targetDir) { $targetDir = Split-Path -Parent $MyInvocation.MyCommand.Path }
$batFiles = Get-ChildItem -Path $targetDir -Filter "*.bat" | Where-Object { $_.Name -notlike "service*" } | Sort-Object Name
$globalResults = @()
# Select top-level test type (standard vs DPI checkers)
function Read-TestType {
while ($true) {
Write-Host ""
Write-Host "Select test type:" -ForegroundColor Cyan
Write-Host " [1] Standard tests (HTTP/ping)" -ForegroundColor Gray
Write-Host " [2] DPI checkers (TCP 16-20 freeze)" -ForegroundColor Gray
$choice = Read-Host "Enter 1 or 2"
switch ($choice) {
'1' { return 'standard' }
'2' { return 'dpi' }
default { Write-Host "Incorrect input. Please try again." -ForegroundColor Yellow }
}
}
}
# Select test mode: all configs or custom subset
function Read-ModeSelection {
while ($true) {
Write-Host ""
Write-Host "Select test run mode:" -ForegroundColor Cyan
Write-Host " [1] All configs" -ForegroundColor Gray
Write-Host " [2] Selected configs" -ForegroundColor Gray
$choice = Read-Host "Enter 1 or 2"
switch ($choice) {
'1' { return 'all' }
'2' { return 'select' }
default { Write-Host "Incorrect input. Please try again." -ForegroundColor Yellow }
}
}
}
function Read-ConfigSelection {
param([array]$allFiles)
while ($true) {
Write-Host ""
Write-Host "Available configs:" -ForegroundColor Cyan
for ($i = 0; $i -lt $allFiles.Count; $i++) {
$idx = $i + 1
Write-Host " [$idx] $($allFiles[$i].Name)" -ForegroundColor Gray
}
$selectionInput = Read-Host "Enter numbers separated by comma (e.g. 1,3,5) or '0' to run all"
$trimmed = $selectionInput.Trim()
if ($trimmed -eq '0') {
return $allFiles
}
$numbers = $selectionInput -split "[\,\s]+" | Where-Object { $_ -match '^\d+$' } | ForEach-Object { [int]$_ }
$valid = $numbers | Where-Object { $_ -ge 1 -and $_ -le $allFiles.Count } | Select-Object -Unique
if (-not $valid -or $valid.Count -eq 0) {
Write-Host ""
Write-Host "No configs selected. Try again." -ForegroundColor Yellow
continue
}
return $valid | ForEach-Object { $allFiles[$_ - 1] }
}
}
while ($true) {
$globalResults = @()
$testType = Read-TestType
$mode = Read-ModeSelection
if ($mode -eq 'select') {
$selected = Read-ConfigSelection -allFiles $batFiles
$batFiles = @($selected)
}
# Load targets once for standard mode
$targetList = @()
$maxNameLen = 10
if ($testType -eq 'standard') {
$targetsFile = Join-Path $utilsDir "targets.txt"
$rawTargets = New-OrderedDict
if (Test-Path $targetsFile) {
Get-Content $targetsFile | ForEach-Object {
if ($_ -match '^\s*(\w+)\s*=\s*"(.+)"\s*$') {
Add-OrSet -dict $rawTargets -key $matches[1] -val $matches[2]
}
}
}
if ($rawTargets.Count -eq 0) {
Write-Host "[INFO] targets.txt missing or empty. Using defaults." -ForegroundColor Gray
Add-OrSet $rawTargets "Discord Main" "https://discord.com"
Add-OrSet $rawTargets "Discord Gateway" "https://gateway.discord.gg"
Add-OrSet $rawTargets "Discord CDN" "https://cdn.discordapp.com"
Add-OrSet $rawTargets "Discord Updates" "https://updates.discord.com"
Add-OrSet $rawTargets "YouTube Web" "https://www.youtube.com"
Add-OrSet $rawTargets "YouTube Short" "https://youtu.be"
Add-OrSet $rawTargets "YouTube Image" "https://i.ytimg.com"
Add-OrSet $rawTargets "YouTube Video Redirect" "https://redirector.googlevideo.com"
Add-OrSet $rawTargets "Google Main" "https://www.google.com"
Add-OrSet $rawTargets "Google Gstatic" "https://www.gstatic.com"
Add-OrSet $rawTargets "Cloudflare Web" "https://www.cloudflare.com"
Add-OrSet $rawTargets "Cloudflare CDN" "https://cdnjs.cloudflare.com"
Add-OrSet $rawTargets "Cloudflare DNS 1.1.1.1" "PING:1.1.1.1"
Add-OrSet $rawTargets "Cloudflare DNS 1.0.0.1" "PING:1.0.0.1"
Add-OrSet $rawTargets "Google DNS 8.8.8.8" "PING:8.8.8.8"
Add-OrSet $rawTargets "Google DNS 8.8.4.4" "PING:8.8.4.4"
Add-OrSet $rawTargets "Quad9 DNS 9.9.9.9" "PING:9.9.9.9"
} else {
Write-Host ""
Write-Host "[INFO] Loaded targets from targets.txt" -ForegroundColor Gray
Write-Host "[INFO] Targets loaded: $($rawTargets.Count)" -ForegroundColor Gray
}
foreach ($key in $rawTargets.Keys) {
$targetList += Convert-Target -Name $key -Value $rawTargets[$key]
}
$maxNameLen = ($targetList | ForEach-Object { $_.Name.Length } | Measure-Object -Maximum).Maximum
if (-not $maxNameLen -or $maxNameLen -lt 10) { $maxNameLen = 10 }
}
# Ensure we have configs to run
if (-not $batFiles -or $batFiles.Count -eq 0) {
Write-Host "[ERROR] No general*.bat files found" -ForegroundColor Red
Write-Host "Press any key to exit..." -ForegroundColor Yellow
[void][System.Console]::ReadKey($true)
exit 1
}
# Stop winws
function Stop-Zapret {
Get-Process -Name "winws" -ErrorAction SilentlyContinue | Stop-Process -Force
}
# Capture/restore running winws instances to return user ipset/config
function Get-WinwsSnapshot {
try {
return Get-CimInstance Win32_Process -Filter "Name='winws.exe'" |
Select-Object ProcessId, CommandLine, ExecutablePath
} catch {
return @()
}
}
function Restore-WinwsSnapshot {
param($snapshot)
if (-not $snapshot -or $snapshot.Count -eq 0) { return }
$current = @()
try { $current = (Get-WinwsSnapshot).CommandLine } catch { $current = @() }
Write-Host "[INFO] Restoring previously running winws instances..." -ForegroundColor DarkGray
foreach ($p in $snapshot) {
if (-not $p.ExecutablePath) { continue }
# Skip if an identical command line is already active
if ($current -and $current -contains $p.CommandLine) { continue }
$exe = $p.ExecutablePath
$args = ""
if ($p.CommandLine) {
$quotedExe = '"' + $exe + '"'
if ($p.CommandLine.StartsWith($quotedExe)) {
$args = $p.CommandLine.Substring($quotedExe.Length).Trim()
} elseif ($p.CommandLine.StartsWith($exe)) {
$args = $p.CommandLine.Substring($exe.Length).Trim()
}
}
Start-Process -FilePath $exe -ArgumentList $args -WorkingDirectory (Split-Path $exe -Parent) -WindowStyle Minimized | Out-Null
}
}
$originalWinws = Get-WinwsSnapshot
Write-Host ""
Write-Host "============================================================" -ForegroundColor Cyan
Write-Host " ZAPRET CONFIG TESTS" -ForegroundColor Cyan
Write-Host " Mode: $($testType.ToUpper())" -ForegroundColor Cyan
Write-Host " Total configs: $($batFiles.Count.ToString().PadLeft(2))" -ForegroundColor Cyan
Write-Host "============================================================" -ForegroundColor Cyan
try {
# Save original ipset status and switch to 'any' for accurate DPI tests
if (($originalIpsetStatus -ne "any") -and ($testType -eq 'dpi')) {
Write-Host "[WARNING] Ipset is in '$originalIpsetStatus' mode. Switching to 'any' for accurate DPI tests..." -ForegroundColor Yellow
Set-IpsetMode -mode "any"
# Create flag file to indicate ipset was switched
"" | Out-File -FilePath $ipsetFlagFile -Encoding UTF8
}
Write-Host "[WARNING] Tests may take several minutes to complete. Please wait..." -ForegroundColor Yellow
$configNum = 0
foreach ($file in $batFiles) {
$configNum++
Write-Host ""
Write-Host "------------------------------------------------------------" -ForegroundColor DarkCyan
Write-Host " [$configNum/$($batFiles.Count)] $($file.Name)" -ForegroundColor Yellow
Write-Host "------------------------------------------------------------" -ForegroundColor DarkCyan
# Cleanup
Stop-Zapret
# Start config
Write-Host " > Starting config..." -ForegroundColor Cyan
$proc = Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$($file.FullName)`"" -WorkingDirectory $targetDir -PassThru -WindowStyle Minimized
# Wait init
Start-Sleep -Seconds 5
if ($testType -eq 'standard') {
$curlTimeoutSeconds = 5
# Parallel target checks via runspace pool (faster than jobs)
$maxParallel = 8
$runspacePool = [runspacefactory]::CreateRunspacePool(1, $maxParallel)
$runspacePool.Open()
$scriptBlock = {
param($t, $curlTimeoutSeconds)
$httpPieces = @()
if ($t.Url) {
$tests = @(
@{ Label = "HTTP"; Args = @("--http1.1") },
@{ Label = "TLS1.2"; Args = @("--tlsv1.2", "--tls-max", "1.2") },
@{ Label = "TLS1.3"; Args = @("--tlsv1.3", "--tls-max", "1.3") }
)
$baseArgs = @("-I", "-s", "-m", $curlTimeoutSeconds, "-o", "NUL", "-w", "%{http_code}")
foreach ($test in $tests) {
try {
$curlArgs = $baseArgs + $test.Args
$output = & curl.exe @curlArgs $t.Url 2>&1
$text = ($output | Out-String).Trim()
$unsupported = (($LASTEXITCODE -eq 35) -or ($text -match "does not support|not supported|protocol\s+'?.+'?\s+not\s+supported|unsupported protocol|TLS.*not supported|Unrecognized option|Unknown option|unsupported option|unsupported feature|schannel|SSL"))
if ($unsupported) {
$httpPieces += "$($test.Label):UNSUP"
continue
}
$ok = ($LASTEXITCODE -eq 0)
if ($ok) {
$httpPieces += "$($test.Label):OK "
} else {
$httpPieces += "$($test.Label):ERROR"
}
} catch {
$httpPieces += "$($test.Label):ERROR"
}
}
}
$pingResult = "n/a"
if ($t.PingTarget) {
try {
$pings = Test-Connection -ComputerName $t.PingTarget -Count 3 -ErrorAction Stop
$avg = ($pings | Measure-Object -Property ResponseTime -Average).Average
$pingResult = "{0:N0} ms" -f $avg
} catch {
$pingResult = "Timeout"
}
}
return (New-Object PSObject -Property @{
Name = $t.Name
HttpTokens = $httpPieces
PingResult = $pingResult
IsUrl = [bool]$t.Url
})
}
$runspaces = @()
foreach ($target in $targetList) {
$ps = [powershell]::Create().AddScript($scriptBlock)
[void]$ps.AddArgument($target)
[void]$ps.AddArgument($curlTimeoutSeconds)
$ps.RunspacePool = $runspacePool
$runspaces += [PSCustomObject]@{
Powershell = $ps
Handle = $ps.BeginInvoke()
}
}
$script:currentLine = " > Running tests..."
Write-Host $script:currentLine -ForegroundColor DarkGray
$targetResults = @()
foreach ($rs in $runspaces) {
try {
$waitMs = ([int]$curlTimeoutSeconds + 5) * 1000
$handle = $rs.Handle
if ($handle -and $handle.AsyncWaitHandle) {
$completed = $handle.AsyncWaitHandle.WaitOne($waitMs)
if (-not $completed) {
Write-Host "[WARN] Runspace for target timed out after $waitMs ms; stopping runspace..." -ForegroundColor Yellow
try { $rs.Powershell.Stop() } catch {}
}
}
} catch {
# ignore
}
try {
$targetResults += $rs.Powershell.EndInvoke($rs.Handle)
} catch {
Write-Host "[WARN] EndInvoke failed for a runspace; treating as failure." -ForegroundColor Yellow
$targetResults += [PSCustomObject]@{ Name = 'UNKNOWN'; HttpTokens = @('HTTP:ERROR'); PingResult = 'Timeout'; IsUrl = $true }
}
$rs.Powershell.Dispose()
}
$runspacePool.Close()
$runspacePool.Dispose()
$targetLookup = @{}
foreach ($res in $targetResults) { $targetLookup[$res.Name] = $res }
foreach ($target in $targetList) {
$res = $targetLookup[$target.Name]
if (-not $res) { continue }
Write-Host " $($target.Name.PadRight($maxNameLen)) " -NoNewline
if ($res.IsUrl -and $res.HttpTokens) {
foreach ($tok in $res.HttpTokens) {
$tokColor = "Green"
if ($tok -match "UNSUP") { $tokColor = "Yellow" }
elseif ($tok -match "ERR") { $tokColor = "Red" }
Write-Host " $tok" -NoNewline -ForegroundColor $tokColor
}
Write-Host " | Ping: " -NoNewline -ForegroundColor DarkGray
if ($res.PingResult -eq "Timeout") {
$pingColor = "Yellow"
} else {
$pingColor = "Cyan"
}
Write-Host "$($res.PingResult)" -NoNewline -ForegroundColor $pingColor
Write-Host ""
} else {
# Ping-only target
Write-Host " Ping: " -NoNewline -ForegroundColor DarkGray
if ($res.PingResult -eq "Timeout") {
$pingColor = "Red"
} else {
$pingColor = "Cyan"
}
Write-Host "$($res.PingResult)" -ForegroundColor $pingColor
}
}
$globalResults += @{ Config = $file.Name; Type = 'standard'; Results = $targetResults }
} else {
Write-Host " > Running DPI checkers..." -ForegroundColor DarkGray
$dpiResults = Invoke-DpiSuite -Targets $dpiTargets -TimeoutSeconds $dpiTimeoutSeconds -RangeBytes $dpiRangeBytes -WarnMinKB $dpiWarnMinKB -WarnMaxKB $dpiWarnMaxKB -MaxParallel $dpiMaxParallel
$globalResults += @{ Config = $file.Name; Type = 'dpi'; Results = $dpiResults }
}
# Stop
Stop-Zapret
if (-not $proc.HasExited) { Stop-Process -Id $proc.Id -Force -ErrorAction SilentlyContinue }
}
Write-Host ""
Write-Host "All tests finished." -ForegroundColor Green
# Analytics
$analytics = @{}
foreach ($res in $globalResults) {
if ($res.Type -eq 'standard') {
foreach ($targetRes in $res.Results) {
$config = $res.Config
if (-not $analytics.ContainsKey($config)) { $analytics[$config] = @{ OK = 0; ERROR = 0; UNSUP = 0; PingOK = 0; PingFail = 0 } }
if ($targetRes.IsUrl) {
foreach ($tok in $targetRes.HttpTokens) {
if ($tok -match "OK") { $analytics[$config].OK++ }
elseif ($tok -match "ERROR") { $analytics[$config].ERROR++ }
elseif ($tok -match "UNSUP") { $analytics[$config].UNSUP++ }
}
}
if ($targetRes.PingResult -ne "Timeout" -and $targetRes.PingResult -ne "n/a") { $analytics[$config].PingOK++ } else { $analytics[$config].PingFail++ }
}
} elseif ($res.Type -eq 'dpi') {
foreach ($targetRes in $res.Results) {
$config = $res.Config
if (-not $analytics.ContainsKey($config)) { $analytics[$config] = @{ OK = 0; FAIL = 0; UNSUPPORTED = 0; LIKELY_BLOCKED = 0 } }
foreach ($line in $targetRes.Lines) {
if ($line.Status -eq "OK") { $analytics[$config].OK++ }
elseif ($line.Status -eq "FAIL") { $analytics[$config].FAIL++ }
elseif ($line.Status -eq "UNSUPPORTED") { $analytics[$config].UNSUPPORTED++ }
elseif ($line.Status -eq "LIKELY_BLOCKED") { $analytics[$config].LIKELY_BLOCKED++ }
}
}
}
}
Write-Host ""
Write-Host "=== ANALYTICS ===" -ForegroundColor Cyan
foreach ($config in $analytics.Keys) {
$a = $analytics[$config]
if ($a.ContainsKey('PingOK')) {
Write-Host "$config : HTTP OK: $($a.OK), ERR: $($a.ERROR), UNSUP: $($a.UNSUP), Ping OK: $($a.PingOK), Fail: $($a.PingFail)" -ForegroundColor Yellow
} else {
Write-Host "$config : OK: $($a.OK), FAIL: $($a.FAIL), UNSUP: $($a.UNSUPPORTED), BLOCKED: $($a.LIKELY_BLOCKED)" -ForegroundColor Yellow
}
}
# Determine best strategy
$bestConfig = $null
$maxScore = 0
$maxPing = -1
foreach ($config in $analytics.Keys) {
$a = $analytics[$config]
$score = $a.OK
$pingScore = 0
if ($a.ContainsKey('PingOK')) {
$pingScore = $a.PingOK
}
if ($score -gt $maxScore) {
$maxScore = $score
$maxPing = $pingScore
$bestConfig = $config
} elseif ($score -eq $maxScore) {
if ($pingScore -gt $maxPing) {
$maxPing = $pingScore
$bestConfig = $config
}
}
}
Write-Host ""
Write-Host "Best config: $bestConfig" -ForegroundColor Green
Write-Host ""
# Save to file
$dateStr = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$resultFile = Join-Path $resultsDir "test_results_$dateStr.txt"
# Clear file
"" | Out-File $resultFile -Encoding UTF8
foreach ($res in $globalResults) {
$config = $res.Config
$type = $res.Type
$results = $res.Results
Add-Content $resultFile "Config: $config (Type: $type)"
if ($type -eq 'standard') {
foreach ($targetRes in $results) {
$name = $targetRes.Name
$http = $targetRes.HttpTokens -join ' '
$ping = $targetRes.PingResult
Add-Content $resultFile " $name : $http | Ping: $ping"
}
} elseif ($type -eq 'dpi') {
foreach ($targetRes in $results) {
$id = $targetRes.TargetId
$provider = $targetRes.Provider
Add-Content $resultFile " Target: $id ($provider)"
foreach ($line in $targetRes.Lines) {
$test = $line.TestLabel
$code = $line.Code
$size = $line.SizeKB
$status = $line.Status
Add-Content $resultFile " ${test}: code=${code} size=${size} KB status=${status}"
}
}
}
Add-Content $resultFile ""
}
# Add analytics
Add-Content $resultFile "=== ANALYTICS ==="
foreach ($config in $analytics.Keys) {
$a = $analytics[$config]
if ($a.ContainsKey('PingOK')) {
Add-Content $resultFile "$config : HTTP OK: $($a.OK), ERR: $($a.ERROR), UNSUP: $($a.UNSUP), Ping OK: $($a.PingOK), Fail: $($a.PingFail)"
} else {
Add-Content $resultFile "$config : OK: $($a.OK), FAIL: $($a.FAIL), UNSUP: $($a.UNSUPPORTED), BLOCKED: $($a.LIKELY_BLOCKED)"
}
}
Add-Content $resultFile "Best strategy: $bestConfig"
Write-Host "Results saved to $resultFile" -ForegroundColor Green
} catch {
Write-Host "[ERROR] An error occurred during tests. Restoring ipset..." -ForegroundColor Red
if ($originalIpsetStatus -and $originalIpsetStatus -ne "any") {
Set-IpsetMode -mode "restore"
}
Remove-Item -Path $ipsetFlagFile -ErrorAction SilentlyContinue
} finally {
Stop-Zapret
Restore-WinwsSnapshot -snapshot $originalWinws
if ($originalIpsetStatus -ne "any") {
Write-Host "[INFO] Restoring original ipset mode..." -ForegroundColor DarkGray
Set-IpsetMode -mode "restore"
}
Remove-Item -Path $ipsetFlagFile -ErrorAction SilentlyContinue
}
Write-Host "Press any key to close..." -ForegroundColor Yellow
[void][System.Console]::ReadKey($true)
exit
}