Update readme.txt

This commit is contained in:
ruti 2023-07-07 22:22:40 +02:00
parent 922ed35310
commit 3be8b82084

View File

@ -1,10 +1,6 @@
Реализация некоторых способов запутывания DPI на Linux в виде SOCKS прокси Реализация некоторых способов запутывания DPI на Linux в виде SOCKS прокси
Сборка: Пример использования:
$ git clone https://github.com/hufrea/byedpi.git
$ cd byedpi
$ make
Использование:
$ ./ciadpi --method disorder --split-pos 3 --port 1080 $ ./ciadpi --method disorder --split-pos 3 --port 1080
Чуть более подробный текст "--help": Чуть более подробный текст "--help":
@ -20,29 +16,33 @@ $ ./ciadpi --method disorder --split-pos 3 --port 1080
Максимальное количество клиентских подключений, по умолчанию 512 Максимальное количество клиентских подключений, по умолчанию 512
-N, --no-domain -N, --no-domain
Отбрасывать запросы если в качестве адреса указан домен Отбрасывать запросы если в качестве адреса указан домен
-U, --no-udp
Не проксировать UDP
-K, --desync-known -K, --desync-known
Отключить запутывание для нераспознанных протоколов (не HTTP или TLS) Отключить запутывание для нераспознанных протоколов (не HTTP или TLS)
-m, --method <s|d|f> -m, --method <s|d|f>
Способ десинхронизации, комбинировать нельзя Способ десинхронизации TCP, комбинировать нельзя
split: split:
Разбить первый запрос на два по указанному смещению Разбить первый запрос на два по указанному смещению
Если смещение отрицательное, то считать относительно конца Если смещение отрицательное, то считать относительно конца
Реализация: два вызова send Реализация: два вызова send, с разными частями буфера
disorder: disorder:
Как split, но части отправляются в обратном порядке Как split, но части отправляются в обратном порядке
Реализация: устанавливаем TTL=1, отправляем первую часть, затем восстанавливаем значение TTL и отправляем вторую Реализация: устанавливаем TTL=1, отправляем первую часть, затем восстанавливаем значение TTL и отправляем вторую
(из-за низкого TTL первая часть не прибудет получателю и ОС выполнит ретрансмисию и снова отправит первую часть, но уже после второй и с нормальным TTL) (из-за низкого TTL первая часть не прибудет получателю и ОС выполнит ретрансмисию и снова отправит первую часть, но уже после второй)
fake: fake:
Как disorder, только перед первым запросом отправляется поддельный такого же размера Как disorder, только перед первым запросом отправляется поддельный такого же размера (т.е. равное значению split-pos)
Реализация: тут используется возможность перезаписи данных после вызова sendfile - Реализация: тут используется возможность перезаписи данных после вызова sendfile -
помещаем в буффер поддельные данные, вызываем sendfile с таким TTL, чтобы тот не дошел до сервера, помещаем в буффер поддельные данные, вызываем sendfile с таким TTL, чтобы тот не дошел до сервера,
затем перезаписываем данные оригинальными, восстанавливаем TTL и отправляем вторую часть с помощью send затем перезаписываем данные оригинальными, восстанавливаем TTL и отправляем вторую часть с помощью send
-H, --split-at-host -H, --split-at-host
Если найден SNI или Host, то считать смещение относительно позиции домена Если найден SNI или Host, то считать смещение относительно позиции домена
-t, --ttl <num> -t, --ttl <num>
TTL для поддельного пакета, чтобы тот не дошел до сервера, но был обработан DPI, по умолчанию 8 TTL для поддельного пакета, чтобы тот не дошел до сервера, но был обработан DPI, по умолчанию 8
-l, --fake-tls <file> -l, --fake-tls <file>
-o, --fake-http <file> -o, --fake-http <file>
-e, --fake-udp <file>
Указать свои поддельные пакеты, вместо дефолтных Указать свои поддельные пакеты, вместо дефолтных
-n, --tls-sni <str> -n, --tls-sni <str>
В качестве поддельного пакета для TLS используется заранее записанный ClientHello, В качестве поддельного пакета для TLS используется заранее записанный ClientHello,
@ -55,3 +55,7 @@ $ ./ciadpi --method disorder --split-pos 3 --port 1080
"Host: name" -> "Host: NaMe" "Host: name" -> "Host: NaMe"
rmspace: rmspace:
"Host: name" -> "Host:name\t" "Host: name" -> "Host:name\t"
-u, --desync-udp <f>
Способ десинхронизации UDP, реализован один метод - fake