mirror of
https://github.com/Flowseal/zapret-discord-youtube.git
synced 2026-03-24 17:18:42 +05:00
Compare commits
233 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 | ||
|
|
87ee178546 | ||
|
|
33f30fa00c | ||
|
|
2785c4616f | ||
|
|
fc29a5794c | ||
|
|
27d47f3bdd | ||
|
|
d86df6be35 | ||
|
|
b5b331e822 | ||
|
|
755353ecd7 | ||
|
|
a7edae47bc | ||
|
|
127a19effe | ||
|
|
383410f6fa | ||
|
|
feb4a69c99 | ||
|
|
4b27f7713e | ||
|
|
199829795c | ||
|
|
aaac27e74e | ||
|
|
4166c5cf19 | ||
|
|
96d14286c7 | ||
|
|
c6bdc104d8 | ||
|
|
0f4591d813 | ||
|
|
3da7c54ec3 | ||
|
|
2ed3c1e279 | ||
|
|
0360ff318b | ||
|
|
ccd2839bdc | ||
|
|
475cfd99c6 | ||
|
|
e2a5649180 | ||
|
|
3911688102 | ||
|
|
6ea2950d13 | ||
|
|
c00943cb8b | ||
|
|
05b5433209 | ||
|
|
cf02ce7791 | ||
|
|
0c59a9c45c | ||
|
|
09ea8c907d | ||
|
|
75a96d90f2 | ||
|
|
fc30567558 | ||
|
|
559f48c3d2 | ||
|
|
565e294599 | ||
|
|
50b6e1a819 | ||
|
|
30a7ac4e9b | ||
|
|
6718d597bf | ||
|
|
6334bbd284 | ||
|
|
daac2bb681 | ||
|
|
dcdb0a3dce | ||
|
|
6d526e5e51 | ||
|
|
543591bf65 | ||
|
|
facfbbc11a | ||
|
|
ca9aee77d3 | ||
|
|
e668a2ca7f | ||
|
|
f6af378b9c | ||
|
|
916f61d952 | ||
|
|
0e320fe52d | ||
|
|
99613c9423 | ||
|
|
7002b334a7 | ||
|
|
30c8ce9b68 | ||
|
|
81cf594ae4 | ||
|
|
7aedfac35f | ||
|
|
ef746381bd | ||
|
|
2b16cb4444 | ||
|
|
cacdebc5d5 | ||
|
|
23d47fd8b1 | ||
|
|
ec2b7c4b88 | ||
|
|
d20672ce27 | ||
|
|
591c8fa785 | ||
|
|
d3e1c91e77 | ||
|
|
f70fe5cb27 | ||
|
|
f7a2220afd | ||
|
|
6874c0e429 | ||
|
|
63ed7d76ca | ||
|
|
7facdc039f | ||
|
|
642f6927ff | ||
|
|
cae93c3cdf | ||
|
|
2c2b1ab779 | ||
|
|
d0567cd698 | ||
|
|
0b14284d2a | ||
|
|
dd278a1f71 | ||
|
|
03d2caac3c | ||
|
|
85fadd8e0c | ||
|
|
46b4e3e4f0 | ||
|
|
5682cd1654 | ||
|
|
5d4ad427e4 | ||
|
|
9bde74742a | ||
|
|
87b12253cb | ||
|
|
a43dcfb27c | ||
|
|
f0f6c27180 | ||
|
|
62ff4115b2 | ||
|
|
dc7364db1b | ||
|
|
5e9be26551 | ||
|
|
bb2ba55bbf | ||
|
|
a7cf34c9ac | ||
|
|
8072cb1ec9 | ||
|
|
4dcfd8e922 | ||
|
|
666f0aa25f | ||
|
|
f132879d28 | ||
|
|
609d9528dd | ||
|
|
5d4c1769c9 | ||
|
|
8478f088eb | ||
|
|
efbcb9000d | ||
|
|
db424b06de | ||
|
|
79eed2e5d2 | ||
|
|
db24a54998 | ||
|
|
92197db267 | ||
|
|
0b7ed0c418 |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.bat text eol=crlf
|
||||
*.ps1 text eol=crlf
|
||||
60
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
60
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +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: Дополнительные детали о которых нам нужно знать
|
||||
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
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +0,0 @@
|
||||
version.txt
|
||||
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.6.2
|
||||
1.9.2
|
||||
254
README.md
254
README.md
@@ -1,79 +1,180 @@
|
||||
# Zapret (обход блокировки Discord'а и Youtube'а)
|
||||
<div align="center">
|
||||
|
||||
> [!NOTE]
|
||||
> Данный репозиторий - **некоммерческая** *User-Friendly* сборка [оригинального репозитория](https://github.com/bol-van/zapret). Здесь используются оригинальные бинарники, сравнить которые вы можете с помощью хэша.
|
||||
> Так как zapret open-source, вы всегда можете сами собрать эти бинарники и не бояться вирусов.
|
||||
>
|
||||
>**Буду рад [⭐ поставленной репозиторию звезде](https://github.com/Flowseal/zapret-discord-youtube/stargazers) (в правом верхнем углу) 🙂**
|
||||
# <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 />
|
||||
|
||||
##
|
||||
Альтернатива 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]
|
||||
> **Многие антивирусники** в данный момент жалуются на ***HackTool/RiskTool*** и ***WinDivert*** - это нормальное поведение, так как программа изменяет сетевые пакеты. Что с этим делать? Собрать бинарники самому из исходников, довериться уже собранным, либо не использовать вовсе.
|
||||
> [!CAUTION]
|
||||
>
|
||||
> ### ФЕЙКИ
|
||||
> Я не веду никакие другие страницы/группы в телеграм/ютуб каналы
|
||||
> Если вы наткнулись на что-то вне этой страницы гитхаба, что распространяется от моего лица - **ФЕЙК**.
|
||||
|
||||
## License
|
||||
|
||||
Этот проект распространяется на условиях лицензии MIT.
|
||||
Полный текст лицензии можно найти в файле [LICENSE.txt](./LICENSE.txt)
|
||||
|
||||
## Guides
|
||||
### Windows
|
||||
> [!IMPORTANT]
|
||||
> Если ещё не сделали этого, то скачайте последний [релиз](https://github.com/Flowseal/zapret-discord-youtube/releases), разархивируйте в отдельную папку.
|
||||
|
||||
Запустите **от имени администратора** то, что вам нужно:
|
||||
- **`discord.bat`** - запустить обход дискорда.
|
||||
- **`general.bat`** - запустить обход дискорда и ютуба.
|
||||
* Если обход не работает, пробуйте по порядку **`general (ALT ..).bat`** (также можете проверить стратегию на **МГТС**)
|
||||
###
|
||||
- **`service_install.bat`** - установить на автозапуск (в сервисы) любую стратегию из этого репозитория (стратегия **НЕ** должна начинаться со слова `service`)
|
||||
###
|
||||
- **`service_remove.bat`** - остановить и удалить сервисы выше
|
||||
|
||||
## Решение проблем
|
||||
|
||||
- Проверьте, запускаете ли вы файлы от **ИМЕНИ АДМИНИСТРАТОРА**
|
||||
- Не запускаются bat файлы? Попробуйте найти ответ здесь: https://github.com/Flowseal/zapret-discord-youtube/issues/522
|
||||
- <p style="text-align: left;">
|
||||
<img src="https://cdn-icons-png.flaticon.com/16/3670/3670147.png" alt="discord" style="vertical-align: middle;"/>
|
||||
Не работает <strong>YouTube</strong>? Попробуйте найти ответ здесь -
|
||||
<a href="https://github.com/Flowseal/zapret-discord-youtube/discussions/251">Обсуждение YouTube</a>
|
||||
</p>
|
||||
- <p style="text-align: left;">
|
||||
<img src="https://cdn-icons-png.flaticon.com/16/906/906361.png" alt="discord" style="vertical-align: middle;"/>
|
||||
Не работает <strong>Discord</strong>? Попробуйте найти ответ здесь -
|
||||
<a href="https://github.com/Flowseal/zapret-discord-youtube/discussions/252">Обсуждение Discord</a>
|
||||
</p>
|
||||
##
|
||||
- Не работает вместе с **VPN**? Отключите функцию **TUN** (Tunneling) в настройках VPN.
|
||||
- Попробуйте обновить бинарники с оригинального репозитория.
|
||||
|
||||
### Остановка и удаление обхода
|
||||
Для этого запустите **`service_remove.bat`**.
|
||||
- Если WinDivert так и не удалился, узнайте его название с помощью команды `driverquery | find "Divert"` в cmd, а затем удалите данными командами (заместо WinDivert введите название, которые вы узнали):
|
||||
```
|
||||
sc stop WinDivert
|
||||
sc delete WinDivert
|
||||
```
|
||||
|
||||
### Добавление дополнительных адресов заблокированных сайтов
|
||||
- Список можно дополнить используя `list-general.txt` (для файлов `general`) и в список `list-discord` (для файлов `discord`).
|
||||
> [!IMPORTANT]
|
||||
> После добавления сервис нужно перезапустить.
|
||||
|
||||
## Linux
|
||||
В оригинальном репозитории [zapret](https://github.com/bol-van/zapret/) имеется достаточно информации для того, чтобы начать пользоваться обходом блокировок, но и стоит понимать, что нажатием одной кнопки ничего не заработает. \
|
||||
Достаточно следовать следующим инструкциям и всё внимательно читать:
|
||||
- [zapret/blob/master/docs/quick_start.md](https://github.com/bol-van/zapret/blob/master/docs/quick_start.md)
|
||||
- [zapret/blob/master/docs/readme.md](https://github.com/bol-van/zapret/blob/master/docs/readme.md)
|
||||
* https://github.com/Flowseal/zapret-discord-youtube/issues/7
|
||||
> [!WARNING]
|
||||
> Если вы открываете Issue *(в этом репозитории)* с проблемой в использовании на **Linux**, то, как бы это не звучало, это ошибка. Все вопросы по работе на Linux нужно открывать в **[ОРИГИНАЛЬНОМ](https://github.com/bol-van/zapret/)** репозитории. Следовательно, задавайте вопросы [тут](https://github.com/bol-van/zapret/issues/).
|
||||
>
|
||||
> ### АНТИВИРУСЫ
|
||||
> WinDivert может вызвать реакцию антивируса.
|
||||
> WinDivert - это инструмент для перехвата и фильтрации трафика, необходимый для работы zapret.
|
||||
> Замена iptables и NFQUEUE в Linux, которых нет под Windows.
|
||||
> Он может использоваться как хорошими, так и плохими программами, но сам по себе не является вирусом.
|
||||
> Драйвер WinDivert64.sys подписан для возможности загрузки в 64-битное ядро Windows.
|
||||
> Но антивирусы склонны относить подобное к классам повышенного риска или хакерским инструментам.
|
||||
> В случае проблем используйте исключения или выключайте антивирус совсем.
|
||||
>
|
||||
> **Выдержка из [`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)*
|
||||
|
||||
## Support
|
||||
> [!IMPORTANT]
|
||||
> Все бинарные файлы в папке [`bin`](./bin) взяты из [zapret-win-bundle/zapret-winws](https://github.com/bol-van/zapret-win-bundle/tree/master/zapret-winws). Вы можете это проверить с помощью хэшей/контрольных сумм. Проверяйте, что запускаете, используя сборки из интернета!
|
||||
|
||||
Вы можете поддержать проект, поставив :star: (сверху справа этой страницы)!
|
||||
Также, вы можете поддержать разработчика [оригинального репозитория zapret](https://github.com/bol-van/zapret/issues/590) тут - https://github.com/bol-van/zapret/issues/590
|
||||
## ⚙️Использование
|
||||
|
||||
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. Скачайте архив (zip/rar) со [страницы последнего релиза](https://github.com/Flowseal/zapret-discord-youtube/releases/latest)
|
||||
|
||||
3. Зайдите в свойства скачанного архива и поставьте галочку "Разблокировать". Если вы используете архиватор 7-Zip или PeaZip, этот шаг можно пропустить
|
||||
|
||||
4. Распакуйте содержимое архива по пути, который не содержит кириллицу/спец. символы
|
||||
|
||||
5. Запустите нужный файл
|
||||
|
||||
## ℹ️Краткие описания файлов
|
||||
|
||||
- [**`general.bat ...`**](./general.bat) - запуск стратегии вручную
|
||||
|
||||
Запуск вручную можно использовать для проверки работоспособности стратегий. Работоспособность той или иной стратегии зависит от многих факторов. **Пробуйте разные стратегии (ALT, FAKE и другие), пока не найдёте рабочее для вас решение**
|
||||
|
||||
- [**`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 и др.)
|
||||
|
||||
|
||||
## ☑️Распространенные вопросы и проблемы
|
||||
|
||||
### После запуска скрипта `general*` ничего не происходит
|
||||
|
||||
- После запуска стратегии (отдельным bat файлом, не через service), должен открыться winws.exe (обход), который можно увидеть в панели задач.
|
||||
Если этого не произошло, то см. [#522](https://github.com/Flowseal/zapret-discord-youtube/issues/522)
|
||||
|
||||
### Бесконечное "подключение" к голосовому чату Discord
|
||||
Запустите **`service.bat`**, выберите пункт **`Update hosts file (for discord voice)`**. После чего, если ваш hosts будет неактуальным, то Вам будет предложено обновить его самостоятельно:
|
||||
- Cкопируйте весь текст из открывшегося блокнота
|
||||
- Откройте файл `hosts` в появившейся папке с помощью текстового редактора
|
||||
- Добавьте в конец файла `hosts` то, что скопировали (или замените, если до этого Вы уже добавляли подобное)
|
||||
- Сохраните и перепроверьте подключение. Если не работает - убедитесь, что файл `hosts` действительно сохранился.
|
||||
|
||||
### Обход не работает / перестал работать
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Стратегии со временем могут переставать работать.**
|
||||
> Определенная стратегия может работать какое-то время, но со временем она может переставать работать из-за обнаружения.
|
||||
> В репозитории представлены множество различных стратегий для обхода. Если ни одна из них вам не помогает, то вам необходимо создать новую, взяв за основу одну из представленных здесь и изменив её параметры.
|
||||
> Информацию про параметры стратегий вы можете найти [тут](https://github.com/bol-van/zapret/blob/master/docs/readme.md#nfqws).
|
||||
|
||||
- Проверьте, чтобы не было ошибок в `service.bat` -> `Run Diagnostics`
|
||||
|
||||
- Убедитесь, что адрес ресурса записан в списках доменов или 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` -> выбираете нужную
|
||||
|
||||
### Не работает игра/приложение с включённым запретом
|
||||
|
||||
- Проверьте, что в 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)
|
||||
|
||||
### При удалении с помощью [**`service.bat`**](./service.bat), WinDivert остается в службах
|
||||
|
||||
1. Узнайте название службы с помощью команды, в командной строке Windows (Win+R, `cmd`):
|
||||
|
||||
```cmd
|
||||
driverquery | find "Divert"
|
||||
```
|
||||
|
||||
2. Остановите и удалите службу командами:
|
||||
|
||||
```cmd
|
||||
sc stop название_из_первого_шага
|
||||
|
||||
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`](./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?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>
|
||||
@@ -83,11 +184,12 @@ sc delete WinDivert
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
## Credits & Contributors
|
||||
<p align="left">
|
||||
<a href="https://github.com/Flowseal/zapret-discord-youtube/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=Flowseal/zapret-discord-youtube" />
|
||||
</a>
|
||||
</p>
|
||||
## ⚖️Лицензирование
|
||||
|
||||
* Many thanks to [bol-van](https://github.com/bol-van/), creator of original [zapret](https://github.com/bol-van/zapret/) repository.
|
||||
Проект распространяется на условиях лицензии [MIT](https://github.com/Flowseal/zapret-discord-youtube/blob/main/LICENSE.txt)
|
||||
|
||||
## 🩷Благодарность участникам проекта
|
||||
|
||||
[](https://github.com/Flowseal/zapret-discord-youtube/graphs/contributors)
|
||||
|
||||
💖 Отдельная благодарность разработчику [zapret](https://github.com/bol-van/zapret) - [bol-van](https://github.com/bol-van)
|
||||
|
||||
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.
Binary file not shown.
BIN
bin/winws.exe
BIN
bin/winws.exe
Binary file not shown.
@@ -1,88 +0,0 @@
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
chcp 437 > nul
|
||||
|
||||
set "CURRENT_VERSION=1.6.2"
|
||||
set "GITHUB_URL=https://raw.githubusercontent.com/Flowseal/zapret-discord-youtube/refs/heads/main/.service/version.txt"
|
||||
set "RELEASE_URL=https://github.com/Flowseal/zapret-discord-youtube/releases"
|
||||
set "VERSION_FILE=version.txt"
|
||||
set "SKIP_VERSION=null"
|
||||
set "FILE_EXISTS=1"
|
||||
|
||||
for /f "delims=" %%A in ('powershell -command "[datetime]::Now.ToString('yyyy-MM-dd HH:mm:ss')"') do set CURRENT_TIMESTAMP=%%A
|
||||
|
||||
:: If file version.txt exists
|
||||
if not exist %VERSION_FILE% (
|
||||
set "FILE_EXISTS=0"
|
||||
echo time: %CURRENT_TIMESTAMP%> %VERSION_FILE%
|
||||
echo ver: %CURRENT_VERSION%>> %VERSION_FILE%
|
||||
)
|
||||
|
||||
:: Reading data from local version.txt
|
||||
for /f "tokens=1,* delims=: " %%A in (%VERSION_FILE%) do (
|
||||
if "%%A"=="time" set "LAST_CHECK=%%B"
|
||||
if "%%A"=="ver" set "INSTALLED_VERSION=%%B"
|
||||
if "%%A"=="skip" set "SKIP_VERSION=%%B"
|
||||
)
|
||||
|
||||
:: If file was called from thirdparty script (with 'soft' argument that blocks checking for 12 hours)
|
||||
if "%~1"=="soft" (
|
||||
:: Converting dates to parts for calculation
|
||||
for /f "tokens=1-6 delims=-: " %%A in ("%CURRENT_TIMESTAMP%") do (
|
||||
set "CURRENT_MONTH=%%B"
|
||||
set "CURRENT_DAY=%%C"
|
||||
set "CURRENT_HOUR=%%D"
|
||||
)
|
||||
for /f "tokens=1-6 delims=-: " %%A in ("%LAST_CHECK%") do (
|
||||
set "LAST_MONTH=%%B"
|
||||
set "LAST_DAY=%%C"
|
||||
set "LAST_HOUR=%%D"
|
||||
)
|
||||
|
||||
set /a "time_diff_in_minutes = (CURRENT_MONTH - LAST_MONTH) * 43200 + (CURRENT_DAY - LAST_DAY) * 1440 + (CURRENT_HOUR - LAST_HOUR) * 60"
|
||||
|
||||
if !time_diff_in_minutes! LEQ 360 if !FILE_EXISTS!==1 (
|
||||
echo Skipping the update check because it hasnt been 6 hours
|
||||
goto :EOF
|
||||
)
|
||||
)
|
||||
|
||||
:: Reading new version from github
|
||||
set "NEW_VERSION="
|
||||
for /f "delims=" %%A in ('powershell -command "(Invoke-WebRequest -Uri %GITHUB_URL% -Headers @{\"Cache-Control\"=\"no-cache\"} -TimeoutSec 5).Content" 2^>nul') do set "NEW_VERSION=%%A"
|
||||
if not defined NEW_VERSION (
|
||||
echo Error reading new version
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
:: Rewrite file
|
||||
echo time: %CURRENT_TIMESTAMP%> %VERSION_FILE%
|
||||
echo ver: %INSTALLED_VERSION%>> %VERSION_FILE%
|
||||
echo skip: %SKIP_VERSION%>> %VERSION_FILE%
|
||||
|
||||
:: Comparing versions
|
||||
if "%NEW_VERSION%"=="%INSTALLED_VERSION%" (
|
||||
echo You are using the latest version %NEW_VERSION%.
|
||||
goto :EOF
|
||||
) else (
|
||||
:: Check if version skipped
|
||||
if "%NEW_VERSION%"=="%SKIP_VERSION%" (
|
||||
echo Newer version %NEW_VERSION% skipped by user.
|
||||
goto :EOF
|
||||
) else (
|
||||
echo New version found: %NEW_VERSION%.
|
||||
echo Visit %RELEASE_URL% to download a new version
|
||||
)
|
||||
)
|
||||
|
||||
:: Skip check
|
||||
set /p "CHOICE=Skip this update? (y/n, default: n): " || set "CHOICE=n"
|
||||
set "CHOICE=!CHOICE:~0,1!"
|
||||
if /i "!CHOICE!"=="y" (
|
||||
echo skip: %NEW_VERSION%>> %VERSION_FILE%
|
||||
echo Update %NEW_VERSION% skipped.
|
||||
) else (
|
||||
start %RELEASE_URL%
|
||||
)
|
||||
|
||||
endlocal
|
||||
15
discord.bat
15
discord.bat
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
|
||||
start "zapret: discord" /min "%BIN%winws.exe" --wf-tcp=443 --wf-udp=443,50000-50100 ^
|
||||
--filter-udp=443 --hostlist="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=443 --hostlist="list-discord.txt" --dpi-desync=fake,split --dpi-desync-autottl=2 --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
@@ -1,16 +1,23 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="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"
|
||||
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
|
||||
@@ -1,16 +1,23 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="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"
|
||||
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
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="list-general.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
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=8 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="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"
|
||||
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
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
:: NOT RECOMMENDED
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="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
|
||||
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
|
||||
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,16 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
|
||||
start "zapret: general" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
|
||||
--filter-udp=443 --hostlist="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="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"
|
||||
@@ -1,16 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
|
||||
start "zapret: general" /min "%BIN%winws.exe" --wf-tcp=80,443 --wf-udp=443,50000-50100 ^
|
||||
--filter-udp=443 --hostlist="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="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"
|
||||
25
general.bat
25
general.bat
@@ -1,16 +1,23 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
chcp 65001 > nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
cd /d "%~dp0"
|
||||
call service_status.bat zapret
|
||||
call check_updates.bat soft
|
||||
call service.bat status_zapret
|
||||
call service.bat check_updates
|
||||
call service.bat load_game_filter
|
||||
echo:
|
||||
|
||||
set BIN=%~dp0bin\
|
||||
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="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 --ipset="ipset-discord.txt" --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d3 --dpi-desync-repeats=6 --new ^
|
||||
--filter-tcp=80 --hostlist="list-general.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new ^
|
||||
--filter-tcp=443 --hostlist="list-general.txt" --dpi-desync=fake,split --dpi-desync-autottl=2 --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=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,721 +0,0 @@
|
||||
5.200.14.249
|
||||
18.165.140.0/25
|
||||
23.227.38.74
|
||||
34.0.48.0/24
|
||||
34.0.49.64/26
|
||||
34.0.50.0/25
|
||||
34.0.51.0/24
|
||||
34.0.52.0/22
|
||||
34.0.56.0/23
|
||||
34.0.59.0/24
|
||||
34.0.60.0/24
|
||||
34.0.62.128/25
|
||||
34.0.63.228
|
||||
34.0.64.0/23
|
||||
34.0.66.130
|
||||
34.0.82.140
|
||||
34.0.129.128/25
|
||||
34.0.130.0/24
|
||||
34.0.131.130
|
||||
34.0.132.139
|
||||
34.0.133.75
|
||||
34.0.134.0/24
|
||||
34.0.135.251
|
||||
34.0.136.51
|
||||
34.0.137.0/24
|
||||
34.0.139.0/24
|
||||
34.0.140.0/23
|
||||
34.0.142.0/25
|
||||
34.0.144.0/23
|
||||
34.0.146.0/24
|
||||
34.0.148.25
|
||||
34.0.149.101
|
||||
34.0.151.0/25
|
||||
34.0.153.0/24
|
||||
34.0.155.0/24
|
||||
34.0.156.101
|
||||
34.0.157.0/25
|
||||
34.0.158.247
|
||||
34.0.159.188
|
||||
34.0.192.0/25
|
||||
34.0.193.0/24
|
||||
34.0.194.0/24
|
||||
34.0.195.172
|
||||
34.0.196.200/29
|
||||
34.0.197.81
|
||||
34.0.198.25
|
||||
34.0.199.0/24
|
||||
34.0.200.0/24
|
||||
34.0.201.81
|
||||
34.0.202.34
|
||||
34.0.203.0/24
|
||||
34.0.204.0/23
|
||||
34.0.206.0/25
|
||||
34.0.207.0/25
|
||||
34.0.208.195
|
||||
34.0.209.0/24
|
||||
34.0.210.20
|
||||
34.0.211.0/26
|
||||
34.0.212.0/24
|
||||
34.0.213.64/26
|
||||
34.0.215.128/25
|
||||
34.0.216.238
|
||||
34.0.217.0/24
|
||||
34.0.218.83
|
||||
34.0.220.103
|
||||
34.0.221.0/24
|
||||
34.0.222.193
|
||||
34.0.223.68
|
||||
34.0.227.0/24
|
||||
34.0.240.0/21
|
||||
34.0.248.0/23
|
||||
34.0.250.0/24
|
||||
34.0.251.0/25
|
||||
34.1.216.0/24
|
||||
34.1.221.166
|
||||
35.207.64.0/23
|
||||
35.207.67.116
|
||||
35.207.71.0/24
|
||||
35.207.72.32
|
||||
35.207.73.0/24
|
||||
35.207.74.0/24
|
||||
35.207.75.128/25
|
||||
35.207.76.128/26
|
||||
35.207.77.0/24
|
||||
35.207.78.129
|
||||
35.207.79.0/24
|
||||
35.207.80.76
|
||||
35.207.81.248/30
|
||||
35.207.82.0/23
|
||||
35.207.84.0/24
|
||||
35.207.85.160
|
||||
35.207.86.41
|
||||
35.207.87.184
|
||||
35.207.89.188
|
||||
35.207.91.146
|
||||
35.207.92.230
|
||||
35.207.95.0/24
|
||||
35.207.97.174
|
||||
35.207.99.134
|
||||
35.207.100.64/26
|
||||
35.207.101.130
|
||||
35.207.103.64/26
|
||||
35.207.104.0/24
|
||||
35.207.106.128/26
|
||||
35.207.107.19
|
||||
35.207.108.192/27
|
||||
35.207.109.185
|
||||
35.207.110.0/24
|
||||
35.207.111.174
|
||||
35.207.114.16
|
||||
35.207.115.163
|
||||
35.207.116.51
|
||||
35.207.117.0/24
|
||||
35.207.121.204
|
||||
35.207.122.0/25
|
||||
35.207.124.145
|
||||
35.207.125.116
|
||||
35.207.126.30
|
||||
35.207.129.0/24
|
||||
35.207.131.128/27
|
||||
35.207.132.247
|
||||
35.207.135.147
|
||||
35.207.136.69
|
||||
35.207.137.0/24
|
||||
35.207.139.0/24
|
||||
35.207.140.241
|
||||
35.207.141.119
|
||||
35.207.142.0/24
|
||||
35.207.143.96/27
|
||||
35.207.144.0/25
|
||||
35.207.145.0/24
|
||||
35.207.146.89
|
||||
35.207.147.0/24
|
||||
35.207.149.0/24
|
||||
35.207.150.0/24
|
||||
35.207.151.61
|
||||
35.207.153.117
|
||||
35.207.154.0/24
|
||||
35.207.155.128/25
|
||||
35.207.156.254
|
||||
35.207.157.7
|
||||
35.207.158.192
|
||||
35.207.160.160
|
||||
35.207.162.239
|
||||
35.207.163.0/24
|
||||
35.207.164.0/25
|
||||
35.207.165.147
|
||||
35.207.166.0/25
|
||||
35.207.167.0/24
|
||||
35.207.168.116
|
||||
35.207.170.0/23
|
||||
35.207.172.0/24
|
||||
35.207.174.55
|
||||
35.207.176.128/25
|
||||
35.207.178.0/24
|
||||
35.207.180.152
|
||||
35.207.181.76
|
||||
35.207.182.125
|
||||
35.207.184.101
|
||||
35.207.185.192
|
||||
35.207.186.128/25
|
||||
35.207.187.228
|
||||
35.207.188.0/24
|
||||
35.207.189.0/25
|
||||
35.207.190.194
|
||||
35.207.191.64/26
|
||||
35.207.193.165
|
||||
35.207.195.75
|
||||
35.207.196.0/24
|
||||
35.207.198.0/23
|
||||
35.207.201.186
|
||||
35.207.202.169
|
||||
35.207.205.211
|
||||
35.207.207.4
|
||||
35.207.209.0/25
|
||||
35.207.210.191
|
||||
35.207.211.253
|
||||
35.207.213.97
|
||||
35.207.214.0/24
|
||||
35.207.220.147
|
||||
35.207.221.58
|
||||
35.207.222.105
|
||||
35.207.224.151
|
||||
35.207.225.210
|
||||
35.207.227.0/24
|
||||
35.207.229.212
|
||||
35.207.232.26
|
||||
35.207.234.182
|
||||
35.207.238.0/24
|
||||
35.207.240.0/24
|
||||
35.207.245.0/24
|
||||
35.207.249.0/24
|
||||
35.207.250.212
|
||||
35.207.251.0/27
|
||||
35.212.4.134
|
||||
35.212.12.148
|
||||
35.212.88.11
|
||||
35.212.102.50
|
||||
35.212.111.0/26
|
||||
35.212.117.247
|
||||
35.212.120.122
|
||||
35.213.0.0/24
|
||||
35.213.2.8
|
||||
35.213.4.185
|
||||
35.213.6.118
|
||||
35.213.7.128/25
|
||||
35.213.8.168
|
||||
35.213.10.0/24
|
||||
35.213.11.21
|
||||
35.213.12.224/27
|
||||
35.213.13.19
|
||||
35.213.14.217
|
||||
35.213.16.67
|
||||
35.213.17.235
|
||||
35.213.23.166
|
||||
35.213.25.164
|
||||
35.213.26.62
|
||||
35.213.27.252
|
||||
35.213.32.0/24
|
||||
35.213.33.74
|
||||
35.213.34.204
|
||||
35.213.37.81
|
||||
35.213.38.186
|
||||
35.213.39.253
|
||||
35.213.42.0/24
|
||||
35.213.43.79
|
||||
35.213.45.0/24
|
||||
35.213.46.136
|
||||
35.213.49.17
|
||||
35.213.50.0/24
|
||||
35.213.51.213
|
||||
35.213.52.0/25
|
||||
35.213.53.0/24
|
||||
35.213.54.0/24
|
||||
35.213.56.0/25
|
||||
35.213.59.0/24
|
||||
35.213.61.58
|
||||
35.213.65.0/24
|
||||
35.213.67.0/24
|
||||
35.213.68.192/26
|
||||
35.213.70.151
|
||||
35.213.72.128/25
|
||||
35.213.73.245
|
||||
35.213.74.131
|
||||
35.213.78.0/24
|
||||
35.213.79.137
|
||||
35.213.80.0/25
|
||||
35.213.83.128/25
|
||||
35.213.84.245
|
||||
35.213.85.0/24
|
||||
35.213.88.145
|
||||
35.213.89.80/28
|
||||
35.213.90.0/24
|
||||
35.213.91.195
|
||||
35.213.92.0/24
|
||||
35.213.93.254
|
||||
35.213.94.78
|
||||
35.213.95.145
|
||||
35.213.96.87
|
||||
35.213.98.0/24
|
||||
35.213.99.126
|
||||
35.213.101.214
|
||||
35.213.102.0/24
|
||||
35.213.105.0/24
|
||||
35.213.106.128/25
|
||||
35.213.107.158
|
||||
35.213.109.0/24
|
||||
35.213.110.40
|
||||
35.213.111.0/25
|
||||
35.213.115.0/25
|
||||
35.213.120.0/24
|
||||
35.213.122.0/24
|
||||
35.213.124.89
|
||||
35.213.125.40
|
||||
35.213.126.185
|
||||
35.213.127.0/24
|
||||
35.213.128.0/22
|
||||
35.213.132.0/23
|
||||
35.213.134.140
|
||||
35.213.135.0/24
|
||||
35.213.136.0/23
|
||||
35.213.138.128/25
|
||||
35.213.139.0/24
|
||||
35.213.140.0/25
|
||||
35.213.141.164
|
||||
35.213.142.128/25
|
||||
35.213.143.0/24
|
||||
35.213.144.0/22
|
||||
35.213.148.0/23
|
||||
35.213.150.0/24
|
||||
35.213.152.0/23
|
||||
35.213.154.137
|
||||
35.213.155.134
|
||||
35.213.156.144
|
||||
35.213.157.0/24
|
||||
35.213.158.64/26
|
||||
35.213.160.90
|
||||
35.213.161.253
|
||||
35.213.162.0/25
|
||||
35.213.163.0/24
|
||||
35.213.164.0/23
|
||||
35.213.166.106
|
||||
35.213.167.160/27
|
||||
35.213.168.0/24
|
||||
35.213.169.179
|
||||
35.213.170.0/24
|
||||
35.213.171.201
|
||||
35.213.172.159
|
||||
35.213.173.0/24
|
||||
35.213.174.128/25
|
||||
35.213.175.128/26
|
||||
35.213.176.0/24
|
||||
35.213.177.0/25
|
||||
35.213.179.139
|
||||
35.213.180.0/24
|
||||
35.213.181.0/25
|
||||
35.213.182.0/23
|
||||
35.213.184.0/23
|
||||
35.213.186.70
|
||||
35.213.187.0/24
|
||||
35.213.188.128/25
|
||||
35.213.190.158
|
||||
35.213.191.0/24
|
||||
35.213.192.240/31
|
||||
35.213.193.74
|
||||
35.213.194.0/25
|
||||
35.213.195.178
|
||||
35.213.196.38
|
||||
35.213.197.68
|
||||
35.213.198.0/23
|
||||
35.213.200.0/23
|
||||
35.213.202.0/25
|
||||
35.213.203.195
|
||||
35.213.204.32/27
|
||||
35.213.205.170
|
||||
35.213.207.128/25
|
||||
35.213.208.85
|
||||
35.213.210.0/24
|
||||
35.213.211.176/29
|
||||
35.213.212.0/24
|
||||
35.213.213.225
|
||||
35.213.214.0/25
|
||||
35.213.215.255
|
||||
35.213.217.0/24
|
||||
35.213.218.248
|
||||
35.213.219.0/25
|
||||
35.213.220.211
|
||||
35.213.221.0/24
|
||||
35.213.222.215
|
||||
35.213.223.0/24
|
||||
35.213.225.0/24
|
||||
35.213.227.227
|
||||
35.213.229.17
|
||||
35.213.230.89
|
||||
35.213.231.0/24
|
||||
35.213.233.0/24
|
||||
35.213.234.134
|
||||
35.213.236.0/24
|
||||
35.213.237.212
|
||||
35.213.238.0/24
|
||||
35.213.240.212
|
||||
35.213.241.0/24
|
||||
35.213.242.10
|
||||
35.213.243.219
|
||||
35.213.244.146
|
||||
35.213.245.119
|
||||
35.213.246.0/23
|
||||
35.213.249.79
|
||||
35.213.250.0/24
|
||||
35.213.251.74
|
||||
35.213.252.0/24
|
||||
35.213.253.155
|
||||
35.213.254.89
|
||||
35.214.128.248
|
||||
35.214.129.220
|
||||
35.214.130.217
|
||||
35.214.131.144
|
||||
35.214.132.189
|
||||
35.214.133.0/24
|
||||
35.214.134.163
|
||||
35.214.137.0/24
|
||||
35.214.138.0/25
|
||||
35.214.140.0/24
|
||||
35.214.142.0/24
|
||||
35.214.143.41
|
||||
35.214.144.26
|
||||
35.214.145.200
|
||||
35.214.146.9
|
||||
35.214.147.135
|
||||
35.214.148.89
|
||||
35.214.149.110
|
||||
35.214.151.128/25
|
||||
35.214.152.0/24
|
||||
35.214.156.115
|
||||
35.214.158.181
|
||||
35.214.159.128/25
|
||||
35.214.160.128/25
|
||||
35.214.161.217
|
||||
35.214.162.0/24
|
||||
35.214.163.28
|
||||
35.214.165.102
|
||||
35.214.167.77
|
||||
35.214.169.0/24
|
||||
35.214.170.2
|
||||
35.214.171.0/25
|
||||
35.214.172.128/25
|
||||
35.214.173.0/24
|
||||
35.214.175.0/24
|
||||
35.214.177.183
|
||||
35.214.179.46
|
||||
35.214.180.0/23
|
||||
35.214.184.179
|
||||
35.214.185.28
|
||||
35.214.186.3
|
||||
35.214.187.0/24
|
||||
35.214.191.0/24
|
||||
35.214.192.128/25
|
||||
35.214.193.0/24
|
||||
35.214.194.128/25
|
||||
35.214.195.0/25
|
||||
35.214.196.64/26
|
||||
35.214.197.0/24
|
||||
35.214.198.7
|
||||
35.214.199.224
|
||||
35.214.201.0/25
|
||||
35.214.203.155
|
||||
35.214.204.0/23
|
||||
35.214.207.0/24
|
||||
35.214.208.128/25
|
||||
35.214.209.64
|
||||
35.214.210.0/24
|
||||
35.214.211.3
|
||||
35.214.212.64/26
|
||||
35.214.213.0/25
|
||||
35.214.214.0/24
|
||||
35.214.215.64/26
|
||||
35.214.216.0/23
|
||||
35.214.218.140
|
||||
35.214.219.0/24
|
||||
35.214.220.149
|
||||
35.214.221.0/24
|
||||
35.214.222.149
|
||||
35.214.223.0/24
|
||||
35.214.224.71
|
||||
35.214.225.0/24
|
||||
35.214.226.0/23
|
||||
35.214.228.0/23
|
||||
35.214.231.187
|
||||
35.214.233.8
|
||||
35.214.235.38
|
||||
35.214.237.0/24
|
||||
35.214.238.0/25
|
||||
35.214.239.0/24
|
||||
35.214.240.87
|
||||
35.214.241.0/24
|
||||
35.214.243.21
|
||||
35.214.244.0/24
|
||||
35.214.245.16/28
|
||||
35.214.246.106
|
||||
35.214.248.119
|
||||
35.214.249.154
|
||||
35.214.250.0/24
|
||||
35.214.251.128/25
|
||||
35.214.252.187
|
||||
35.214.253.0/24
|
||||
35.214.255.154
|
||||
35.215.72.85
|
||||
35.215.73.65
|
||||
35.215.83.0
|
||||
35.215.108.111
|
||||
35.215.115.120
|
||||
35.215.126.35
|
||||
35.215.127.34
|
||||
35.215.128.0/21
|
||||
35.215.136.0/26
|
||||
35.215.137.0/24
|
||||
35.215.138.0/23
|
||||
35.215.140.0/24
|
||||
35.215.141.64/27
|
||||
35.215.142.0/24
|
||||
35.215.143.83
|
||||
35.215.144.128/25
|
||||
35.215.145.0/24
|
||||
35.215.146.0/24
|
||||
35.215.147.86
|
||||
35.215.148.0/23
|
||||
35.215.150.0/26
|
||||
35.215.151.0/24
|
||||
35.215.152.0/24
|
||||
35.215.153.128/25
|
||||
35.215.154.240/28
|
||||
35.215.155.20
|
||||
35.215.156.0/24
|
||||
35.215.158.0/23
|
||||
35.215.160.192/26
|
||||
35.215.161.0/24
|
||||
35.215.163.0/24
|
||||
35.215.164.0/24
|
||||
35.215.165.236
|
||||
35.215.166.128/25
|
||||
35.215.167.128/25
|
||||
35.215.168.0/24
|
||||
35.215.169.12
|
||||
35.215.170.0/23
|
||||
35.215.172.0/22
|
||||
35.215.176.0/24
|
||||
35.215.177.72
|
||||
35.215.178.0/24
|
||||
35.215.179.161
|
||||
35.215.180.0/22
|
||||
35.215.184.253
|
||||
35.215.185.64/26
|
||||
35.215.186.0/25
|
||||
35.215.187.0/24
|
||||
35.215.188.0/23
|
||||
35.215.190.0/24
|
||||
35.215.191.61
|
||||
35.215.192.0/23
|
||||
35.215.194.192/28
|
||||
35.215.195.0/24
|
||||
35.215.196.0/25
|
||||
35.215.197.0/25
|
||||
35.215.198.230
|
||||
35.215.199.204
|
||||
35.215.200.0/23
|
||||
35.215.202.0/24
|
||||
35.215.203.0/25
|
||||
35.215.204.128/25
|
||||
35.215.205.0/25
|
||||
35.215.206.0/23
|
||||
35.215.208.0/24
|
||||
35.215.209.0/25
|
||||
35.215.210.0/23
|
||||
35.215.212.0/22
|
||||
35.215.216.0/22
|
||||
35.215.221.0/24
|
||||
35.215.222.128/25
|
||||
35.215.223.126
|
||||
35.215.224.0/23
|
||||
35.215.226.0/24
|
||||
35.215.227.0/25
|
||||
35.215.228.0/24
|
||||
35.215.229.64
|
||||
35.215.230.89
|
||||
35.215.231.0/24
|
||||
35.215.232.0/24
|
||||
35.215.233.0/25
|
||||
35.215.234.37
|
||||
35.215.235.0/24
|
||||
35.215.238.0/25
|
||||
35.215.239.119
|
||||
35.215.240.0/24
|
||||
35.215.241.128/25
|
||||
35.215.242.0/25
|
||||
35.215.243.0/24
|
||||
35.215.244.0/23
|
||||
35.215.246.222
|
||||
35.215.247.0/24
|
||||
35.215.248.0/22
|
||||
35.215.252.0/24
|
||||
35.215.253.118
|
||||
35.215.254.0/23
|
||||
35.217.0.0/24
|
||||
35.217.1.64/26
|
||||
35.217.2.5
|
||||
35.217.3.0/24
|
||||
35.217.4.72
|
||||
35.217.5.0/25
|
||||
35.217.6.0/24
|
||||
35.217.8.0/25
|
||||
35.217.9.0/24
|
||||
35.217.11.186
|
||||
35.217.12.0/24
|
||||
35.217.14.192/26
|
||||
35.217.15.65
|
||||
35.217.16.75
|
||||
35.217.17.128/25
|
||||
35.217.18.0/24
|
||||
35.217.19.183
|
||||
35.217.20.0/24
|
||||
35.217.21.128/25
|
||||
35.217.22.128/25
|
||||
35.217.23.128/25
|
||||
35.217.24.0/24
|
||||
35.217.25.81
|
||||
35.217.26.0/24
|
||||
35.217.27.128/25
|
||||
35.217.28.128/25
|
||||
35.217.29.0/24
|
||||
35.217.30.0/25
|
||||
35.217.31.0/25
|
||||
35.217.32.128/25
|
||||
35.217.33.0/24
|
||||
35.217.35.128/25
|
||||
35.217.36.0/23
|
||||
35.217.38.179
|
||||
35.217.39.186
|
||||
35.217.40.176
|
||||
35.217.41.204
|
||||
35.217.43.0/24
|
||||
35.217.45.248
|
||||
35.217.46.0/24
|
||||
35.217.47.128/25
|
||||
35.217.48.195
|
||||
35.217.49.160/27
|
||||
35.217.50.0/25
|
||||
35.217.51.0/24
|
||||
35.217.52.117
|
||||
35.217.53.128/25
|
||||
35.217.54.0/25
|
||||
35.217.55.96/27
|
||||
35.217.56.6
|
||||
35.217.57.184
|
||||
35.217.58.0/24
|
||||
35.217.59.64/26
|
||||
35.217.60.0/24
|
||||
35.217.61.128/25
|
||||
35.217.62.0/24
|
||||
35.217.63.128/25
|
||||
35.219.225.149
|
||||
35.219.226.57
|
||||
35.219.227.0/24
|
||||
35.219.228.37
|
||||
35.219.229.128/25
|
||||
35.219.230.0/23
|
||||
35.219.235.0/24
|
||||
35.219.236.198
|
||||
35.219.238.115
|
||||
35.219.239.0/24
|
||||
35.219.241.0/24
|
||||
35.219.242.221
|
||||
35.219.243.191
|
||||
35.219.244.1
|
||||
35.219.245.0/24
|
||||
35.219.246.159
|
||||
35.219.247.0/26
|
||||
35.219.248.0/24
|
||||
35.219.249.126
|
||||
35.219.251.186
|
||||
35.219.252.0/23
|
||||
35.219.254.0/24
|
||||
64.233.161.207
|
||||
64.233.162.207
|
||||
64.233.163.207
|
||||
64.233.164.207
|
||||
64.233.165.207
|
||||
66.22.196.0/26
|
||||
66.22.197.0/24
|
||||
66.22.198.0/26
|
||||
66.22.199.0/24
|
||||
66.22.200.0/26
|
||||
66.22.202.0/26
|
||||
66.22.204.0/24
|
||||
66.22.206.0/24
|
||||
66.22.208.0/25
|
||||
66.22.210.0/26
|
||||
66.22.212.0/24
|
||||
66.22.214.0/24
|
||||
66.22.216.0/23
|
||||
66.22.220.0/25
|
||||
66.22.221.0/24
|
||||
66.22.222.0/23
|
||||
66.22.224.0/25
|
||||
66.22.225.0/26
|
||||
66.22.226.0/25
|
||||
66.22.227.0/25
|
||||
66.22.228.0/22
|
||||
66.22.233.0/24
|
||||
66.22.234.0/24
|
||||
66.22.236.0/23
|
||||
66.22.238.0/24
|
||||
66.22.240.0/22
|
||||
66.22.244.0/23
|
||||
66.22.248.0/24
|
||||
74.125.131.207
|
||||
74.125.205.207
|
||||
104.17.51.93
|
||||
104.17.117.93
|
||||
104.18.4.161
|
||||
104.18.5.161
|
||||
104.18.8.105
|
||||
104.18.9.105
|
||||
104.18.30.128
|
||||
104.18.31.128
|
||||
104.21.2.204
|
||||
104.21.25.51
|
||||
104.21.40.151
|
||||
104.21.59.128
|
||||
104.21.72.221
|
||||
104.21.82.160
|
||||
108.177.14.207
|
||||
138.128.140.240/28
|
||||
142.250.150.207
|
||||
142.251.1.207
|
||||
162.159.128.232/30
|
||||
162.159.129.232/30
|
||||
162.159.130.232/30
|
||||
162.159.133.232/30
|
||||
162.159.134.232/30
|
||||
162.159.135.232/30
|
||||
162.159.136.232/30
|
||||
162.159.137.232/30
|
||||
162.159.138.232/30
|
||||
172.65.202.19
|
||||
172.66.41.34
|
||||
172.66.42.222
|
||||
172.67.152.224/28
|
||||
172.67.155.163
|
||||
172.67.159.89
|
||||
172.67.177.131
|
||||
172.67.222.182
|
||||
173.194.73.207
|
||||
173.194.220.207
|
||||
173.194.221.207
|
||||
173.194.222.207
|
||||
188.114.96.2
|
||||
188.114.97.2
|
||||
188.114.98.224
|
||||
188.114.99.224
|
||||
204.11.56.48
|
||||
209.85.233.207
|
||||
@@ -1,19 +0,0 @@
|
||||
discord.com
|
||||
gateway.discord.gg
|
||||
cdn.discordapp.com
|
||||
discordapp.net
|
||||
discordapp.com
|
||||
discord.gg
|
||||
media.discordapp.net
|
||||
images-ext-1.discordapp.net
|
||||
discord.app
|
||||
discord.media
|
||||
discordcdn.com
|
||||
discord.dev
|
||||
discord.new
|
||||
discord.gift
|
||||
discordstatus.com
|
||||
dis.gd
|
||||
discord.co
|
||||
discord-attachments-uploads-prd.storage.googleapis.com
|
||||
cloudflare-ech.com
|
||||
@@ -1,36 +0,0 @@
|
||||
googlevideo.com
|
||||
youtu.be
|
||||
youtube.com
|
||||
youtubei.googleapis.com
|
||||
youtubeembeddedplayer.googleapis.com
|
||||
ytimg.l.google.com
|
||||
ytimg.com
|
||||
jnn-pa.googleapis.com
|
||||
youtube-nocookie.com
|
||||
youtube-ui.l.google.com
|
||||
yt-video-upload.l.google.com
|
||||
wide-youtube.l.google.com
|
||||
youtubekids.com
|
||||
ggpht.com
|
||||
discord.com
|
||||
gateway.discord.gg
|
||||
cdn.discordapp.com
|
||||
discordapp.net
|
||||
discordapp.com
|
||||
discord.gg
|
||||
media.discordapp.net
|
||||
images-ext-1.discordapp.net
|
||||
discord.app
|
||||
discord.media
|
||||
discordcdn.com
|
||||
discord.dev
|
||||
discord.new
|
||||
discord.gift
|
||||
discordstatus.com
|
||||
dis.gd
|
||||
discord.co
|
||||
discord-attachments-uploads-prd.storage.googleapis.com
|
||||
7tv.app
|
||||
7tv.io
|
||||
10tv.app
|
||||
cloudflare-ech.com
|
||||
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
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
|
||||
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
|
||||
46
lists/list-general.txt
Normal file
46
lists/list-general.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
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
|
||||
discord.co
|
||||
discord.com
|
||||
discord.design
|
||||
discord.dev
|
||||
discord.gift
|
||||
discord.gifts
|
||||
discord.gg
|
||||
discord.media
|
||||
discord.new
|
||||
discord.store
|
||||
discord.status
|
||||
discord-activities.com
|
||||
discordactivities.com
|
||||
discordapp.com
|
||||
discordapp.net
|
||||
discordcdn.com
|
||||
discordmerch.com
|
||||
discordpartygames.com
|
||||
discordsays.com
|
||||
discordsez.com
|
||||
discordstatus.com
|
||||
frankerfacez.com
|
||||
ffzap.com
|
||||
betterttv.net
|
||||
7tv.app
|
||||
7tv.io
|
||||
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
|
||||
948
service.bat
Normal file
948
service.bat
Normal file
@@ -0,0 +1,948 @@
|
||||
@echo off
|
||||
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" (
|
||||
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
|
||||
)
|
||||
|
||||
|
||||
:: MENU ================================
|
||||
setlocal EnableDelayedExpansion
|
||||
:menu
|
||||
cls
|
||||
call :ipset_switch_status
|
||||
call :game_switch_status
|
||||
call :check_updates_switch_status
|
||||
|
||||
set "menu_choice=null"
|
||||
echo ========= v!LOCAL_VERSION! =========
|
||||
echo 1. Install Service
|
||||
echo 2. Remove Services
|
||||
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-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 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 (
|
||||
call :PrintGreen "Bypass (winws.exe) is RUNNING."
|
||||
) else (
|
||||
call :PrintRed "Bypass (winws.exe) is NOT running."
|
||||
)
|
||||
|
||||
pause
|
||||
goto menu
|
||||
|
||||
:test_service
|
||||
set "ServiceName=%~1"
|
||||
set "ServiceStatus="
|
||||
|
||||
for /f "tokens=3 delims=: " %%A in ('sc query "%ServiceName%" ^| findstr /i "STATE"') do set "ServiceStatus=%%A"
|
||||
set "ServiceStatus=%ServiceStatus: =%"
|
||||
|
||||
if "%ServiceStatus%"=="RUNNING" (
|
||||
if "%~2"=="soft" (
|
||||
echo "%ServiceName%" is ALREADY RUNNING as service, use "service.bat" and choose "Remove Services" first if you want to run standalone bat.
|
||||
pause
|
||||
exit /b
|
||||
) 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%" service is NOT running.
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
|
||||
:: REMOVE ==============================
|
||||
:service_remove
|
||||
cls
|
||||
chcp 65001 > nul
|
||||
|
||||
set SRVCNAME=zapret
|
||||
sc query "!SRVCNAME!" >nul 2>&1
|
||||
if !errorlevel!==0 (
|
||||
net stop %SRVCNAME%
|
||||
sc delete %SRVCNAME%
|
||||
) else (
|
||||
echo Service "%SRVCNAME%" is not installed.
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
|
||||
:: INSTALL =============================
|
||||
:service_install
|
||||
cls
|
||||
chcp 65001 > nul
|
||||
|
||||
:: Main
|
||||
cd /d "%~dp0"
|
||||
set "BIN_PATH=%~dp0bin\"
|
||||
set "LISTS_PATH=%~dp0lists\"
|
||||
|
||||
:: Searching for .bat files in current folder, except files that start with "service"
|
||||
echo Pick one of the options:
|
||||
set "count=0"
|
||||
for %%f in (*.bat) do (
|
||||
set "filename=%%~nxf"
|
||||
if /i not "!filename:~0,7!"=="service" (
|
||||
set /a count+=1
|
||||
echo !count!. %%f
|
||||
set "file!count!=%%f"
|
||||
)
|
||||
)
|
||||
|
||||
:: Choosing file
|
||||
set "choice="
|
||||
set /p "choice=Input file index (number): "
|
||||
if "!choice!"=="" (
|
||||
echo The choice is empty, exiting...
|
||||
pause
|
||||
goto menu
|
||||
)
|
||||
|
||||
set "selectedFile=!file%choice%!"
|
||||
if not defined selectedFile (
|
||||
echo Invalid choice, exiting...
|
||||
pause
|
||||
goto menu
|
||||
)
|
||||
|
||||
:: Args that should be followed by value
|
||||
set "args_with_value=sni host altorder"
|
||||
|
||||
:: Parsing args (mergeargs: 2=start param|3=arg with value|1=params args|0=default)
|
||||
set "args="
|
||||
set "capture=0"
|
||||
set "mergeargs=0"
|
||||
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 (
|
||||
set "capture=1"
|
||||
)
|
||||
|
||||
if !capture!==1 (
|
||||
if not defined args (
|
||||
set "line=!line:*%BIN%winws.exe"=!"
|
||||
)
|
||||
|
||||
set "temp_args="
|
||||
for %%i in (!line!) do (
|
||||
set "arg=%%i"
|
||||
|
||||
if not "!arg!"=="^" (
|
||||
if "!arg:~0,2!" EQU "--" if not !mergeargs!==0 (
|
||||
set "mergeargs=0"
|
||||
)
|
||||
|
||||
if "!arg:~0,1!" EQU "!QUOTE!" (
|
||||
set "arg=!arg:~1,-1!"
|
||||
|
||||
echo !arg! | findstr ":" >nul
|
||||
if !errorlevel!==0 (
|
||||
set "arg=\!QUOTE!!arg!\!QUOTE!"
|
||||
) else if "!arg:~0,1!"=="@" (
|
||||
set "arg=\!QUOTE!@%~dp0!arg:~1!\!QUOTE!"
|
||||
) else if "!arg:~0,5!"=="%%BIN%%" (
|
||||
set "arg=\!QUOTE!!BIN_PATH!!arg:~5!\!QUOTE!"
|
||||
) else if "!arg:~0,7!"=="%%LISTS%%" (
|
||||
set "arg=\!QUOTE!!LISTS_PATH!!arg:~7!\!QUOTE!"
|
||||
) 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 (
|
||||
set "temp_args=!temp_args!=!arg!"
|
||||
set "mergeargs=1"
|
||||
) else (
|
||||
set "temp_args=!temp_args! !arg!"
|
||||
)
|
||||
|
||||
if "!arg:~0,2!" EQU "--" (
|
||||
set "mergeargs=2"
|
||||
) 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"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if not "!temp_args!"=="" (
|
||||
set "args=!args! !temp_args!"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
:: 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 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
|
||||
|
||||
|
||||
:: 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"
|
||||
set "GITHUB_RELEASE_URL=https://github.com/Flowseal/zapret-discord-youtube/releases/tag/"
|
||||
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\"} -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. 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%
|
||||
|
||||
if "%1"=="soft" exit
|
||||
pause
|
||||
goto menu
|
||||
)
|
||||
|
||||
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
|
||||
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 (
|
||||
call :PrintRed "[X] Adguard process found. Adguard may cause problems with Discord"
|
||||
call :PrintRed "https://github.com/Flowseal/zapret-discord-youtube/issues/417"
|
||||
) else (
|
||||
call :PrintGreen "Adguard check passed"
|
||||
)
|
||||
echo:
|
||||
|
||||
:: Killer
|
||||
sc query | findstr /I "Killer" > nul
|
||||
if !errorlevel!==0 (
|
||||
call :PrintRed "[X] Killer services found. Killer conflicts with zapret"
|
||||
call :PrintRed "https://github.com/Flowseal/zapret-discord-youtube/issues/2512#issuecomment-2821119513"
|
||||
) else (
|
||||
call :PrintGreen "Killer check passed"
|
||||
)
|
||||
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
|
||||
if !errorlevel!==0 (
|
||||
set "checkpointFound=1"
|
||||
)
|
||||
|
||||
sc query | findstr /I "EPWD" > nul
|
||||
if !errorlevel!==0 (
|
||||
set "checkpointFound=1"
|
||||
)
|
||||
|
||||
if !checkpointFound!==1 (
|
||||
call :PrintRed "[X] Check Point services found. Check Point conflicts with zapret"
|
||||
call :PrintRed "Try to uninstall Check Point"
|
||||
) else (
|
||||
call :PrintGreen "Check Point check passed"
|
||||
)
|
||||
echo:
|
||||
|
||||
:: SmartByte
|
||||
sc query | findstr /I "SmartByte" > nul
|
||||
if !errorlevel!==0 (
|
||||
call :PrintRed "[X] SmartByte services found. SmartByte conflicts with zapret"
|
||||
call :PrintRed "Try to uninstall or disable SmartByte through services.msc"
|
||||
) else (
|
||||
call :PrintGreen "SmartByte check passed"
|
||||
)
|
||||
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 (
|
||||
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"
|
||||
)
|
||||
echo:
|
||||
|
||||
:: DNS
|
||||
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 !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 "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) "
|
||||
if "!CHOICE!"=="" set "CHOICE=Y"
|
||||
if "!CHOICE!"=="y" set "CHOICE=Y"
|
||||
|
||||
if /i "!CHOICE!"=="Y" (
|
||||
tasklist /FI "IMAGENAME eq Discord.exe" | findstr /I "Discord.exe" > nul
|
||||
if !errorlevel!==0 (
|
||||
echo Discord is running, closing...
|
||||
taskkill /IM Discord.exe /F > nul
|
||||
if !errorlevel! == 0 (
|
||||
call :PrintGreen "Discord was successfully closed"
|
||||
) else (
|
||||
call :PrintRed "Unable to close Discord"
|
||||
)
|
||||
)
|
||||
|
||||
set "discordCacheDir=%appdata%\discord"
|
||||
|
||||
for %%d in ("Cache" "Code Cache" "GPUCache") do (
|
||||
set "dirPath=!discordCacheDir!\%%~d"
|
||||
if exist "!dirPath!" (
|
||||
rd /s /q "!dirPath!"
|
||||
if !errorlevel!==0 (
|
||||
call :PrintGreen "Successfully deleted !dirPath!"
|
||||
) else (
|
||||
call :PrintRed "Failed to delete !dirPath!"
|
||||
)
|
||||
) else (
|
||||
call :PrintRed "!dirPath! does not exist"
|
||||
)
|
||||
)
|
||||
)
|
||||
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
|
||||
powershell -Command "Write-Host \"%~1\" -ForegroundColor Green"
|
||||
exit /b
|
||||
|
||||
:PrintRed
|
||||
powershell -Command "Write-Host \"%~1\" -ForegroundColor Red"
|
||||
exit /b
|
||||
|
||||
:PrintYellow
|
||||
powershell -Command "Write-Host \"%~1\" -ForegroundColor Yellow"
|
||||
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,117 +0,0 @@
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
chcp 65001 >nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
set "arg=%1"
|
||||
if "%arg%" == "admin" (
|
||||
echo Restarted with admin rights
|
||||
) else (
|
||||
powershell -Command "Start-Process 'cmd.exe' -ArgumentList '/k \"\"%~f0\" admin\"' -Verb RunAs"
|
||||
exit /b
|
||||
)
|
||||
|
||||
cd /d "%~dp0"
|
||||
call check_updates.bat soft
|
||||
echo:
|
||||
|
||||
set BIN_PATH=%~dp0bin\
|
||||
|
||||
:: Searching for .bat files in current folder, except files that start with "service"
|
||||
set "count=0"
|
||||
for %%f in (*.bat) do (
|
||||
set "filename=%%~nxf"
|
||||
if /i not "!filename:~0,7!"=="service" if /i not "!filename:~0,13!"=="check_updates" (
|
||||
set /a count+=1
|
||||
echo !count!. %%f
|
||||
set "file!count!=%%f"
|
||||
)
|
||||
)
|
||||
|
||||
:: Choosing file
|
||||
set "choice="
|
||||
set /p "choice=Input file index (number): "
|
||||
|
||||
if "!choice!"=="" goto :eof
|
||||
|
||||
set "selectedFile=!file%choice%!"
|
||||
if not defined selectedFile (
|
||||
echo Wrong choice, exiting..
|
||||
pause
|
||||
goto :eof
|
||||
)
|
||||
|
||||
:: Parsing args (mergeargs: 2=start param|1=params args|0=default)
|
||||
set "args="
|
||||
set "capture=0"
|
||||
set "mergeargs=0"
|
||||
set QUOTE="
|
||||
|
||||
for /f "tokens=*" %%a in ('type "!selectedFile!"') do (
|
||||
set "line=%%a"
|
||||
|
||||
echo !line! | findstr /i "%BIN%winws.exe" >nul
|
||||
if not errorlevel 1 (
|
||||
set "capture=1"
|
||||
)
|
||||
|
||||
if !capture!==1 (
|
||||
if not defined args (
|
||||
set "line=!line:*%BIN%winws.exe"=!"
|
||||
)
|
||||
|
||||
set "temp_args="
|
||||
for %%i in (!line!) do (
|
||||
set "arg=%%i"
|
||||
|
||||
if not "!arg!"=="^" (
|
||||
if "!arg:~0,2!" EQU "--" if not !mergeargs!==0 (
|
||||
set "mergeargs=0"
|
||||
)
|
||||
|
||||
if "!arg:~0,1!" EQU "!QUOTE!" (
|
||||
set "arg=!arg:~1,-1!"
|
||||
|
||||
echo !arg! | findstr ":" >nul
|
||||
if !errorlevel!==0 (
|
||||
set "arg=\!QUOTE!!arg!\!QUOTE!"
|
||||
) else if "!arg:~0,1!"=="@" (
|
||||
set "arg=\!QUOTE!@%~dp0!arg:~1!\!QUOTE!"
|
||||
) else if "!arg:~0,5!"=="%%BIN%%" (
|
||||
set "arg=\!QUOTE!!BIN_PATH!!arg:~5!\!QUOTE!"
|
||||
) else (
|
||||
set "arg=\!QUOTE!%~dp0!arg!\!QUOTE!"
|
||||
)
|
||||
)
|
||||
|
||||
if !mergeargs!==1 (
|
||||
set "temp_args=!temp_args!,!arg!"
|
||||
) else (
|
||||
set "temp_args=!temp_args! !arg!"
|
||||
)
|
||||
|
||||
if "!arg:~0,2!" EQU "--" (
|
||||
set "mergeargs=2"
|
||||
) else if !mergeargs!==2 (
|
||||
set "mergeargs=1"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if not "!temp_args!"=="" (
|
||||
set "args=!args! !temp_args!"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
:: Creating service with parsed args
|
||||
set ARGS=%args%
|
||||
echo Final args: !ARGS!
|
||||
|
||||
set SRVCNAME=zapret
|
||||
|
||||
net stop %SRVCNAME%
|
||||
sc delete %SRVCNAME%
|
||||
sc create %SRVCNAME% binPath= "\"%BIN_PATH%winws.exe\" %ARGS%" DisplayName= "zapret" start= auto
|
||||
sc description %SRVCNAME% "zapret DPI bypass software"
|
||||
sc start %SRVCNAME%
|
||||
@@ -1,21 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
:: 65001 - UTF-8
|
||||
|
||||
set "arg=%1"
|
||||
if "%arg%" == "admin" (
|
||||
echo Restarted with admin rights
|
||||
) else (
|
||||
powershell -Command "Start-Process 'cmd.exe' -ArgumentList '/k \"\"%~f0\" admin\"' -Verb RunAs"
|
||||
exit /b
|
||||
)
|
||||
|
||||
set SRVCNAME=zapret
|
||||
|
||||
net stop %SRVCNAME%
|
||||
sc delete %SRVCNAME%
|
||||
|
||||
net stop "WinDivert"
|
||||
sc delete "WinDivert"
|
||||
net stop "WinDivert14"
|
||||
sc delete "WinDivert14"
|
||||
@@ -1,33 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
|
||||
if "%~1"=="" (
|
||||
call :test_service zapret
|
||||
call :test_service WinDivert
|
||||
pause
|
||||
) else (
|
||||
call :test_service "%~1" "soft"
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
:test_service
|
||||
set "ServiceName=%~1"
|
||||
set "ServiceStatus="
|
||||
|
||||
for /f "tokens=3 delims=: " %%A in ('sc query "%ServiceName%" ^| findstr /i "STATE"') do set "ServiceStatus=%%A"
|
||||
|
||||
set "ServiceStatus=%ServiceStatus: =%"
|
||||
|
||||
if "%ServiceStatus%"=="RUNNING" (
|
||||
if "%~2"=="soft" (
|
||||
echo "%ServiceName%" is ALREADY RUNNING as service! Use "serivce_remove.bat" first if you want to run standalone bat.
|
||||
pause
|
||||
) else (
|
||||
echo "%ServiceName%" service is RUNNING.
|
||||
)
|
||||
) else if not "%~2"=="soft" (
|
||||
echo "%ServiceName%" is NOT running.
|
||||
)
|
||||
|
||||
exit /b
|
||||
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