Appteka Logo
Appteka
whatVPN app icon

whatVPN

Verified safe
v1.0 (1)
Published Apr 12, 2026
Download APK
2.32 MB
Android 8.0+
79
Universal
Description
Небольшой POC, покрывающий проверки RKNHardening - тестаппы по детекту ВПН из внешних приложений Не является обходом, используйте пожалуйста только для проверок безопасности вашего устройства С последнего коммита официально является нейрослопом Требования Android 8+ su-доступ LSPosed Установка Установить .apk Включить модуль в LSPosed Добавить в скоуп LSPosed все приложения для проверки Перезапустить устройство Применить в whatVPN требуемые приложения (покажутся приложения из скоупа) Перезапустить устройство Проверять Функциональность Что не может GeoIP - решается сплит-туннелингом IP Comparison - решается сплит-туннелингом Location Signals - решается сплит-туннелингом WebRTC Leak - JS может раскрыть публичный IP через RTCPeerConnection, можно попробовать отключение WebRTC в настройках браузера Что может Direct signs - системные АПИ вызовы (проверка TRANSPORT_VPN) Хук на вызов connectivityManager.getNetworkCapabilities(network).hasTransport(4) - всегда вернет false Хук на вызов NetworkCapabilities.toString() - убирает подстроки с VPN, добавляет NOT_VPN Хук на вызов NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_VPN) - возвращает true Хук на вызов ConnectivityManager.getNetworkInfo(TYPE_VPN) - возвращает null Хук на получение системных свойств (http.proxyHost, http.proxyPort, socksProxyHost, socksProxyPort и https-варианты) через System.getProperty(String) - возвращает null Хук на PackageManager.getPackageInfo(), getInstalledApplications(), getInstalledPackages() возвращает null на проверку по package name (надо будет сделать добавление) Фильтрует ConnectivityManager.getAllNetworks() - вроде как малоиспользуемое, но оставляем только физическую сеть Вызывает PackageManager.queryIntentServices(Intent("android.net.VpnService")) и прячет приложения с VpnService в манифесте Indirect signs - сетевые интерфейсы и маршруты Хук на вызов NetworkInterface.getNetworkInterfaces() - фильтрует по паттернам tun\d+, tap\d+, wg\d+, ppp\d+, ipsec.* и с уменьшенным MTU Хук на вызов LinkProperties.getRoutes() - фильтрует по dedicated routes через VPN-интерфейсы (к примеру 0.0.0.0/5 via tun0) и по паттерну сплит-туннелинга Хук на вызов LinkProperties.getDnsServers() - возвращает DNS физического интерфейса Фильтрует /proc/net/*, /sys/class/net/ при чтении - убирает VPN-интерфейсы Очищает dumpsys vpn_management Возвращает EConnRefused на сканирование известных портов. Если приложение активно сканирует порты - уходит в режим полной блокировки на 10 секунд
Rate this app
0 / 1000
Optional for 4–5 stars. Required for 1–3 stars (min 10 characters).
Ratings & reviews
No reviews yet.