mirror of
https://github.com/bol-van/zapret.git
synced 2025-12-06 11:36:46 +03:00
update docs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# zapret v72
|
||||
# zapret v72.1
|
||||
|
||||
# SCAMMER WARNING
|
||||
|
||||
@@ -23,6 +23,7 @@ ___
|
||||
- [Fake mods](#fake-mods)
|
||||
- [TCP segmentation](#tcp-segmentation)
|
||||
- [Sequence numbers overlap](#sequence-numbers-overlap)
|
||||
- [IP_ID assignment](#ip_id-assignment)
|
||||
- [ipv6 specific modes](#ipv6-specific-modes)
|
||||
- [Original modding](#original-modding)
|
||||
- [Duplicates](#duplicates)
|
||||
@@ -180,6 +181,7 @@ nfqws takes the following parameters:
|
||||
--dup-badack-increment=<int|0xHEX> ; badseq fooling ackseq signed increment for dup. default -66000
|
||||
--dup-start=[n|d|s]N ; apply dup to packet numbers (n, default), data packet numbers (d), relative sequence (s) greater or equal than N
|
||||
--dup-cutoff=[n|d|s]N ; apply dup to packet numbers (n, default), data packet numbers (d), relative sequence (s) less than N
|
||||
--ip-id=zero|seq|seqgroup|rnd ; ipv4 ip_id assignment scheme
|
||||
--dpi-desync=[<mode0>,]<mode>[,<mode2>] ; try to desync dpi state. modes : synack fake fakeknown rst rstack hopbyhop destopt ipfrag1 multisplit multidisorder fakedsplit hostfakesplit fakeddisorder ipfrag2 udplen tamper
|
||||
--dpi-desync-fwmark=<int|0xHEX> ; override fwmark for desync packet. default = 0x40000000 (1073741824)
|
||||
--dpi-desync-ttl=<int> ; set ttl for desync packet
|
||||
@@ -439,6 +441,21 @@ All unix OS except Solaris preserve last received data. This is not the case for
|
||||
Disorder requires `seqovl` to be less than split position. Otherwise `seqovl` is not possible and will be cancelled.
|
||||
Method allows to avoid separate fakes. Fakes and real data are mixed.
|
||||
|
||||
### IP_ID assignment
|
||||
|
||||
Some DPIs check ipv4 ip_id value. OS normally increment ip_id value every packet. Some anti-DPI software may send fakes or tcp segments with the same ip_id as original causing block trigger.
|
||||
|
||||
Sequental ip_id will be broken in case of sending fakes or additional tcp segments because OS knows nothing about them. But still there are options how to assignt ip_id to generated packets.
|
||||
|
||||
`ip-id` parameter sets ip_id assignment scheme for a desync profile :
|
||||
|
||||
* `seq` (default) : increment ip_id for every next packet. in `multidisorder` case increase ip_id for the number of tcp segments then decrease by 1 every packet.
|
||||
* `seqgroup` : same as `seq` but send fake replacements with the same ip_id as original parts. related only to fake tcp segments with the same size and same sequence as originals.
|
||||
* `rnd` : assign random ip_id
|
||||
* `zero` : always set zero. Linux and BSD will send zero, Windows will replace zero with it's own counter.
|
||||
|
||||
ipv6 header lacks ip_id field, `ip-id` parameter ignored for ipv6.
|
||||
|
||||
### ipv6 specific modes
|
||||
|
||||
`hopbyhop`, `destopt` and `ipfrag1` desync modes (they're not the same as `hopbyhop` fooling !) are ipv6 only. One `hop-by-hop`,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# zapret v72
|
||||
# zapret v72.1
|
||||
|
||||
# ВНИМАНИЕ, остерегайтесь мошенников
|
||||
|
||||
@@ -543,20 +543,22 @@ Windows оставляет старые данные, поэтому disorder с
|
||||
|
||||
Некоторые DPI секут поле ipv4 заголовка ip_id. Защита заключается в распознавании нехарактерного для разных ОС порядка назначения ip_id,
|
||||
но характерного для некоторого anti-DPI софта. Обычно ОС инкрементируют ip_id для каждого следующего пакета.
|
||||
Например, на ТСПУ повторение ip_id фейка и не фейка вызывает триггер блока на диапазонах IP googlevideo.com.
|
||||
Например, на ТСПУ повторение ненулевых ip_id фейка и не фейка вызывает триггер блока на диапазонах IP `googlevideo.com`.
|
||||
|
||||
Если отсылаются фейки или дополнительные tcp сегменты, то в любом случае последовательность будет нарушена, поскольку ОС ничего не будет знать о всунутых фейках
|
||||
и не увеличит свой счетчик ip_id на количество фейков или дополнительных tcp сегментов.
|
||||
Чтобы сохранить последовательность, потребовалось бы перехватывать все соединение до конца, что очень затратно по ресурсам.
|
||||
Поэтому после отработки серии генерированных пакетов ip_id возвращается к тому значению, о котором знает ОС.
|
||||
|
||||
Параметр `ip_id` относится к профилю и задает режим назначения ip_id при отсылке генерированных в nfqws пакетов.
|
||||
Параметр `ip-id` относится к профилю и задает режим назначения ip_id при отсылке генерированных в nfqws пакетов.
|
||||
|
||||
* `seq` (по умолчанию) : взять последний ip_id реального пакета. последующие генерированыне пакеты получают увеличенные на 1 ip_id, кроме случая `multidisorder`.
|
||||
для `multidisorder` в пределах сегментов, где есть сплит-позиции, значение ip_id увеличивается на количество частей, затем уменьшается на 1 с каждой отосланной частью.
|
||||
* `seqgroup` : то же, что и `seq`, но фейки того же размера, что и оригинальные сегменты, и максирующиеся под оригинал получают те же ip_id.
|
||||
* `seqgroup` : то же, что и `seq`, но фейки того же размера, что и оригинальные сегменты, маскирующиеся под оригинал получают те же ip_id.
|
||||
* `rnd` : всем генерированным пакетам назначать случайный ip_id
|
||||
* `zero` : всем генерированным пакетам назначать ip_id=0 . в этом случае Linux и BSD отошлют 0, Windows назначит последовательные ip_id всем пакетам.
|
||||
* `zero` : всем генерированным пакетам назначать ip_id=0 . в этом случае Linux и BSD отошлют 0, Windows назначит последовательные ip_id всем пакетам (тем самым автоматически решается проблема сбоя счетчика пакетов).
|
||||
|
||||
В заголовках ipv6 поле ip_id отсутствует, параметр игнорируется для ipv6.
|
||||
|
||||
### СПЕЦИФИЧЕСКИЕ РЕЖИМЫ IPV6
|
||||
|
||||
|
||||
Reference in New Issue
Block a user