RKNHardering Help

RKNHardering 原生检查参考

本参考文档说明 2.10.0 版中的全部 85 个 NativeSignalId 条目。它不是一组泛泛建议:每个页面都对应具体的 Kotlin 或 C++ 条件,说明该输出行在最终判定中的作用,并明确区分无需 root即可采取的措施与必须使用 root的措施。

每个信号页面都会标出精确的 API、系统调用、netlink 请求、文件、属性或启发式条件,并说明限制、验证命令、风险与回滚步骤。当前流水线中没有生成器的历史 ID 会被明确标记;gso_ok 也会单独说明——C++ 会生成这一行,但不包含 detail 值,因此 2.10.0 的 UI 解析器会将其丢弃。

覆盖全部本地与服务端检查的实用矩阵见完整反检测指南。建议先阅读威胁模型实验室方法;否则很容易在消除一条输出的同时又制造三条新信号。

如何理解信号的作用

这些页面中的 ADB 命令只用于辅助诊断。adb shell 运行在不同的 UID 与 SELinux 域中,因此其输出不能替代在 RKNHardering 内重新执行检查。所有 root 或内核级实验都应先在测试设备上进行,并提前保存 boot 镜像,确认可以从 recovery 禁用模块。

网络接口

页面 ID 作用 状态 页面说明
interface-enumeration INTERFACE_ENUMERATION 混合 已启用 主要网络接口枚举
tuntap-type TUNTAP_TYPE 已启用 不依赖名称的 ARPHRD_TUNNEL/TUN-TAP 接口类型检查
ipsec-interface IPSEC_INTERFACE 已启用 IPsec/XFRM 接口
jvm-native-mismatch JVM_NATIVE_MISMATCH 混合 已启用 Java NetworkInterface 与原生 getifaddrs() 之间的不一致
inet6-vpn-interface INET6_VPN_INTERFACE 已启用 针对固定 VPN 接口的旧版 ioctl 检查
arp-vpn-interface ARP_VPN_INTERFACE 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的旧版 VPN 接口 ARP ID
hidden-mac-neighbors HIDDEN_MAC_NEIGHBORS 已启用 MAC 地址为全零或广播地址的 ARP 条目
sysfs-vpn-leak SYSFS_VPN_LEAK 已启用 可通过 sysfs 与 proc/sys 访问的 VPN 接口
getifaddrs-vpn GETIFADDRS_VPN 已启用 getifaddrs() 中的固定 VPN 名称
sysclassnet-vpn SYSCLASSNET_VPN 已启用 /sys/class/net 中的固定 VPN 接口
rtm-getlink-vpn RTM_GETLINK_VPN 已启用 netlink RTM_GETLINK 中的 VPN 接口
proc-if-inet6-vpn PROC_IF_INET6_VPN 已启用 /proc/net/if_inet6 中的 VPN 接口
proc-net-dev-vpn PROC_NET_DEV_VPN 已启用 /proc/net/dev 中的 VPN 接口计数器
ifindexname-vpn IFINDEXNAME_VPN 已启用 if_indextoname() 返回的 VPN 名称

路由与网络栈

