部署与使用
iOS 14 – 18 · arm64 / arm64e · Dopamine · palera1n · unc0ver · Taurine
一、环境要求
| 项目 | 要求 |
|---|---|
| 系统 | iOS 14.0 – 18.x,已越狱 |
| 越狱工具 | Dopamine(rootless)、palera1n、unc0ver、Taurine、XinaA15 |
| 包管理器 | Sileo 或 Zebra(推荐),Cydia 亦可 |
| 架构 | arm64 / arm64e |
| 包体 | 约 83 KB,无额外依赖(ElleKit / MobileSubstrate 任一) |
| 操作入口 | 音量加呼出面板,音量减收起;悬浮球为备用入口 |
rootless 越狱必须安装 rootless 版包;装错版本会出现「悬浮球不出现」,卸载后换版本即可。
二、安装
方式一:Sileo 安装
- 在设备浏览器打开
https://gg.yfmk68.com,点「下载增强包」。 - 下载完成后选择「用 Sileo 打开」,安装并重启 SpringBoard。
方式二:命令行安装
wget https://gg.yfmk68.com/dl/YHCheat_1.0.2.deb -O /tmp/yh.deb
dpkg -i /tmp/yh.deb
killall -9 SpringBoard
若 dpkg 提示架构不匹配,说明拿到的是另一个版本,改用
YHCheat_1.0.2-rootless.deb。三、激活
- 进入游戏,按音量加呼出面板(音量减收起);也可点屏幕右侧的悬浮球「云」。
- 面板左侧选「授权」→ 输入卡密激活 → 粘贴卡密。
- 激活成功后服务端下发功能位,客户端用内嵌的 ECDSA 公钥验签票据。
| 票据 | 说明 |
|---|---|
| 格式 | v1.<b64u(payload)>.<b64u(DER 签名)> |
| 算法 | ECDSA P-256 / SHA-256(iOS Security.framework 原生验签) |
| 落盘 | /var/mobile/Library/YHCheat/license.dat |
| 离线 | 断网后在剩余有效期内继续可用 |
| 心跳 | 每 60 秒一次;服务器可随时终止授权 |
四、面板操作
| 操作 | 说明 |
|---|---|
| 音量加 | 呼出菜单(已展开时保持不动,不会误收起) |
| 音量减 | 收起菜单,完全让出屏幕 |
| 左侧菜单栏 | 透视 / 自瞄 / 技能 / 参数 / 授权 五个分区,点一下切换 |
| 拖动 | 按住面板空白处可整体拖动;悬浮球同样可拖 |
面板只在打开时接收触摸,其余区域的点击全部穿透给游戏。
五、偏移表
游戏版本更新后类名与字段偏移会变,本工程不在代码里写死偏移,而是读取运行时配置:
/var/mobile/Library/YHCheat/offsets.json
首次运行会自动写入一份样例,直接编辑即可,改完重启游戏生效。字段名被混淆时,用 entity.offsets 直接写数值。
最省事的更新方式:在面板里调用结构导出,它会遍历当前运行时的全部程序集,生成
/var/mobile/Library/YHCheat/dump_<时间戳>.json
内含类名、字段名、字段偏移与全部方法名,挑出实体类填进 offsets.json 即可。
六、弹道算法
直线拦截 · 百里守约 2 技能
解 |P0 + V·t − S| = v·t,即一元二次方程取最小正根;无正根时退化为定点迭代。
(|V|² − v²)·t² + 2(V·D)·t + |D|² = 0 D = P0 − S
瞄准点再叠加「施法前摇 + RTT/2」期间目标的位移。
抛物线反解 · 投掷类技能
tanθ = (v² − √(v⁴ − g(gx² + 2yv²))) / (gx)
曲线路径 · 干将莫邪
双剑沿贝塞尔路径飞行,伤害区在两剑交汇处,按飞行时间采样求交:
for t in [0.04, flyTime] step 0.02:
目标预测位置 = P0_target + V_target · (t + 前摇)
路径点 = Bézier(起点, 控制点, 交汇点, t / flyTime)
if |路径点 − 预测位置| < 命中半径: 命中
未命中时输出最小距离方向作为修正,避免整发技能打空。
七、反检测
| 检测面 | 处理 |
|---|---|
| 文件系统探测 | access / stat / lstat / statfs / fopen / opendir 对越狱特征路径返回 ENOENT |
| 调试器状态 | sysctl(KERN_PROC) 抹除 P_TRACED 标志 |
| 注入痕迹 | _dyld_image_count / _dyld_get_image_name 隐藏本 dylib 与 Substrate 系列 |
| 环境变量 | getenv(DYLD_INSERT_LIBRARIES) 返回 NULL |
| 自绝调试 | ptrace(PT_DENY_ATTACH) 放行 |
| 调试端口 | connect 对 27042 / 27043 / 4444 等端口直接 ECONNREFUSED |
反检测在 dylib 载入的第一时间安装,早于游戏 SDK 的首次检测。
八、常见问题
| 现象 | 处理 |
|---|---|
| 音量键没反应 | 确认游戏进程内已注入(日志有 volume key ready);音量已在极值时会自动回中,重按一次即可 |
| 悬浮球不出现 | 确认包的 rootless/rootful 与系统匹配;dpkg -l | grep yhcheat 查安装状态;系统日志过滤 [YHCheat] |
| 面板出现但无透视 | attach 失败,先用结构导出定位实体类与字段,更新 offsets.json |
| 取不到相机 | 确认 camera.class 为 UnityEngine.Camera;Unity 2021+ 需从 UnityEngine.CoreModule.dll 找 |
| 自瞄有反应但打不中 | 调 predictRttMs(真机实测 RTT)与 predictLead(1.0 为理论值,远距离可到 1.1–1.2) |
| 技能方向不对 | 该英雄的 model 选错:直线 linear、抛物线 ballistic、双剑类 curve |
| 激活提示「已绑定其它设备」 | 在后台把该设备解绑,或提交工单处理 |
九、编译(自行构建)
export THEOS=/opt/theos
cd tweak
make package ROOTLESS=1 # rootless
make package # rootful
make package DEBUG=1 # 带日志
完整工程结构与源码说明见仓库内 tweak/README.md。