diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..2c6d612 --- /dev/null +++ b/readme.md @@ -0,0 +1,41 @@ +Реализация некоторых способов запутывания DPI. +Программа представляет собой SOCKS прокси сервер, работающий без особых привилегий. + +Пример использования: +`$ ./ciadpi --method disorder --split-pos 3 --port 1080` + +Чуть более подробный текст "--help": +``` +-i, --ip Прослушиваемый IP, по умолчанию 0.0.0.0 +-p, --port Прослушиваемый порт, по умолчанию 1080 +-c, --max-conn Максимальное количество клиентских подключений, по умолчанию 512 +-I --conn-ip Адрес, к которому будут привязаны исходящие соединения, по умолчанию :: +-b, --buf-size Максимальный размер данных, получаемых и отправляемых за один вызов +-g, --def-ttl Значение TTL для всех исходящий соединений +-N, --no-domain Отбрасывать запросы, если в качестве адреса указан домен +-K, --desync-known Отключить запутывание для нераспознанных протоколов (не HTTP или TLS) +-m, --method Способ десинхронизации TCP, есть 3 метода, комбинировать их нельзя: + split: + Разбить первый запрос на два по определённому смещению + disorder: + Как split, но части отправляются в обратном порядке + ! Поведение в Windows отлично: сначала отправляется вторая часть, затем целый запрос + fake: + Как disorder, только перед первым запросом отправляется часть поддельного + след. кол-во байт отправляемого из фейка равно значению split-pos + ! В Windows не поддерживается +-s, --split-pos Смещение, по которому будет разбит запрос, по умолчанию 3 + Если значение отрицательное, то оно будет считаться от конца +-H, --split-at-host Если найден SNI или Host, то считать смещение относительно позиции домена +-t, --ttl TTL для поддельного запроса, чтобы тот не дошел до сервера, но был обработан DPI, по умолчанию 8 +-l, --fake-tls +-o, --fake-http Указать свои поддельные пакеты, вместо дефолтных +-n, --tls-sni Изменить SNI в fake пакете на указанный +-M, --mod-http Всякие манипуляции с HTTP пакетом, можно комбинировать + hcsmix: "Host: name" -> "hOsT: name" + dcsmix: "Host: name" -> "Host: NaMe" + rmspace: "Host: name" -> "Host:name\t" +-r, --tlsrec Разделить ClientHello на отдельные записи по указанному смещению + Также возможен отсчет от конца при указании отрицательного значения +-L, --tlsrec-at-sni Отсчитывать позицию tlsrec относительно SNI +``` \ No newline at end of file diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 61a8d76..0000000 --- a/readme.txt +++ /dev/null @@ -1,59 +0,0 @@ -Реализация некоторых способов запутывания DPI. -Программа представляет собой SOCKS прокси сервер, работающий без особых привилегий. - -Пример использования: -$ ./ciadpi --method disorder --split-pos 3 --port 1080 - -Чуть более подробный текст "--help": --i, --ip - Прослушиваемый IP, по умолчанию 0.0.0.0 --p, --port - Прослушиваемый порт, по умолчанию 1080 --c, --max-conn - Максимальное количество клиентских подключений, по умолчанию 512 --I --conn-ip - Адрес, к которому будут привязаны исходящие соединения, по умолчанию :: --b, --buf-size - Максимальный размер данных, получаемых и отправляемых за один вызов --g, --def-ttl - Значение TTL для всех исходящий соединений --N, --no-domain - Отбрасывать запросы, если в качестве адреса указан домен --K, --desync-known - Отключить запутывание для нераспознанных протоколов (не HTTP или TLS) --m, --method - Способ десинхронизации TCP, есть 3 метода, комбинировать их нельзя: - split: - Разбить первый запрос на два по определённому смещению - disorder: - Как split, но части отправляются в обратном порядке - ! Поведение в Windows отлично: сначала отправляется вторая часть, затем целый запрос - fake: - Как disorder, только перед первым запросом отправляется поддельный такого же размера (т.е. равное значению split-pos) - ! В Windows не поддерживается --s, --split-pos - Смещение, по которому будет разбит запрос, по умолчанию 3 - Если значение отрицательное, то оно будет считаться от конца --H, --split-at-host - Если найден SNI или Host, то считать смещение относительно позиции домена --t, --ttl - TTL для поддельного пакета, чтобы тот не дошел до сервера, но был обработан DPI, по умолчанию 8 --l, --fake-tls --o, --fake-http - Указать свои поддельные пакеты, вместо дефолтных --n, --tls-sni - В качестве поддельного пакета для TLS используется заранее записанный ClientHello, - данный параметр модифицирует его, изменяя SNI на указанный --M, --mod-http - Всякие манипуляции с HTTP пакетом, можно комбинировать - hcsmix: - "Host: name" -> "hOsT: name" - dcsmix: - "Host: name" -> "Host: NaMe" - rmspace: - "Host: name" -> "Host:name\t" --r, --tlsrec - Разделить ClientHello на отдельные записи по указанному смещению - Также возможен отсчет от конца при указании отрицательного значения --L, --tlsrec-at-sni - Если найден SNI, то считать относительно его смещения \ No newline at end of file