页面 ID 作用 状态 页面说明
route-table ROUTE_TABLE 混合 已启用 主路由表与默认路由
host-route HOST_ROUTE 已启用 经物理接口的公网 /32 或 /128 主机路由
route-vpn-interface ROUTE_VPN_INTERFACE 已启用 经固定 VPN 接口名称的旧版路由
sysctl-forwarding SYSCTL_FORWARDING 已启用 已启用 IPv4 转发
sysctl-rp-filter SYSCTL_RP_FILTER 已启用 已全局禁用反向路径过滤
vpn-policy-rules VPN_POLICY_RULES 已启用 VPN 接口上的旧版非标准 IPv4 路由
vpn-qdisc VPN_QDISC 已启用 历史 qdisc 名称下的 tun0/wg0 流量计数器
tcp-mss-low TCP_MSS_LOW 已启用 本地连接上的低 TCP MSS
bpf-map-accessible BPF_MAP_ACCESSIBLE 已启用 可访问 netd 的 BPF 接口索引映射
proc-ipv6-route-vpn PROC_IPV6_ROUTE_VPN 已启用 /proc/net/ipv6_route 中的 VPN 接口
vpn-policy-rules-netlink VPN_POLICY_RULES_NETLINK 已启用 通过 RTM_GETRULE 发现的可疑策略规则
fib-trie-denied FIB_TRIE_DENIED 已启用 访问 /proc/net/fib_trie 被拒绝或失败
deep-vpn-qdisc DEEP_VPN_QDISC 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的深度 qdisc ID
deep-bpf-map-accessible DEEP_BPF_MAP_ACCESSIBLE 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的深度 BPF 映射可访问性 ID
route-count ROUTE_COUNT 已启用 信息性的路由与接口数量
trim-oracle TRIM_ORACLE 已启用 if_indextoname()RTM_GETLINK 的接口数量不一致
pmtu-mss-combined PMTU_MSS_COMBINED 已启用 本地 127.0.0.1:443 连接的 TCP_INFO MSS
udp-pmtu-ok UDP_PMTU_OK 已启用 成功向 127.0.0.1:53 发送 1500 字节 UDP 数据
udp-pmtu-fail UDP_PMTU_FAIL 已启用 向回环地址发送 1500 字节 UDP 数据报失败
normal-pmtu NORMAL_PMTU 已启用 首个非隧道接口的 MTU
timing-oracle TIMING_ORACLE 已启用 通过 CNTVCT_EL0 测量 ARM64 socket/sendto 时序
backpressure BACKPRESSURE 已启用 回环 UDP 洪泛:50,000 个 1,400 字节数据包
gso-failed GSO_FAILED 已启用 setsockopt() 拒绝 UDP_SEGMENT
gso-send-failed GSO_SEND_FAILED 已启用 UDP_SEGMENT 已接受,但发送 4,800 字节失败
gso-ok GSO_OK 目录项/兼容性 原生生成器存在,但当前 UI 解析器丢弃该行 UDP GSO 被接受,且回环发送成功
hardware-timestamp HW_TIMESTAMP 已启用 在回环接口上成功配置 SIOCSHWTSTAMP
traceroute-denied TRACEROUTE_DENIED 已启用 TTL=1 的回环 UDP 发送返回 EACCES

VPN 痕迹与套接字

页面 ID 作用 状态 页面说明
vpn-property VPN_PROPERTY 已启用 旧版 VPN/DNS 系统属性
dns-property DNS_PROPERTY 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的 dns_prop ID
vpn-file VPN_FILE 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的通用 VPN 文件 ID
tcp-vpn-port TCP_VPN_PORT 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的旧版 TCP VPN 端口 ID
udp-vpn-port UDP_VPN_PORT 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的旧版 UDP VPN 端口 ID
established-vpn-socket ESTABLISHED_VPN_SOCKET 已启用 常见 VPN 端口上的已建立 TCP 连接
so-bindtodevice SO_BINDTODEVICE 已启用 历史 SO_BINDTODEVICE 名称下的旧版套接字身份检查
loopback-port-conflict LOOPBACK_PORT_CONFLICT 已启用 127.0.0.1 上被占用的 TCP 端口
ip-recverr IP_RECVERR 目录项/兼容性 为兼容性保留;2.10.0 无专用生成器 保留的阳性 IP_RECVERR ID
inet-diag-denied INET_DIAG_DENIED 已启用 应用无法使用 NETLINK_SOCK_DIAG
bindtodevice-leak BINDTODEVICE_LEAK 已启用 SO_BINDTODEVICE 确认 VPN 接口真实存在
getsockname-leak GETSOCKNAME_LEAK 已启用 未绑定 UDP 套接字立即获得私有 IPv4 地址
udp-port-conflict-physical UDP_PORT_CONFLICT_PHYSICAL 已启用 物理 IPv4 地址上的 VPN 相关 UDP 端口被占用

