iOS · Jailbreak · Tweak

王者荣耀 iOS
只读透视增强

为 iPhone 8 Plus(A11 / arm64) 与 iOS 16.7.15 + Dopamine 无根越狱 适配。 方框、连线、血量、距离、名字一次到位。音量加键呼出菜单,音量减键关闭。 只读内存、不写游戏数据、不注入触摸 —— 稳定性优先。

测试阶段:不校验卡密、不校验账号,直接下载安装即可。
适配设备
8 Plusarm64
系统版本
16.7.15
越狱工具
Dopaminerootless
累计下载
8

效果预览

图里的方框位置与高度由插件算法计算,不是手工摆的示意
云舟视界 效果预览
① 透视效果:方框、血量条、距离数字、底部连线;敌红 / 友绿 / 自己蓝
② 菜单面板:音量加键呼出,横屏双栏(左:显示与视野 · 右:系统与工具),面板 545×362 一次放得下不滚动

运行环境

实测通过
设备 / 架构
iPhone 8 Plus · A11 Bionic · arm64
系统
iOS 16.7.15
越狱
Dopamine(无根)· 兼容 ellekit / mobilesubstrate 任一
注入目标
com.tencent.smoba / 进程 smoba
安装路径
/var/jb/Library/MobileSubstrate/DynamicLibraries/
数据目录
/var/mobile/Library/YZCheat/(offsets.json · yz.log · dump)
呼出方式
音量加键 呼出 / 收起菜单 · 音量减键 关闭 · 或点左上角悬浮球
音量键说明
为保证任意音量下都能呼出,插件会把音量复位到中位(面板状态条实时显示)。不想被接管就在面板里关掉「音量键呼出」,音量立刻交回系统。
鉴权
测试阶段不校验卡密与账号,装完即用

下载

选与你越狱方式匹配的那个
装完看不到悬浮球?先用 Filza 或文件 App 打开 /var/mobile/Documents/YZ_BOOT.txt: 能看到文件 = 插件已注入(是界面问题,找云舟);看不到 = 插件没注入,请改装下面的「备用匹配版」。
扫码打开
手机扫码打开本页
用 iPhone 的相机或 Safari 扫这个码,直接把对应版本的 .deb 装进手机。 桌面看页面时扫它最省事;手机上看就直接点下面的下载按钮。
推荐

rootless 标准版

v1.0.9 · 89.4 KB

Dopamine / palera1n 无根越狱。安装在 /var/jb,与你当前的越狱完全匹配。

适用:iPhone 8 Plus + iOS 16.7.15 + Dopamine
SHA256 22e5d06976cbbec751a2739d35ed3f82…
下载 .deb
装不上就用它

备用匹配版

v1.0.9 · 89.4 KB

注入匹配条件不同(按应用标识匹配而不是按进程名)。如果标准版装完看不到悬浮球,换这个再装一次。

适用:标准版不生效时
SHA256 fe59b4ba654f832228fad297c9fdcfa9…
下载 .deb

rootful 兼容版

v1.0.9 · 89.3 KB

传统有根越狱(unc0ver / Taurine / checkra1n)。安装在 /Library。

适用:旧版越狱环境
SHA256 f46233d4f53064f09f59ee7e43c756d2…
下载 .deb
低特征

rootless 隐蔽版

v1.0.9 · 89.4 KB

与标准版功能完全一致,仅把注入库改名成系统库风格,静态特征更低。

适用:对特征敏感的场景
SHA256 f99a225b6b0da73fb4847826dfd1b7ce…
下载 .deb

功能

当前版本已实现
01
方框透视
按人体比例绘制,随距离自动缩放,屏幕外自动剔除
02
底部连线
己方视角到目标脚底,一眼判断方位
03
血量条
头顶血条 + 底槽,按比例实时收缩
04
距离显示
世界坐标真实换算,单位米
05
名字标记
读 IL2CPP 字符串对象,按需开启
06
阵营着色
敌红 / 友绿 / 自己蓝,自动识别本机英雄
07
音量键呼出
音量加键呼出/收起面板,音量减键关闭;不占屏幕、不改游戏操作
08
悬浮球
可拖动并自动吸附边缘,单击开面板、双击快捷开关透视
09
横竖屏自适应
面板跟随旋转重排,避开刘海与 Home 指示条,不溢出屏幕
10
结构导出
一键导出真实类名与字段偏移,游戏更新后免重编译

