From df30a863057d8ba40d2e5dd63f713f4c4bb0a8e5 Mon Sep 17 00:00:00 2001 From: bol-van Date: Wed, 17 Dec 2025 18:10:31 +0300 Subject: [PATCH] update docs --- docs/manual.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/manual.md b/docs/manual.md index c911c78..8292f11 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -2290,6 +2290,15 @@ Unfragmentable part передается в каждом фрагменте с ipfrag2 реализует эту возможность на двух фрагментах через указание параметра ipfrag_next. Некоторые фаерволы пробиваются только большим количество фрагментов - для этого потребуется своя функция фрагментатор. +``` +function wsize_rewrite(dis, arg) +``` + +Переписать в диссекте dis tcp.th_win и scale factor в tcp оцпии, если она присутствует. Увеличение scaling factor блокируется. + +* arg: wsize - window size +* arg: scale - scale factor + ## Отсылка Следующие функции могут брать несколько блоков описанных выше опций, каждый из которых представлен полем параметра options. @@ -2323,6 +2332,28 @@ mss берется из desync.tcp_mss. * rawsend : repeats берется из desync.arg.repeats, ifout и fwmark берутся из desync.arg, если они там есть, либо из desync (то, что пришло в desync функцию) * reconstruct : берется только desync.arg.badsum, остальные опции не используются +## Стандартные фильтры direction и payload + +``` +function direction_check(desync, def) +function direction_cutoff_opposite(ctx, desync, def) +``` + +Фильтр по направлению представляет собой строку "in", "out" или "any" и передается в desync.arg.dir. Если аргумент отсутствует, берется значение def. + +* direction_check проверяет соответствие текущего направления фильтру. +* direction_cutoff_opposite выполняет instance cutoff на текущее направление, если оно не соответствует фильтру. + +``` +function payload_match_filter(l7payload, l7payload_filter, def) +function payload_check(desync, def) +``` + +Функции работают со строкой - списком пейлоадов через запятую. Список известных типов пейлоада можно получить из help текста nfqws2. Все пустые пакеты имеют пейлоад empty, неизвестные - unknown. Особые значения - all и known. all означает любой пейлоад, known - не unknown и не empty. Префикс `~` в начале означает логическую инверсию - несоответствие списку. + +* payload_match_filter проверяет соответствие l7payload списку l7payload_filter или def, если l7payload_filter=nil. Если оба nil - список берется как "known". +* payload_check вызывает `payload_match_filter(desync.l7payload, desync.arg.payload, def)` + # Библиотека программ атаки на DPI zapret-antidpi.lua