
10.01 MB
Android 7.0+
169
Universal
Verified safeScanned with ClamAV, APKiD, and Quark-Engine. No threats detected.
Screenshots

Description
😎 YourVPNDead (твой ВПН мёртв) — теперь ты знаешь об этом
Самопроверка на обнаружение VPN/прокси на Android
Демонстрирует, какую информацию о вашем VPN может получить ЛЮБОЕ приложение на устройстве — без root, без специальных разрешений, используя только стандартные API Android. Чтобы обнаружить айпи вашего ВПН требуется меньше 1 секунды.
Зачем это нужно
В 2024-2026 годах Роскомнадзор и Минцифры активно развивают методы обнаружения VPN на устройствах граждан. Методичка Минцифры описывает проверки, которые могут выполняться приложениями, имеющими доступ к устройству (банковские приложения, приложения госуслуг, маркетплейсы с обязательными SDK).
Это приложение показывает вам то же самое, что видит потенциальный шпион — чтобы вы могли защититься.
Контекст угрозы
Яндекс.Метрика с 2017 года отправляет HTTP-запросы на localhost (исследование)
Meta Pixel использует WebRTC STUN для сканирования localhost (SDP Munging)
Минцифры разработала методику детекции VPN по открытым портам, MTU, DNS, интерфейсам
Роскомнадзор блокирует VPN-протоколы на уровне ТСПУ (DPI), но детекция на устройстве — следующий этап
Все популярные VPN-клиенты (v2rayNG, NekoBox, Hiddify) создают SOCKS5-прокси без аутентификации на localhost — через него можно узнать IP вашего VPN-сервера
Что проверяет приложение
1. Прямые признаки (DirectSignsChecker)
Проверка API / Метод Что обнаруживает
TRANSPORT_VPN NetworkCapabilities.hasTransport(TRANSPORT_VPN) Системный флаг VPN-транспорта
IS_VPN (скрытый) caps.toString().contains("IS_VPN") Внутренний флаг Android, не в публичном API
VpnTransportInfo caps.toString().contains("VpnTransportInfo") Класс транспорта VPN
HTTP прокси System.getProperty("http.proxyHost") Системный HTTP-прокси
SOCKS прокси System.getProperty("socksProxyHost") Системный SOCKS-прокси
Известные порты Сравнение с базой (1080, 9050, 8080...) Прокси на стандартных портах
VPN-приложения PackageManager.getPackageInfo() 19 известных VPN-клиентов
VPN-интерфейсы NetworkInterface.getNetworkInterfaces() tun\d+, tap\d+, wg\d+, ppp\d+, ipsec.*
Таблица маршрутизации /proc/net/route Default route через нестандартный интерфейс
Split tunnel Сравнение прямого IP и proxy IP Per-app split bypass
Проверяемые VPN-приложения (19 пакетов): v2rayNG, sing-box (SFA), Hiddify, ClashMeta, Shadowsocks, HAPP, XrayNG, NekoBox, ByeDPI, ByeByeDPI, Outline, Psiphon, Lantern, WireGuard, strongSwan, Tor Browser, Orbot и другие.
2. Косвенные признаки (IndirectSignsChecker)
Проверка API / Метод Логика детекции
NET_CAPABILITY_NOT_VPN caps.hasCapability(NET_CAPABILITY_NOT_VPN) Если capability отсутствует — сеть = VPN
MTU аномалии NetworkInterface.getMTU() VPN снижает MTU (1500→1400) из-за инкапсуляции
DNS в частной подсети LinkProperties.getDnsServers() DNS 192.168.x.x/10.x.x.x = возможен VPN-туннель
dumpsys vpn_management Runtime.exec("dumpsys ...") Системная информация о VPN (обычно заблокирована)
dumpsys VpnService Runtime.exec("dumpsys ...") Активные VPN-сервисы
MTU — почему это работает:
Стандартный MTU (Ethernet/WiFi): 1500
WireGuard: обычно 1420 (overhead 80 байт)
OpenVPN: обычно 1400 (overhead ~100 байт)
VLESS/Trojan (xray): 1380-1400 (зависит от транспорта)
Если MTU < 1500 на активном интерфейсе — вероятно VPN
3. Анализ /proc/net/tcp (ProcNetScanner)
Парсит /proc/net/tcp и /proc/net/tcp6 для обнаружения listening-портов на localhost. Работает без root на большинстве Android.
Идентификация VPN-клиента по паттерну портов:
Порт Клиент
10808 + 10809 + 19085 v2rayNG / XrayFluent (xray SOCKS + HTTP + Stats API)
2080 NekoBox / Throne (sing-box mixed)
7890 + 7891 + 9090 Clash / mihomo (HTTP + SOCKS + API)
3066 + 3067 Karing
19090 sing-box Clash API (утечка IP серверов через /connections!)
4. Bypass-проверки
4.1 Сканер портов (PortScanner)
Сканирует 127.0.0.1 и ::1 (IPv6 localhost). Некоторые VPN-клиенты слушают только на IPv6.
Быстрый скан: 40+ известных портов VPN-клиентов
Полный скан: 1-65535, 32 параллельных корутины
Определение типа: SOCKS5 (RFC 1928), HTTP CONNECT, gRPC (HTTP/2)
Rate this app
Ratings & reviews