mirror of
https://github.com/Flowseal/zapret-discord-youtube.git
synced 2026-03-24 17:18:42 +05:00
Compare commits
132 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4180d36b68 | ||
|
|
5033f20594 | ||
|
|
789254328a | ||
|
|
f754baa650 | ||
|
|
04df4830e7 | ||
|
|
e20eecd37c | ||
|
|
8a1885d7d0 | ||
|
|
d2cf5c005c | ||
|
|
59f26cc148 | ||
|
|
ab727a9094 | ||
|
|
a7f23f17f4 | ||
|
|
95a23d6bf5 | ||
|
|
e88c07d0ec | ||
|
|
2d8f7c0c1f | ||
|
|
028c9badf6 | ||
|
|
454b12c9fb | ||
|
|
528b707bab | ||
|
|
651342d06f | ||
|
|
621a501d03 | ||
|
|
ada3a43664 | ||
|
|
56977c45a1 | ||
|
|
5a2b7d5e52 | ||
|
|
4f7d1bb9d0 | ||
|
|
51cbdb2180 | ||
|
|
6b33dd5600 | ||
|
|
d40ae860e1 | ||
|
|
a725b3eb65 | ||
|
|
f3556ec9c8 | ||
|
|
52fd70e98a | ||
|
|
cee87db301 | ||
|
|
6e299fce26 | ||
|
|
bab2426685 | ||
|
|
c341cfce2d | ||
|
|
b4e9e2a778 | ||
|
|
0bb36b8345 | ||
|
|
6fa7bbfd99 | ||
|
|
e5c16c26dd | ||
|
|
e5e03903a3 | ||
|
|
7caf18f067 | ||
|
|
5de4f57df4 | ||
|
|
b9ec911ef4 | ||
|
|
dc417adf7b | ||
|
|
72d93b88c6 | ||
|
|
2017b60d0c | ||
|
|
ed4d52108b | ||
|
|
fe6e10e861 | ||
|
|
e97d00946c | ||
|
|
ae99645851 | ||
|
|
2f46d349e3 | ||
|
|
770c25bceb | ||
|
|
4239338f41 | ||
|
|
8970cd4ede | ||
|
|
dd6f1b6c6e | ||
|
|
97bfe7301b | ||
|
|
5caadc8fcf | ||
|
|
1c694cf9cc | ||
|
|
7f086ae776 | ||
|
|
3fa8f33f79 | ||
|
|
adf4927fb2 | ||
|
|
4f617f31e9 | ||
|
|
cd21d074ca | ||
|
|
778f6d4c0f | ||
|
|
1c05e1b2d3 | ||
|
|
7afb2cf364 | ||
|
|
e548374644 | ||
|
|
5c6e6a56de | ||
|
|
f933c41ac4 | ||
|
|
68a89148f1 | ||
|
|
0a513b9409 | ||
|
|
4a05ad518f | ||
|
|
9c302f1bbf | ||
|
|
0949686499 | ||
|
|
2a4e602621 | ||
|
|
10ae6c6cf2 | ||
|
|
875be6bf67 | ||
|
|
8e8156472a | ||
|
|
105e2cd302 | ||
|
|
3eb9afdf52 | ||
|
|
733c14d37a | ||
|
|
4743104fe0 | ||
|
|
46b1ce93dc | ||
|
|
25e01f021d | ||
|
|
98d637d8b3 | ||
|
|
586aeca80c | ||
|
|
72294fa261 | ||
|
|
d3d1569572 | ||
|
|
7b9673764d | ||
|
|
bf924b803f | ||
|
|
a609396772 | ||
|
|
7e52c9790a | ||
|
|
731013a010 | ||
|
|
adbe23b167 | ||
|
|
89a9ada900 | ||
|
|
32bc3939b2 | ||
|
|
80f1ba0570 | ||
|
|
3db34875e1 | ||
|
|
efeee9d4cd | ||
|
|
ddbb863649 | ||
|
|
cfec4f6963 | ||
|
|
2ca69a8252 | ||
|
|
1955a838f3 | ||
|
|
f684e33754 | ||
|
|
4a3ce73378 | ||
|
|
cc52322fe5 | ||
|
|
2cd68f24f1 | ||
|
|
13444ab388 | ||
|
|
b23ef448d7 | ||
|
|
83a6efa135 | ||
|
|
fa32c6661c | ||
|
|
ba78a8e6c8 | ||
|
|
c96152664f | ||
|
|
86e7e06274 | ||
|
|
163bb7613c | ||
|
|
f76d4cf376 | ||
|
|
7f7831d82a | ||
|
|
a4425d7b6e | ||
|
|
653d01b224 | ||
|
|
cf03dd0c3d | ||
|
|
105978ee43 | ||
|
|
6b71827a3b | ||
|
|
702e7cd13f | ||
|
|
c8eb80b4c6 | ||
|
|
8d2deff133 | ||
|
|
3ef216b71b | ||
|
|
785b8de6d2 | ||
|
|
faed518d0c | ||
|
|
50a6d390f7 | ||
|
|
e0455fcbfc | ||
|
|
df54a4ea72 | ||
|
|
7a55a2f3cd | ||
|
|
8a30df6f03 | ||
|
|
779853740f |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.bat text eol=crlf
|
||||
*.ps1 text eol=crlf
|
||||
120
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
120
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -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
51
.github/workflows/comment.yml
vendored
Normal 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
30
.github/workflows/stale.yml
vendored
Normal 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
200
.service/hosts
Normal 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
12063
.service/ipset-service.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
1.7.2b
|
||||
1.9.2
|
||||
140
README.md
140
README.md
@@ -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 будет неактуальным, то Вам будет предложено обновить его самостоятельно:
|
||||
- Cкопируйте весь текст из открывшегося блокнота
|
||||
- Откройте файл `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>
|
||||
|
||||
BIN
bin/tls_clienthello_4pda_to.bin
Normal file
BIN
bin/tls_clienthello_4pda_to.bin
Normal file
Binary file not shown.
BIN
bin/tls_clienthello_max_ru.bin
Normal file
BIN
bin/tls_clienthello_max_ru.bin
Normal file
Binary file not shown.
BIN
bin/winws.exe
BIN
bin/winws.exe
Binary file not shown.
@@ -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
|
||||
16
discord.bat
16
discord.bat
@@ -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
|
||||
@@ -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
23
general (ALT10).bat
Normal 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
23
general (ALT11).bat
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
23
general (ALT6).bat
Normal 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
23
general (ALT7).bat
Normal 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
23
general (ALT8).bat
Normal 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
23
general (ALT9).bat
Normal 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
|
||||
23
general (FAKE TLS AUTO ALT).bat
Normal file
23
general (FAKE TLS AUTO ALT).bat
Normal 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
|
||||
23
general (FAKE TLS AUTO ALT2).bat
Normal file
23
general (FAKE TLS AUTO ALT2).bat
Normal 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
|
||||
23
general (FAKE TLS AUTO ALT3).bat
Normal file
23
general (FAKE TLS AUTO ALT3).bat
Normal 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
|
||||
23
general (FAKE TLS AUTO).bat
Normal file
23
general (FAKE TLS AUTO).bat
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
23
general (SIMPLE FAKE ALT).bat
Normal file
23
general (SIMPLE FAKE ALT).bat
Normal 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
|
||||
23
general (SIMPLE FAKE ALT2).bat
Normal file
23
general (SIMPLE FAKE ALT2).bat
Normal 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
23
general (SIMPLE FAKE).bat
Normal 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
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
19
general.bat
19
general.bat
@@ -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
1
lists/ipset-all.txt
Normal file
@@ -0,0 +1 @@
|
||||
203.0.113.113/32
|
||||
12063
lists/ipset-all.txt.backup
Normal file
12063
lists/ipset-all.txt.backup
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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
11
lists/ipset-exclude.txt
Normal 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
|
||||
@@ -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
25
lists/list-exclude.txt
Normal 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
|
||||
@@ -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
17
lists/list-google.txt
Normal 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
|
||||
650
service.bat
650
service.bat
@@ -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
|
||||
1
utils/check_updates.enabled
Normal file
1
utils/check_updates.enabled
Normal file
@@ -0,0 +1 @@
|
||||
ENABLED
|
||||
35
utils/targets.txt
Normal file
35
utils/targets.txt
Normal 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
893
utils/test zapret.ps1
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user