gar_alex, в старом dpitunnel применяется только фрагментация и подмена sni, которая невозможна на новых андроидах.
От фрагментации сейчас толку очень мало, и заработает этот метод на небольшом числе операторов, поэтому в этом приложении применяются нормальные атаки десинхронизации. Т.е. к примеру, перед отправкой ClientHello отправляется фейковый ClientHello со sni w3.org, example.com или любым другим и TTL меньшим, чем нужно для доставки до сервера, чтобы некоторые stateful dpi отстали от этого потока, но сервер этот пакет не увидел. Отправить фейк возможно только с рут правами, например через raw socket. Тоже самое касается отправки пакетов в обратном порядке, т.е. имитация tcp out-of-order. Других способов, как это сделать, кроме raw socket или nfqueue (как в nfqws от bol-van) я не нашел.