稳定性设计

为什么它不容易崩
只读,不写
全程不修改游戏内存、不注入触摸事件、不接管渲染管线。暴露面最小。
非法地址拦截
所有读取走 vm_read_overwrite,越界直接返回失败,不会 SIGSEGV。
数值勘误
坐标读出来先做范围校验(NaN / 超界一律丢弃),错误偏移不会画出乱线。
安全阀
连续 20 轮识别不到实体,自动关闭透视并写日志,避免刷屏与卡死。
帧率可控
绘制锁 30fps,图层复用不重建,后台自动停帧。
零外部依赖
不硬链 CydiaSubstrate / ElleKit,运行时按候选路径加载,换越狱环境不用重装。

安装

四步,全程在手机上
手机浏览器打开本站并下载
用 iPhone 的 Safari 打开 wd.yfmk68.com,点「rootless 标准版」下载 .deb,文件会落到「文件」App 的下载目录。
用 Sileo 或 Zebra 安装这个 deb
在 Sileo 里点「文件」→ 找到刚下载的 deb → 打开方式选 Sileo → 安装。装完会自动 respring。
# 或者用 Filza 直接点 deb(也支持 ssh 命令行)
dpkg -i /var/mobile/Downloads/YZVision_1.0.0-rootless.deb
sbreload
确认注入库就位
装完后用 Filza 或 ssh 看一眼,两个文件都在即成功。
ls -l /var/jb/Library/MobileSubstrate/DynamicLibraries/ | grep -i yzvision
# 期望两行:YZVision.dylib 与 YZVision.plist
进游戏,按一下音量加键
面板会从左侧弹出,打开「透视总开关」即可。音量加 = 呼出/收起,音量减 = 关闭。 不想用按键就点左上角悬浮球(可拖动)。日志写在 /var/mobile/Library/YZCheat/yz.log。
# 看实时日志(ssh)
tail -f /var/mobile/Library/YZCheat/yz.log

更新日志

按版本倒序
v1.0.9
  • 过检测补齐:
    · ObjC 层 - [NSFileManager fileExistsAtPath:] 与 :isDirectory: —— 这是最常用的越狱检测手法,之前只拦了 C 层的 stat/access,走 ObjC 这条路是漏的
    · 反调试:ptrace(PT_DENY_ATTACH) 假装成功、sysctl(KERN_PROC) 清除 P_TRACED 调试标志、fork() 返回失败、getenv("DYLD_INSERT_LIBRARIES") 返回空
    · URL scheme:canOpenURL: 对 cydia:// sileo:// zbra:// filza:// 等一律拒绝
    · 补漏:getattrlist(NSFileManager 底层可能绕过 stat 直接走它)
  • 游戏解密补齐:
    · 字段类型导出:报告里直接标出哪个字段是 UnityEngine.Vector3 —— 一眼定位坐标,不用猜
    · 结构特征扫描:不依赖类名,按「类里有 Vector 字段 + 实例数 3~30 + 该字段读出来像坐标且命中率 >50%」三重判定找英雄类。 腾讯把类名混淆成 a/b/c 或做字符串加密时,这是唯一还走得通的路子
    · 自动定位坐标字段:插件每 2 秒采样所有对象的内存,自动统计「哪个偏移上多个对象同时变化」, 跑 20~30 秒后自动推断出连续三个 float = Vector3 坐标,直接给出该填的偏移值(结果写 auto_locate.txt)
    · 嵌套字段支持:坐标常常不在英雄本体上,而在 m_Transform.m_LocalPosition 这类二级字段里 (Hero+0x28 → Transform* → Transform+0x38 → Vector3)。现在 offsets.json 的 offsets 给两个值 [父偏移, 子偏移] 就会自动先读指针再加内偏移,血量/阵营/名字/死亡标志同理。只给一个值行为与旧版完全一致,旧配置不用动
  • 影像隐藏补强(这一条是之前的真实漏洞): 上一版只把插件影像名换成了 /usr/lib/system/libcache.dylib。 这挡得住「看名字」的检测,挡不住强一点的做法 —— 真正的越狱检测是遍历 dyld 影像列表, 再去 _dyld_get_image_header() 指向的 Mach-O 头里读 LC_ID_DYLIB 真实路径, 或者把名字和头交叉比对,一发现不一致就判定被篡改。
    现在改成 计数一致 + 索引映射:_dyld_image_count / _dyld_get_image_name / _dyld_get_image_header / _dyld_get_image_vmaddr_slide 四个一起接管,插件影像从枚举列表里整个消失(数量减一、索引全部重映射), 不存在「名字指向 A、头指向 B」的矛盾特征,越界访问返回 NULL 也看不出多出来一个。 列表变化(dlopen 新库)时自动重建映射表
