Template
1
0
mirror of https://github.com/bol-van/zapret2.git synced 2026-03-20 08:15:48 +00:00

udpate docs

This commit is contained in:
bol-van
2026-01-16 16:53:17 +03:00
parent eb7043fc12
commit 60934f5ab8
2 changed files with 34 additions and 4 deletions

View File

@@ -182,6 +182,7 @@
- [fakeddisorder](#fakeddisorder)
- [hostfakesplit](#hostfakesplit)
- [tcpseg](#tcpseg)
- [oob](#oob)
- [UDP Fooling](#udp-fooling)
- [udplen](#udplen)
- [dht\_dn](#dht_dn)
@@ -3804,6 +3805,38 @@ No verdict is issued.
Using `tcpseg`, you can perform `seqovl` without segmentation by using markers "0,-1". To replace the current dissect, it can be combined with `drop`.
### oob
```
function oob(ctx, desync)
```
- arg: [standard fooling](#standard-fooling)
- arg: [standard ipid](#standard-ipid)
- arg: [standard ipfrag](#standard-ipfrag)
- arg: [standard reconstruct](#standard-reconstruct)
- arg: [standard rawsend](#standard-rawsend)
- arg: char - one OOB character
- arg: byte - one OOB byte 0..255
- arg: urp - urgent pointer [marker](#markers), "b" or "e". "b" is default.
Function intercepts TCP handshake shifting sequence numbers one byte to the left then inserts OOB byte into the first non-empty payload.
After it's done it executes [instance cutoff](#instance_cutoff).
Target OS throws away OOB byte from the stream but DPI may analyze message with OOB byte as it's part thus breaking the message.
- OOB is obsolete but still supported in most OS mechanism. There are two RFCs. The older one assumes that th_urp points to the OOB byte,
the newer one to the next byte. Therefore, the value th_urp=0 is invalid according to the new standard, but it can still work.
To enable it, specify "urp=b".
- "urp=e" inserts an OOB byte after the very last byte of the payload - generally useless for DPI bypass, since DPI gets the entire original message.
- Requires redirection of incoming traffic within `--in-range=-s1`
- 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 only possible 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).
## UDP Fooling
There are far fewer options for UDP than for TCP due to the simplicity of the protocol. There isn't much that can be done with it.

View File

@@ -4005,7 +4005,6 @@ function oob(ctx, desync)
- arg: [standard rawsend](#standard-rawsend)
- arg: char - 1 символ oob
- arg: byte - числовое значение байта OOB 0..255
- arg: drop_ack - дропать пустой ACK в ответ на SYN,ACK
- arg: urp - позиционный [маркер](#маркеры) для urgent pointer, "b" или "e". по умолчанию - "b"
Функция перехватывает TCP handshake, сдвигая sequence влево на 1 байт, затем вставляет 1 байт OOB в первый отсылаемый пейлоад и отсылает его.
@@ -4022,9 +4021,7 @@ function oob(ctx, desync)
- Фильтрация по хостлистам возможна только при `--ipcache-hostname`.
- Не может работать с функциями, предполагающими отправку пейлоада - multisplit, multidisorder, fakedsplit, fakeddisorder и тд. Они будут работать, но будут слать дубль без OOB.
- Если пейлоад [многопакетный](#особенности-приема-многопакетных-пейлоадов) - отсылается весь [reasm](#особенности-приема-многопакетных-пейлоадов). OOB вставляется в тот сегмент, куда попал urp.
В этом сегменте th_urp нормализуется по смещению сегмента, выставляется флаг TH_URG. Остальные части шлются как есть. Функция дропает последующие части replay, затем уходит в cutoff по обоим направлениям.
- drop_ack дропает пустой пакет с ACK в ответ на SYN,ACK - тот, что имеет sequence=1. В Windows для drop_ack необходим параметр --wf-tcp-empty=1.
В этом сегменте th_urp нормализуется по смещению сегмента, выставляется флаг TH_URG. Остальные части шлются как есть. Функция дропает весь replay, затем уходит в cutoff по обоим направлениям.
## Дурение udp