前言
目前主流手游使用 TP2/Hunter SDK 做环境检测,检测维度包括:uname 内核版本、/proc/bootconfig 特征、Zygisk 注入痕迹、SELinux 状态等。
本文记录在 联想 Y700 Gen2 (TB322FC) + SukiSU Ultra + SuSFS 环境下的完整绕过流程。
检测维度分析
| 检测点 | 检测方式 | 绕过方案 |
|---|---|---|
| uname | uname() 系统调用读内核版本 |
SuSFS uname 欺骗(post-fs-data 阶段) |
| /proc/bootconfig | 读取 androidboot.verifiedbootstate | ksu_susfs set_cmdline_or_bootconfig |
| Zygisk 注入 | PLT hook 特征 REL_HOOK_0~7 | ZygiskNext mode=1 完整排除 |
| /data/adb 路径 | 遍历检测 su 二进制 | sus_path_loop 隐藏 |
关键配置
1. uname 欺骗(post-fs-data.sh)
# 必须在 post-fs-data 阶段,service.sh 太晚会被缓存
ksu_susfs set_uname "5.15.167-android13-8-00001-ga1b2c3d4e5f6" "Linux"
注意:uname 欺骗必须在
post-fs-data阶段执行,service.sh时机已过。
2. ZygiskNext mode=1
编辑 /data/adb/zygisk/config:
mode=1
- mode=1:游戏进程完全无 Zygisk 注入,无 PLT hook 特征
- mode=2:仍有 PLT hook,触发
libtprt.soREL_HOOK_0~7检测
副作用:LSPosed/HMA 无法对游戏生效,需改用 pm hide 隐藏可疑应用:
adb shell su -c 'pm hide com.topjohnwu.magisk'
adb shell su -c 'pm hide io.github.lsposed.manager'
3. sus_path_loop 隐藏 /data/adb
sus_path_loop /data/adb
sus_path_loop /data/local/tmp/frida-server
总结
真正的隐藏靠「内核层欺骗 + 进程隔离」,不是靠延迟或随机等待。
Hunter SDK 检测的是字段像不像,与 IP/频次无关。