From ed4782887f8de7da8c003a98484222a08ee882c1 Mon Sep 17 00:00:00 2001 From: bol-van Date: Mon, 22 Sep 2025 17:37:21 +0300 Subject: [PATCH] update docs --- docs/readme.en.md | 5 +++-- docs/readme.md | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/readme.en.md b/docs/readme.en.md index 93d95c8f..60a5348e 100644 --- a/docs/readme.en.md +++ b/docs/readme.en.md @@ -197,7 +197,7 @@ nfqws takes the following parameters: --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-hostfakesplit-midhost=marker+N|marker-N ; additionally split real hostname at specified marker. must be within host..endhost or won't be splitted. - --dpi-desync-hostfakesplit-mod=mod[,mod] ; can be none or host= + --dpi-desync-hostfakesplit-mod=mod[,mod] ; can be none, host=, altorder=0|1 --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-ts-increment= ; ts fooling TSval signed increment. default -600000 @@ -346,7 +346,7 @@ Example : `--dpi-desync-fake-tls=iana_org.bin --dpi-desync-fake-tls-mod=rndsni - * `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, fake 2nd segment, 2nd segment, fake 2nd segment - * `hostfakesplit`. fake host part of the request : before host, random fake host, real host (optionally split this part), random fake host repeat, after host + * `hostfakesplit`. fake host part of the request. Mode 1 (altorder=0) : before host, random fake host, real host (optionally split this part), random fake host repeat, after host. Mode 2 (altorder=1) : before host, random fake host, after host, real host (optionally split this part). * `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. @@ -388,6 +388,7 @@ If original hostname size is less than template size it will be cut : "habr.com" If original hostname size is larger than template size by one, dot will be appended to the left : "www.xxx.com" => ".google.com".. That's why it's a good idea to use short hostnames in template : "ya.ru", "vk.com", "x.com". +`--dpi-desync-hostfakesplit-mod=altorder=1` switches to alternate segment ordering. `altorder=1` sends the whole request with faked host sequentally, then real host segment. ### Sequence numbers overlap diff --git a/docs/readme.md b/docs/readme.md index bf7e51eb..4acd6428 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -221,7 +221,7 @@ dvtws, собираемый из тех же исходников (см. [док --dpi-desync-split-seqovl-pattern=|0xHEX ; чем заполнять фейковую часть overlap --dpi-desync-fakedsplit-pattern=|0xHEX ; чем заполнять фейки в fakedsplit/fakeddisorder --dpi-desync-hostfakesplit-midhost=marker+N|marker-N ; маркер дополнительного разреза сегмента с оригинальным хостом. должен попадать в пределы хоста. ---dpi-desync-hostfakesplit-mod=mod[,mod] ; может быть none или host= +--dpi-desync-hostfakesplit-mod=mod[,mod] ; может быть none, host=, altorder=0|1 --dpi-desync-ts-increment= ; инкремент TSval для ts. по умолчанию -600000 --dpi-desync-badseq-increment= ; инкремент sequence number для badseq. по умолчанию -10000 --dpi-desync-badack-increment= ; инкремент ack sequence number для badseq. по умолчанию -66000 @@ -406,7 +406,7 @@ dvtws, собираемый из тех же исходников (см. [док * `multisplit`. нарезаем запрос на указанных в `--dpi-desync-split-pos` позициях. * `multidisorder`. нарезаем запрос на указанных в `--dpi-desync-split-pos` позициях и отправляем в обратном порядке. * `fakedsplit`. нарезаем запрос на 2 части, обрамляя каждую часть фейками : фейк 1-й части, 1 часть, фейк 1-й части, фейк 2-й части, 2 часть, фейк 2-й части - * `hostfakesplit`. фейкование части запроса с хостом : оригинал до хоста, фейк хоста, оригинал хоста (+ опционально нарезка маркером midhost), фейк хоста, оригинал после хоста + * `hostfakesplit`. фейкование части запроса с хостом. Варинат 1 (altorder=0) : оригинал до хоста, фейк хоста, оригинал хоста (+ опционально нарезка маркером midhost), фейк хоста, оригинал после хоста. Вариант 2 (altorder=1) : оригинал до хоста, фейк хоста, оригинал после хоста, оригинал хоста (+опционально нарезка маркеом midhost). * `fakeddisorder`. аналогично `fakedsplit`, только в обратном порядке : фейк 2-й части, 2 часть, фейк 2-й части, фейк 1-й части, 1 часть, фейк 1 части. Содержимое фейков в `fakedsplit`/`fakeddisorder` определяется параметром `--dpi-desync-fakedsplit-pattern` (по умолчанию 0x00). @@ -426,6 +426,10 @@ dvtws, собираемый из тех же исходников (см. [док Если размер оригинального хоста больше шаблона на 1, получится инвалидный пустой поддомен : "www.xxx.com" => ".google.com". Поэтому стоит использовать максимально короткие хосты из разрешенных : "ya.ru", "vk.com". +`--dpi-desync-hostfakesplit-mod=altorder=1` позволяет сменить порядок следования частей на альтернативный вариант. +`altorder=1` шлет фрагменты в таком порядке, чтобы при последовательной сборке сегментов на DPI он получил полностью собранный оригинал запроса с подмененным хостом. +Реальный хост идет отдельным сегментом уже после. То есть в этом варианте применяется разновидность disorder. Сервер принимает фрагменты с нарушенным порядком sequence. + Опционально можно разрезать оригинальный фейк. Например, `--dpi-desync-hostfakesplit-midhost=midsld`. Позиция нарезки должна попадать внутрь хоста. Многопакетные запросы поддерживаются только, если исходная нарезка пакетов не включает позиции имени хоста. В последнем случае дурение отменяется. Для ipv4 ip_id ставится одинаковым в фейках и оригинале хоста.