From 277c5f9e009b7440189a3f03c8ed0a8169ee39f3 Mon Sep 17 00:00:00 2001 From: bol-van Date: Mon, 2 Dec 2024 21:06:05 +0300 Subject: [PATCH] update docs --- docs/changes.txt | 5 +++++ docs/readme.en.md | 7 ++++--- docs/readme.md | 12 +++++++++--- nfq/desync.c | 4 ++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 42e8354..50b7774 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -407,3 +407,8 @@ nfqws,tpws: fixed ipsets and hostlists all progs: version numbers for github, build date/time for self built repo: light release for openwrt and embedded systems repo: sha256sum + +v69.4 + +nfqws : fakedsplit/fakeddisorder fakes for both split segments +nfqws : --dpi-desync-fakedsplit-pattern diff --git a/docs/readme.en.md b/docs/readme.en.md index 38d6a9d..d86462e 100644 --- a/docs/readme.en.md +++ b/docs/readme.en.md @@ -1,4 +1,4 @@ -# zapret v69.3 +# zapret v69.4 # SCAMMER WARNING @@ -162,6 +162,7 @@ nfqws takes the following parameters: ; fakedsplit/fakeddisorder use first l7-protocol-compatible parameter if present, first abs value otherwise --dpi-desync-split-seqovl=N|-N|marker+N|marker-N ; use sequence overlap before first sent original split segment --dpi-desync-split-seqovl-pattern=|0xHEX ; pattern for the fake part of overlap + --dpi-desync-fakedsplit-pattern=|0xHEX ; fake pattern for fakedsplit/fakeddisorder --dpi-desync-ipfrag-pos-tcp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 8. --dpi-desync-ipfrag-pos-udp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 32. --dpi-desync-badseq-increment= ; badseq fooling seq signed increment. default -10000 @@ -262,8 +263,8 @@ Fakes are separate generated by nfqws packets carrying false information for DPI * `multisplit`. split request at specified in `--dpi-desync-split-pos` positions * `multidisorder`. same as `multisplit` but send in reverse order - * `fakedsplit`. split request into 2 segments adding fakes in the middle of them : fake 1st segment, 1st segment, fake 1st segment, 2nd segment - * `fakeddisorder`. same as `fakedsplit` but with another order : 2nd segment, fake 1st segment, 1st segment, fake 1st segment + * `fakedsplit`. split request into 2 segments adding fakes in the middle of them : fake 1st segment, 1st segment, fake 1st segment, fake 2nd segment, 2nd segment, fake 2nd segment + * `fakeddisorder`. same as `fakedsplit` but with another order : fake 2nd segment, 2nd segment, fake 2nd segment, fake 1st segment, 1st segment, fake 1st segment Positions are defined by markers. diff --git a/docs/readme.md b/docs/readme.md index 63bb48d..591b23e 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,4 +1,4 @@ -# zapret v69.3 +# zapret v69.4 # ВНИМАНИЕ, остерегайтесь мошенников @@ -190,6 +190,7 @@ dvtws, собираемый из тех же исходников (см. [док --dpi-desync-split-pos=N|-N|marker+N|marker-N ; список через запятую маркеров для tcp сегментации в режимах split и disorder --dpi-desync-split-seqovl=N|-N|marker+N|marker-N ; единичный маркер, определяющий величину перекрытия sequence в режимах split и disorder. для split поддерживается только положительное число. --dpi-desync-split-seqovl-pattern=|0xHEX ; чем заполнять фейковую часть overlap +--dpi-desync-fakedsplit-pattern=|0xHEX ; чем заполнять фейки в fakedsplit/fakeddisorder --dpi-desync-badseq-increment= ; инкремент sequence number для badseq. по умолчанию -10000 --dpi-desync-badack-increment= ; инкремент ack sequence number для badseq. по умолчанию -66000 --dpi-desync-any-protocol=0|1 ; 0(default)=работать только по http request и tls clienthello 1=по всем непустым пакетам данных @@ -318,8 +319,13 @@ dvtws, собираемый из тех же исходников (см. [док * `multisplit`. нарезаем запрос на указанных в `--dpi-desync-split-pos` позициях. * `multidisorder`. нарезаем запрос на указанных в `--dpi-desync-split-pos` позициях и отправляем в обратном порядке. - * `fakedsplit`. нарезаем запрос на 2 части, обрамляя его фейками : фейк 1-й части, 1 часть, фейк 1-й части, 2 часть - * `fakeddisorder`. нарезаем запрос на 2 части, обрамляя его фейками : 2 часть, фейк 1-й части, 1 часть, фейк 1 части. + * `fakedsplit`. нарезаем запрос на 2 части, обрамляя каждую часть фейками : фейк 1-й части, 1 часть, фейк 1-й части, фейк 2-й части, 2 часть, фейк 2-й части + * `fakeddisorder`. аналогично `fakedsplit`, только в обратном порядке : фейк 2-й части, 2 часть, фейк 2-й части, фейк 1-й части, 1 часть, фейк 1 части. + +Содержимое фейков в `fakedsplit`/`fakeddisorder` определяется параметром `--dpi-desync-fakedsplit-pattern` (по умолчанию 0x00). +Данные фейков берутся из паттерна со смещением, соответствующим смещению отсылаемых частей. +Размеры фейков соответствуют длинам отсылаемых частей. +Цель этих режимов - максимально усложнить выявление оригинальных данных среди фейков. Для определения позиций нарезки используются маркеры. diff --git a/nfq/desync.c b/nfq/desync.c index 4a2c073..26e1c7b 100644 --- a/nfq/desync.c +++ b/nfq/desync.c @@ -1453,7 +1453,7 @@ static uint8_t dpi_desync_tcp_packet_play(bool replay, size_t reasm_offset, uint size_t seg_len,fakeseg2_len; unsigned int seqovl; - if (dis->len_payload>sizeof(pat)) + if (dis->len_payload > sizeof(pat)) { DLOG("packet is too large\n"); return verdict; @@ -1559,7 +1559,7 @@ static uint8_t dpi_desync_tcp_packet_play(bool replay, size_t reasm_offset, uint uint8_t fakeseg[DPI_DESYNC_MAX_FAKE_LEN+100],ovlseg[DPI_DESYNC_MAX_FAKE_LEN+100],pat[DPI_DESYNC_MAX_FAKE_LEN], *seg; size_t fakeseg_len,seg_len; - if (dis->len_payload>sizeof(pat)) + if (dis->len_payload > sizeof(pat)) { DLOG("packet is too large\n"); return verdict;