# 16. Справочник по ByeDPI (ciadpi): SOCKS5/TProxy десинхронизация ## 1. Архитектура и принцип работы ByeDPI (`ciadpi`) `ciadpi` (ByeDPI) — это легковесный локальный прокси-сервер (SOCKS5 / Transparent TCP), который принимает исходящий трафик и выполняет фрагментацию и манипуляцию пакетами на сокетовом уровне (L7/L4). ### Ключевое отличие от Zapret: - Zapret работает через перехват `NFQUEUE` (L3/L4 фильтрация ядра). - ByeDPI работает как SOCKS5 прокси (по умолчанию порт `4539` в Tachyon) или прозрачный прокси, модифицируя TCP payload непосредственно перед системным вызовом `send()`/`write()`. --- ## 2. Основные параметры командной строки ByeDPI ### 2.1. Фрагментация (`--split` / `-s`) - `--split <позиция>` или `-s <позиция>` - **Значения позиции:** - `1` — сплит на 1-м байте payload. - `2` — сплит на 2-м байте. - `1+sniext` — сплит в начале блока TLS SNI расширений. - `midsld` — сплит посередине SLD домена. ### 2.2. Изменение порядка сегментов (`--disorder` / `-d`) - `--disorder <позиция>` или `-d <позиция>` - Отправляет первый сегмент с задержкой или после второго сегмента (out-of-order delivery). ### 2.3. Инжекция фейковых пакетов (`--fake` / `-f` и `--ttl` / `-t`) - `--fake <смещение>` или `-f <смещение>` — смещение вставки фейкового пакета (`-1` = перед началом реального запроса). - `--ttl ` или `-t ` — Time-To-Live для фейковых пакетов (обычно `4..8` в зависимости от провайдера). ### 2.4. Out-of-Band данные (`--oob` / `-o`) - `--oob <смещение>` или `-o <смещение>` — отправка одного срочного байта TCP OOB (Urgent Pointer) на указанном смещении. Ломает разбор буфера в DPI, заставляя его пропустить пакет. ### 2.5. Автоматический режим (`--auto` / `-a`) - `--auto=t,r,a,s` - Адаптивный режим подбора: ByeDPI автоматически пробует комбинации флагов при обнаружении сброса соединения или таймаута: - `t` — TLS Record splitting - `r` — Reverse disorder - `a` — Auto-ttl - `s` — Simple split ### 2.6. Дополнительные опции - `--tlsrec ` / `-r ` — деление одного ClientHello на несколько независимых TLS Records. - `--ip-frag` — включение фрагментации на уровне IP. - `--mod-http` / `-M` — модификация HTTP заголовков (манипуляция Host/символами переноса строки). --- ## 3. Рецепты ByeDPI ### 1. Универсальный адаптивный авто-режим ```text -o 2 --auto=t,r,a,s -d 2 ``` ### 2. Disorder + Fake с контролем TTL ```text --split 1 --disorder 1 --fake -1 --ttl 8 ``` ### 3. SNI Extension Split + Fake ```text -s 1+sniext -f -1 -t 6 ``` ### 4. Агрессивный низко-TTL фейк ```text --fake -1 --ttl 4 --disorder 1 --split 1 ```