Commit ed478288 authored by bol-van's avatar bol-van
Browse files

update docs

parent 80b6b759
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -197,7 +197,7 @@ nfqws takes the following parameters:
 --dpi-desync-split-seqovl-pattern=<filename>|0xHEX ; pattern for the fake part of overlap
 --dpi-desync-fakedsplit-pattern=<filename>|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=<hostname>
 --dpi-desync-hostfakesplit-mod=mod[,mod]       ; can be none, host=<hostname>, 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=<int|0xHEX>          ; 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

+6 −2
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ dvtws, собираемый из тех же исходников (см. [док
--dpi-desync-split-seqovl-pattern=<filename>|0xHEX ; чем заполнять фейковую часть overlap
--dpi-desync-fakedsplit-pattern=<filename>|0xHEX   ; чем заполнять фейки в fakedsplit/fakeddisorder
--dpi-desync-hostfakesplit-midhost=marker+N|marker-N ; маркер дополнительного разреза сегмента с оригинальным хостом. должен попадать в пределы хоста.
--dpi-desync-hostfakesplit-mod=mod[,mod]           ; может быть none или host=<hostname>
--dpi-desync-hostfakesplit-mod=mod[,mod]           ; может быть none, host=<hostname>, altorder=0|1
--dpi-desync-ts-increment=<int|0xHEX>              ; инкремент TSval для ts. по умолчанию -600000
--dpi-desync-badseq-increment=<int|0xHEX>          ; инкремент sequence number для badseq. по умолчанию -10000
--dpi-desync-badack-increment=<int|0xHEX>          ; инкремент 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 ставится одинаковым в фейках и оригинале хоста.