mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
@@ -268,6 +268,7 @@
|
||||
- [Windows](#windows)
|
||||
- [Windows 7](#windows-7)
|
||||
- [Windows Server](#windows-server)
|
||||
- [Windows ARM64](#windows-arm64)
|
||||
|
||||
|
||||
# Introduction
|
||||
@@ -3835,9 +3836,8 @@ To enable it, specify "urp=b".
|
||||
- For protocols in which the server initially waits for a client request, `--in-range=-s1` is enough. In Windows `--wf-tcp-in` is not needed. Automatically intercepted incoming packets with the SYN flag are sufficient.
|
||||
- For protocols in which the server sends data before the first message from client all incoming packets before that message should be intercepted. In Windows `--wf-tcp-in` is required.
|
||||
- Cannot be filtered by payload because after the start it's not possible to stop and not to insert the byte. Inserting a byte without OOB breaks the data.
|
||||
- Hostlist filtering is not possible.
|
||||
- oob is "lasting" desync. If profile switch occurs before oob is finished it must be duplicated to that profile or TCP will break because of sequence desync.
|
||||
- If this function is called for the first time not from the very beginning of the tcp connection it [cuts off](#instance_cutoff) immediately.
|
||||
- Hostlist filtering is possible only with '--ipcache-hostname'.
|
||||
- Can't work with functions that resend modified payload. multisplit, multidisorder, fakedsplit, fakeddisorder, etc will send duplicates without OOB.
|
||||
- If the payload is [multi-segment](#handling-multi-packet-payloads), the entire [reasm](#handling-multi-packet-payloads) is sent. OOB is inserted into the segment where urp hits.
|
||||
In this segment the th_urp is normalized by segment offset, the TH_URG flag is set. The rest of the parts are sent as is. The function drops the whole replay then [cuts itself off](#instance_cutoff).
|
||||
@@ -5182,3 +5182,16 @@ There are several options :
|
||||
winws2 is linked against wlanapi.dll which is absent by default.
|
||||
To solve this problem run power shell as administrator and execute command `Install-WindowsFeature -Name Wireless-Networking`.
|
||||
Then reboot the system.
|
||||
|
||||
## Windows ARM64
|
||||
|
||||
The main problem is lack of a signed windivert driver. Therefore, it is required to enable the test signature mode: 'bcdedit/set {current} testsigning on'.
|
||||
There's unsigned WinDivert64.sys driver in [zapret-win-bundle](https://github.com/bol-van/zapret-win-bundle).
|
||||
There is also cmd file for rolling the driver to the arm64 Win11.
|
||||
|
||||
Another problem is lack of cygwin for non-x86 platforms. However, win11 has x64 emulation, so you can use the x64 build, but with replaced WinDivert64.sys driver.
|
||||
There is no need to replace WinDivert.dll - only WinDivert64.sys needs to be replaced. It's verified and confirmed working.
|
||||
|
||||
There is no x64 emulation on win10 arm64, but there is x86 32-bit emulation.
|
||||
Therefore, theorecically you can use the win32 variant and put the WinDivert64.sys driver for arm64 to the same dir.
|
||||
This hasn't been verified.
|
||||
|
||||
@@ -266,6 +266,7 @@
|
||||
- [Особенности Windows](#особенности-windows)
|
||||
- [Windows 7](#windows-7)
|
||||
- [Windows Server](#windows-server)
|
||||
- [Windows ARM64](#windows-arm64)
|
||||
|
||||
# Введение
|
||||
|
||||
@@ -4022,9 +4023,8 @@ function oob(ctx, desync)
|
||||
- Для протоколов, в которых в самом начале сервер ждет запроса от клиента, требуется разрешение входящих в пределах `--in-range=-s1`. В Windows `--wf-tcp-in` не нужен. Достаточно автоматически перехватываемых SYN. К таким протоколам относятся http и tls.
|
||||
- Для протоколов, где сервер что-то шлет до первого сообщения от клиента, требуется разрешить все входящие пакеты до отсылки первого исходящего пакета с данными. В Windows `--wf-tcp-in` обязателен.
|
||||
- Не может быть отфильтровано по пейлоаду, поскольку после начала модификации tcp handshake соскок уже невозможен, иначе поедут sequence.
|
||||
- Фильтрация по хостлистам невозможна ни в каком виде, даже при `--ipcache-hostname`. Если начал - закончи или не начинай. Это главное правило oob. Никаких решений по отмене ни по каким условиям.
|
||||
- oob - длящаяся десинхронизация. Если возможно переключение профилей до момента окончания работы oob, oob должен быть дублирован в другой профиль, иначе TCP будет сломан из-за десинхронизации sequence.
|
||||
- Функция помечает специальный флаг, что была вызвана с самого начала соединения. Если управление получено после перескока профиля, происходит немедленный cutoff.
|
||||
- Фильтрация по хостлистам возможна только при `--ipcache-hostname`. Если в кэше хоста еще нет, и профиль получает управление не с начала соединения, срабатывает предыдущий пункт.
|
||||
- Не может работать с функциями, предполагающими отправку текущего пейлоада - multisplit, multidisorder, fakedsplit, fakeddisorder и тд. Они будут работать, но будут слать дубль без OOB. Ожидаемый результат "разбить на сегменты и всунуть OOB" как в tpws получить таким образом невозможно.
|
||||
- Если пейлоад [многопакетный](#особенности-приема-многопакетных-пейлоадов) - отсылается весь [reasm](#особенности-приема-многопакетных-пейлоадов). OOB вставляется в тот сегмент, куда попал urp.
|
||||
В этом сегменте th_urp нормализуется по смещению сегмента, выставляется флаг TH_URG. Остальные части шлются как есть. Функция дропает весь replay, затем уходит в [cutoff](#instance_cutoff) по обоим направлениям.
|
||||
@@ -5395,3 +5395,16 @@ windivert 2.2.2-A, который идет в поставке zapret.
|
||||
winws2 слинкован с wlanapi.dll, который по умолчанию не установлен в Windows Server.
|
||||
Для решения этой проблемы запустите power shell под администратором и выполните команду `Install-WindowsFeature -Name Wireless-Networking`.
|
||||
После чего перезагрузите систему.
|
||||
|
||||
## Windows ARM64
|
||||
|
||||
Главная проблема - отсутствие подписанного windivert драйвера. Поэтому требуется включение режима тестовой подписи : `bcdedit /set {current} testsigning on`.
|
||||
Неподписанный драйвер WinDivert64.sys есть в комплекте [zapret-win-bundle](https://github.com/bol-van/zapret-win-bundle).
|
||||
Там же есть и батник для наката драйвера на Win11 arm64.
|
||||
|
||||
Другая проблема - отсутствие cygwin для платформ, отличных от x86. Однако, win11 содержит эмуляцию x64, поэтому можно использовать билд для x64, но с замененным драйвером WinDivert64.sys.
|
||||
DLL при этом менять не нужно - только sys.
|
||||
|
||||
На win10 arm64 нет эмуляции x64, но есть эмуляция x86 32 бит.
|
||||
Теоретически можно использовать вариант win32 и положить рядом драйвер WinDivert64.sys для arm64. Этот вариант не проверялся.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user