v1.0.5
  • 修复血量下界未校验:过滤时只检查了血量上限,偏移读错算出的负血量会被当成活着、画出一个错框。上界下界现在都查(这一条是自动测试抓出来的,不是我肉眼看的)
  • 核心算法抽成纯 C(yzcore):投影、四元数、定点数解码、特征码匹配、堆扫描、实体过滤、音量键判定、字符串解析、布局几何全部集中到一份代码, 插件与测试跑的是同一份实现 —— 不是「测试里重写一遍」
  • 新增主机测试(不需要 iOS 设备,在服务器上直接跑):
    · 单元测试 64 项:几何、投影(含正交)、解码(含定点数)、扫描、过滤、音量键时间窗、菜单布局
    · 集成测试 19 项:自造「假 IL2CPP 运行时 + 假游戏内存」,摆 10 个英雄 + 相机 + 故意塞入越界/负血/噪声误报, 然后跑完整链路(扫堆找对象 → 读坐标血量 → 过滤误报 → 投影),验证屏幕上的方框位置正确
v1.0.4
  • 修复「按音量键菜单调不出来」 —— 根因:音量键的安装语句原来写在菜单建窗函数里面,而那个函数开头有「没有 UIWindowScene 就直接返回」的守卫。游戏启动早期场景还没就绪时,音量键从头到尾没被安装,而且失败后永不重试。现在音量键在启动阶段独立安装,与任何界面无关
  • 菜单建窗失败会自动重试(每 0.5 秒一次,最多 30 次),场景激活时也会重建;按键呼出时若菜单还没就绪会立即补建
  • 音量键宿主窗口失效后自动重挂(菜单窗口被销毁也不会静默失效)
  • 按键震动反馈:按一下有轻微震动 = 插件确实收到了这次按键,不用再猜
  • 新增设备自诊断上报:插件把启动各阶段(注入 / 配置 / 音量键安装 / 菜单就绪 / IL2CPP / 相机 / 实体数)与每次按键事件上报到本站, 后台新增「设备自检」页 —— 一下就能分清是「插件没注入」「按键没送到」「界面没建起来」还是「游戏数据没读到」
  • 面板状态条新增音量键计数(键↑/↓),一眼确认链路
