Implementation of some DPI bypass methods. The program is a local SOCKS proxy server.
Go to file
2023-06-12 10:01:40 +02:00
conev.c init 2023-06-03 21:52:10 +02:00
conev.h init 2023-06-03 21:52:10 +02:00
desync.c usleep to nanosleep 2023-06-12 10:01:40 +02:00
desync.h init 2023-06-03 21:52:10 +02:00
main.c usleep to nanosleep 2023-06-12 10:01:40 +02:00
Makefile usleep to nanosleep 2023-06-12 10:01:40 +02:00
packets.c init 2023-06-03 21:52:10 +02:00
packets.h init 2023-06-03 21:52:10 +02:00
params.h usleep to nanosleep 2023-06-12 10:01:40 +02:00
proxy.c init 2023-06-03 21:52:10 +02:00
proxy.h init 2023-06-03 21:52:10 +02:00
readme.txt опечатка 2023-06-03 21:53:36 +02: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 прокси

В дополнение к "--help":
-m, --method <s|d|f>
    Способ десинхронизации, комбинировать нельзя
    split:
        Разбить первый запрос на два по указанному смещению
        Если смещение отрицательное, то считать относительно конца
        Реализация: два вызова send
    disorder:
        Как split, но части отправляются в обратном порядке
        Реализация: устанавливаем TTL=1, отправляем первую часть, затем восстанавливаем значение TTL и отправляем вторую 
        (из-за низкого TTL первая часть не прибудет получателю и ОС выполнит ретрансмисию и снова отправит первую часть, но уже после второй и с нормальным TTL)
    fake:
        Как disorder, только перед первым запросом отправляется поддельный такого же размера
        Реализация: тут используется возможность перезаписи данных после вызова sendfile
        помещаем в буффер поддельные данные, вызываем sendfile с таким TTL, чтобы тот не дошел до сервера,
        затем перезаписываем данные оригинальными, восстанавливаем TTL и отправляем вторую часть с помощью send
            
-H, --split-at-host
    Если найден SNI или Host, то считать смещение относительно позиции домена
    
-t, --ttl <num>
    TTL для поддельного пакета, чтобы тот не дошел до сервера, но был обработан DPI
    
-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"