Template
1
0
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:
bol-van
2026-01-16 15:23:12 +03:00
parent 704c73f821
commit da0016ed0e

View File

@@ -181,6 +181,7 @@
- [fakeddisorder](#fakeddisorder)
- [hostfakesplit](#hostfakesplit)
- [tcpseg](#tcpseg)
- [oob](#oob)
- [Дурение udp](#дурение-udp)
- [udplen](#udplen)
- [dht\_dn](#dht_dn)
@@ -3991,6 +3992,35 @@ function tcpseg(ctx, desync)
С помощью tcpseg можно сделать seqovl без сегментации, используя маркеры "0,-1". Для замещения текущего диссекта можно комбинировать с drop.
### oob
```
function tcpseg(ctx, desync)
```
- arg: char=c - 1 символ oob
- arg: byte=c - числовое значение байта OOB 0..255
- arg: drop_ack - дропать пустой ACK в ответ на SYN,ACK
- arg: urp - позиционный [маркер](#маркеры) для urgent pointer, "b" или "e". по умолчанию - "b"
Функция перехватывает TCP handshake, сдвигая sequence влево на 1 байт, затем вставляет 1 байт OOB в первый отсылаемый пейлоад и отсылает его.
После отработки функция уходит в cutoff по обоим направлениям.
ОС получателя выбрасывает OOB байт из потока, DPI может не выбрасывать и получать оригинальное сообщение со вставленным в него посторонним байтом, что может портить смысл всего сообщения.
- OOB - устаревший, но все еще поддерживаемый в ОС механизм. Имеется 2 стандарта. Более старый предполагает, что th_urp указывает на байт OOB,
более новый - на следующий за ним байт. Поэтому значение th_urp=0 невалидно по новому стандарту, но все еще может работать.
Чтобы задействовать его укажите "urp=b".
- "urp=e" вставляет OOB байт после самого последнего байта пейлоада - для обхода DPI как правило бесполезно, поскольку DPI получает все оригинальное сообщение.
- Требуется перенаправление входящего трафика в пределах `--in-range=-s1'
- Не может быть отфильтровано по пейлоаду, поскольку после начала модификации tcp handshake соскок уже невозможен, иначе поедут sequence.
- Фильтрация по хостлистам возможна только при `--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.
## Дурение udp
Для udp намного меньше вариантов, чем для tcp, в силу простоты данного протокола. С ним особо нечего делать.