---
tags:
link:
aliases:
img:
height: 1000
---

## Полный список обманок (fooling) в zapret2

### 🔹 **IP/IPv4 модификации**

1. **`ip_ttl=N`** - установить TTL (Time To Live) в IPv4 заголовке
   - Пример: `ip_ttl=5`

2. **`ip_autottl=delta,min-max`** - автоматическое определение TTL
   - Формат: `delta,min-max` (например: `-1,3-20`)
   - Автоматически вычисляет оптимальный TTL на основе входящих пакетов

### 🔹 **IPv6 модификации**

3. **`ip6_ttl=N`** - установить Hop Limit в IPv6 заголовке (аналог TTL)
   - Пример: `ip6_ttl=3`

4. **`ip6_autottl=delta,min-max`** - автоматическое определение Hop Limit для IPv6
   - Формат: `delta,min-max`

### 🔹 **IPv6 Extension Headers (расширенные заголовки)**

5. **`ip6_hopbyhop[=hex]`** - добавить Hop-by-Hop заголовок
   - Размер данных: 6+N×8 байт
   - По умолчанию: `\x00\x00\x00\x00\x00\x00`

6. **`ip6_hopbyhop2[=hex]`** - добавить второй Hop-by-Hop заголовок
   - Размер данных: 6+N×8 байт

7. **`ip6_destopt[=hex]`** - добавить Destination Options заголовок (unfragmentable part)
   - Размер данных: 6+N×8 байт

8. **`ip6_destopt2[=hex]`** - добавить второй Destination Options заголовок (fragmentable part)
   - Размер данных: 6+N×8 байт

9. **`ip6_routing[=hex]`** - добавить Routing заголовок
   - Размер данных: 6+N×8 байт

10. **`ip6_ah[=hex]`** - добавить Authentication Header (усеченный)
    - Размер данных: 6+N×4 байт
    - По умолчанию: `\x00\x00` + 4 случайных байта

### 🔹 **TCP модификации**

11. **`tcp_seq=N`** - добавить N к TCP sequence number
    - Пример: `tcp_seq=10000`
    - Используется для "badseq" обманки

12. **`tcp_ack=N`** - добавить N к TCP acknowledgment number
    - Пример: `tcp_ack=-66000`
    - Используется для "badack" обманки (обычно отрицательное значение)

13. **`tcp_ts=N`** - добавить N к TCP timestamp value
    - Модифицирует TCP опцию timestamp

14. **`tcp_md5[=hex]`** - добавить TCP MD5 опцию (RFC 2385)
    - Размер: 16 байт
    - По умолчанию: случайные данные
    - Пример: `tcp_md5` или `tcp_md5=0x00112233445566778899aabbccddeeff`

15. **`tcp_flags_set=<список>`** - установить TCP флаги
    - Список через запятую: `FIN,SYN,RST,PSH,ACK,URG,ECE,CWR`
    - Пример: `tcp_flags_set=PSH,URG`

16. **`tcp_flags_unset=<список>`** - снять TCP флаги
    - Пример: `tcp_flags_unset=ACK` (для "datanoack" обманки)

17. **`tcp_ts_up`** - переместить TCP timestamp опцию в начало
    - Без параметров
    - Workaround для Linux: позволяет отбрасывать пакеты с badack без badseq

### 🔹 **Дополнительные опции**

18. **`badsum`** - сделать контрольную сумму L4 невалидной
    - Без параметров
    - Относится к reconstruct options

19. **`fool=функция`** - вызвать пользовательскую функцию обманки
    - Формат: `fool_func(dis, fooling_options)`
    - Для создания собственных обманок

### 📋 **Популярные комбинации (из nfqws1)**

В старой версии (nfqws1) были готовые комбинации:

- **`md5sig`** → `tcp_md5`
- **`badseq`** → `tcp_seq=-10000` (для SYN) или `tcp_ack=-66000` (для обычных пакетов)
- **`badack`** → `tcp_ack=-66000`
- **`datanoack`** → `tcp_flags_unset=ACK`

### 💡 **Примеры использования**

```bash
# Простой TTL
--lua-desync=fake:ip_ttl=5

# Автоматический TTL
--lua-desync=fake:ip_autottl=-1,3-20

# TCP MD5 signature (обманка для DPI)
--lua-desync=fake:tcp_md5

# Badseq + badack (классическая обманка)
--lua-desync=fakedsplit:tcp_seq=-10000:tcp_ack=-66000:tcp_ts_up

# IPv6 extension headers
--lua-desync=fake:ip6_hopbyhop:ip6_destopt

# Снять ACK флаг (datanoack)
--lua-desync=fake:tcp_flags_unset=ACK

# Комбинация нескольких обманок
--lua-desync=fake:ip_ttl=1:tcp_md5:tcp_ack=-66000
```

Все эти обманки применяются функцией `apply_fooling()` из библиотеки `zapret-lib.lua` и используются для обхода DPI систем путем создания пакетов, которые проходят через DPI, но отбрасываются целевым сервером или наоборот.