Implementation of some DPI bypass methods. The program is a local SOCKS proxy server.
Go to file
2024-02-18 17:19:11 +03:00
conev.c Minor fixes 2023-08-20 15:30:03 +02:00
conev.h Delete UDP support 2023-10-10 20:24:46 +02:00
desync.c --tlsrec 2024-02-18 17:19:11 +03:00
desync.h --tlsrec 2024-02-18 17:19:11 +03:00
main.c --tlsrec 2024-02-18 17:19:11 +03:00
Makefile usleep to nanosleep 2023-06-12 10:01:40 +02:00
packets.c --tlsrec 2024-02-18 17:19:11 +03:00
packets.h --tlsrec 2024-02-18 17:19:11 +03:00
params.h --tlsrec 2024-02-18 17:19:11 +03:00
proxy.c --tlsrec 2024-02-18 17:19:11 +03:00
proxy.h UDP support 2023-07-06 20:21:44 +02:00
readme.txt --tlsrec 2024-02-18 17:19:11 +03:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Реализация некоторых способов запутывания DPI на Linux в виде SOCKS прокси

Пример использования:
$ ./ciadpi --method disorder --split-pos 3 --port 1080

Чуть более подробный текст "--help":
-i, --ip <ip>
    Прослушиваемый IP, по умолчанию 0.0.0.0    
-p, --port <num>          
    Прослушиваемый порт, по умолчанию 1080    
-D, --daemon
    Запуск в режиме демона 
-f, --pidfile <file>
    Записать PID в указанный файл    
-c, --max-conn <count>
    Максимальное количество клиентских подключений, по умолчанию 512
-I  --conn-ip <ip>
    Адрес, к которому будут привязаны исходящие соединения, по умолчанию ::
-b, --buf-size <size>
    Максимальный размер данных, получаемых и отправляемых за один вызов
-g, --def-ttl <num>
    Значение TTL для всех исходящий соединений
-N, --no-domain
    Отбрасывать запросы, если в качестве адреса указан домен
-K, --desync-known
    Отключить запутывание для нераспознанных протоколов (не HTTP или TLS)
-m, --method <s|d|f>
    Способ десинхронизации TCP, есть 3 метода, комбинировать их нельзя:
    split:
      Разбить первый запрос на два по определённому смещению
    disorder:
      Как split, но части отправляются в обратном порядке
    fake:
      Как disorder, только перед первым запросом отправляется поддельный такого же размера (т.е. равное значению split-pos)

-s, --split-pos <offset>
    Смещение, по которому будет разбит запрос, по умолчанию 3
    Если значение отрицательное, то оно будет считаться от конца
-H, --split-at-host
    Если найден SNI или Host, то считать смещение относительно позиции домена
-t, --ttl <num>
    TTL для поддельного пакета, чтобы тот не дошел до сервера, но был обработан DPI, по умолчанию 8    
-l, --fake-tls <file>
-o, --fake-http <file>
    Указать свои поддельные пакеты, вместо дефолтных
-n, --tls-sni <str>
    В качестве поддельного пакета для TLS используется заранее записанный ClientHello,
    данный параметр модифицирует его, изменяя SNI на указанный
-M, --mod-http <h[,d,r]>
    Всякие манипуляции с HTTP пакетом, можно комбинировать
    hcsmix:
        "Host: name" -> "hOsT: name"
    dcsmix:
        "Host: name" -> "Host: NaMe"
    rmspace:
        "Host: name" -> "Host:name\t"
-r, --tlsrec <offset>
    Разделить ClientHello на отдельные записи по указанному смещению
-L, --tlsrec-at-sni
    Если найден SNI, то считать относительно его смещения