v1.0.3
  • 修「找不到英雄对象」:堆扫描原来只认 MALLOC_* 标记的内存区,会漏掉 Unity 自建的大块 GC 堆 → 可能永远扫不到实体。改为黑名单式过滤,只排除栈与保护页
  • 修「装了没反应」的定点数坐标:很多手游把坐标存成 int32 定点数防作弊,原来一律按 float 读会是垃圾值。现在支持 "decrypt": "fixed:100"(攻守两端:坐标与血量都支持)
  • 支持正交相机:正交投影公式与透视完全不同,原来一律按透视算会整体错位。现在读 m_Orthographic / m_OrthographicSize 自动分支
  • 修 GC 风险:il2cpp_runtime_invoke 原来在后台线程调用,可能在 Unity 做 stop-the-world 时出事。改为只在主线程每 5~10 秒取一次,后台只读结果
  • 修线程规范:后台线程不再访问 UIScreen(主线程概念),屏幕尺寸由绘制层每帧喂过去
  • 加相机取值自检:相机是跟着自机动的。若连续 10 秒位置完全不变,判定为读错字段并写进日志(不用自己猜)
  • 修音量键静默失效:音量视图原来挂在菜单窗口上,窗口一旦被销毁音量键就再也没反应且毫无提示。现在有兜底窗口 + 通道断开自动重挂
  • 越狱特征路径纳入隐藏:/Applications/Cydia.app、/bin/bash、/etc/apt、/var/jb/Applications 等在游戏侧探测时统一返回「不存在」
  • 悬浮球/面板位置持久化:按归一化坐标存进 NSUserDefaults,旋转、重启游戏、重进对局都不用重新拖
  • 新增投影数学验证:32 项几何自证(正中/对称/俯视/FOV/正交/四元数正交性),确认投影公式与 Unity 左手系一致
v1.0.2
  • 修复致命卡顿:v1.0.1 里「管理器实例查找」误走堆扫描且每帧执行 → 会周期性卡死。现改为实例缓存 + 独立节流,管理器路径每帧只做纯指针读取
  • 修复呼不出菜单:安装后未主动归位音量,若系统音量恰在 100%,按音量加不产生变化、系统不发通知 → 面板永远弹不出来。现在安装即归位并多次重试
  • 修复按键回声:音量复位引发的第二次通知可能在保护窗口之后到达,导致一次按键把面板「开了又关」。已加时间+数值双重判定
  • 修复热路径开销:隐蔽层在 fopen/stat/access 里创建 Objective-C 字符串(每秒上千次),已全部改为纯 C 比较
  • 修复并发竞态:重载结构表会与后台工作线程抢字段表,已改为先停线程再重载;后台线程不再访问可变的配置数组
  • 补上硬偏移回退:offsets.json 里的候选偏移之前根本没被读取。现在字段名匹配不上时会自动回退到硬偏移 —— 这是类名/字段名被保护时唯一的活路
  • 一键结构诊断:面板「导出结构」现在一次产出 report.txt(结论+下一步)、class_names.txt(全量类名)、class_hits.json(疑似实体类+实例数)
  • 悬浮球改为「单击开面板 + 长按切透视」,不再有单击/双击互斥的错乱
  • 配置项与实现对齐:删除未实现的骨骼线开关,接上之前被架空的扫描间隔与方框比例
v1.0.1
  • 音量键呼出:音量加键呼出/收起菜单,音量减键关闭;每次按键后音量自动复位中位,保证在任何音量下都能呼出
  • 面板重做:深色玻璃、分组布局、自绘开关;横竖屏自动重排,适配刘海与 Home 指示条,不溢出屏幕
  • 悬浮球:可拖动、松手吸附左右边缘;单击开面板,双击快捷开关透视
  • 性能架构调整:反射与堆扫描全部移出主线程(后台串行队列),主线程只读快照绘制,杜绝扫描期掉帧
  • 相机链路修正:走 Camera.main 静态属性 → Transform 取位置与旋转
  • 实体过滤加强:坐标量程校验 + 血量合理性 + 5v5 上限,过滤堆扫描误报
  • 面板新增:透视总开关、最大绘制距离、仅敌人、显示帧率、重新初始化、重载结构表、查看日志、重置默认
  • 隐蔽层扩展:stat64/lstat/fopen64/opendir 一并过滤
v1.0.0
  • 首个版本,面向 iPhone 8 Plus / iOS 16.7.15 / Dopamine rootless
  • ESP:方框、连线、血量、距离、名字、阵营着色
  • IL2CPP 运行时反射 + 字符串加密场景下的遍历兜底
  • 结构导出(dump)与偏移表热加载,游戏更新不必重编译
  • v1.0.2 起:诊断一次导出四份文件,含疑似实体类的实例数统计
  • 叠加层独立 UIWindow + CADisplayLink,不接管游戏渲染
  • 运行时 hook 引擎加载,跨越狱环境通用