进程 Hook 与完整性

页面 ID 作用 状态 页面说明
hook-markers HOOK_MARKERS 已启用 /proc/self/maps 中具名的注入标记
rwx-memory-regions RWX_MEMORY_REGIONS 已启用 大型 RWX 内存区域
library-integrity LIBRARY_INTEGRITY 已启用 关键 libc 符号的来源
vpnhide VPNHIDE 混合 已启用 VPNHide 痕迹与回归 Oracle
lsposed LSPOSED 已启用 LSPosed/Vector 类框架的文件痕迹
hook-property HOOK_PROPERTY 已启用 LSPosed/Magisk/Zygote Hook 系统属性

Root 与系统状态

页面 ID 作用 状态 页面说明
root-indicators ROOT_INDICATORS 结构性 已启用 原生 root 指标汇总
root-su-binary ROOT_SU_BINARY 已启用 已知路径中的 su 文件
root-property ROOT_PROPERTY 已启用 可疑 root/调试系统属性
root-management ROOT_MANAGEMENT 已启用 Root 管理器目录与文件
root-system-rw ROOT_SYSTEM_RW 已启用 /system 具有写权限
root-suspicious-mount ROOT_SUSPICIOUS_MOUNT 已启用 包含 Magisk/core-only 与 root 标记的挂载行
root-overlay-mount ROOT_OVERLAY_MOUNT 已启用 覆盖 /system/vendor 的 overlay 挂载
root-selinux ROOT_SELINUX 已启用 SELinux permissive 模式或 enforce 文件不可访问
root-uid ROOT_UID 已启用 进程 UID/EUID/GID 等于 0
root-magisk-property ROOT_MAGISK_PROPERTY 已启用 Magisk 专用系统属性

模拟器、用户资料与隔离

页面 ID 作用 状态 页面说明
emulator-indicators EMULATOR_INDICATORS 结构性 已启用 模拟器指标汇总
emulator-qemu-property EMULATOR_QEMU_PROPERTY 已启用 QEMU 系统属性
emulator-qemu-pipe EMULATOR_QEMU_PIPE 已启用 QEMU/Genymotion 设备与套接字
emulator-goldfish EMULATOR_GOLDFISH 已启用 hardware 与 board 属性中的 Goldfish/Ranchu
emulator-qemu-driver EMULATOR_QEMU_DRIVER 已启用 /proc/tty/drivers 中的 Goldfish
emulator-bluestacks EMULATOR_BLUESTACKS 已启用 BlueStacks 文件痕迹
emulator-build-profile EMULATOR_BUILD 已启用 Build.FINGERPRINT/MODEL/HARDWARE/PRODUCT 启发式检查
isolation-profile ISOLATION_PROFILE 结构性 已启用 Android 用户/资料隔离汇总
isolation-clone ISOLATION_CLONE 已启用 OEM 克隆/双开用户 ID
isolation-secondary-user ISOLATION_SECONDARY_USER 已启用 运行在主用户之外
isolation-work-profile ISOLATION_WORK_PROFILE 已启用 RKNHardering 本身是 profile owner

服务级信号

页面 ID 作用 状态 页面说明
native-library NATIVE_LIBRARY 可用性 已启用 加载原生检查库
syscall-unavailable SYSCALL_UNAVAILABLE 可用性 已启用 原生系统调用/套接字探针不可用
general-diagnostics GENERAL_DIAGNOSTICS 结构性 已启用 深度原生检测器没有返回任何行
unknown-signals UNKNOWN 结构性 已启用 未知或未映射的原生 kind

Root 组件的官方下载来源

APK 和 ZIP 只能从官方仓库或发布页下载。请验证签名或哈希,不要以 root 运行来源不明的安装脚本,也不要同时安装会拦截相同内核函数的多个原生后端。

返回语言索引