ID:
TRACEROUTE_DENIEDКатегория: Маршруты и сетевой стек Статус в RKNHardering 2.10.0: Активная проверка Роль в вердикте: Средняя
Эта страница описывает фактическую реализацию RKNHardering 2.10.0. Здесь отдельно указано, что можно сделать без root, что требует root, а также где способ только уменьшает один сигнал, но не скрывает VPN целиком.
Проба создаёт обычный UDP socket, ставит IP_TTL=1 и send timeout 100 ms, затем отправляет 64 bytes на 127.0.0.1:33434. Строка появляется только если sendto вернул -1 именно с EACCES. ICMP reply, hop и внешний traceroute не измеряются.
EACCES при локальной UDP sendto после установки TTL=1.
Это признак policy/firewall denial для конкретного socket path. Он не доказывает VPN encapsulation. Checker выставляет review средней уверенности.
Как строка влияет на отчёт: Строка не даёт самостоятельный окончательный вердикт, но выставляет needsReview=true и добавляет доказательство средней уверенности.
Название «traceroute» условное: destination loopback, raw socket не используется, hop discovery отсутствует. EPERM/ENETUNREACH/другие errno вообще не выводятся.
Важно оценивать эту строку вместе с соседними сигналами. Один чистый API не перекрывает Java Binder, libc, raw netlink/syscall, procfs/sysfs, локальные сокеты и серверные признаки одновременно.
Отключите сторонний local firewall/DNS/VPN для контрольного запуска и запишите, исчезает ли EACCES. Не пытайтесь разрешить внешний traceroute — проверка локальная.
Проверьте UID-specific iptables/nftables и AVC. Не делайте flush; найдите точное правило, применяемое к loopback UDP/33434 или TTL-marked traffic.
adb logcat -d | grep -E 'avc: denied|33434|traceroute' | tail -80
adb shell su -c 'iptables-save | grep -E "33434|owner|uid|lo"; ip6tables-save | grep -E "33434|owner|uid|lo"'
Shell packet может пройти, даже если app UID заблокирован.
После любого изменения сделайте force-stop RKNHardering и VPN-клиента, запустите их заново и повторите полный scan. Для Zygisk/Xposed/kernel-модулей обычно нужна перезагрузка. Сравнивайте не только эту строку, но и соседние сигналы: частичный hook часто создаёт несогласованность между API.
Сама проба выполняется с обычными правами приложения и не запрашивает root. ADB-команды ниже служат только для ориентира: adb shell работает под другим UID и может видеть больше или меньше, чем процесс приложения. Решающий тест — повторный запуск самой проверки после force-stop.
Глобальный firewall flush может раскрыть трафик, отключить kill-switch и нарушить безопасность. Меняйте только подтверждённое UID-rule.
Восстановите сохранённый ruleset/модуль и перезапустите firewall/VPN. Проверьте DNS и kill-switch.
Средняя. Проверено по loopback destination, TTL=1 и единственной EACCES branch; medium default.
Статус стороннего решения не переносится автоматически на это устройство. Заявление разработчика модуля — это исходная гипотеза; подтверждением служит повторяемый результат RKNHardering на конкретной версии Android, прошивки и ядра.
native_signs_probe.cpp — нативная реализация проб.VpnNativeDetectorChecker.kt — deep VPN verdict и confidence.NativeSignalId.kt — полный реестр ID.NativeSignalCatalog.kt — категория, slug и mapping строк.Связанные сигналы: udp-pmtu-fail, syscall-unavailable, inet-diag-denied.