5分钟跑通Wand-Enhancer:Wand补丁与手机遥控
【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer
Wand-Enhancer 是一款开源的本地补丁工具:它把 Wand(原 WeMod)客户端的 app.asar 解包,用正则替换掉关键代码,再重新打包,一次覆盖 Pro 功能、强制更新、F12 调试、手机远程面板四件事,全程数据不出本机。下文先带你拿到能用的 exe,再拆补丁管线,最后把高频坑一次讲清。
Wand 用户被卡在哪
Wand(WeMod)的客户端是个 Electron 应用,前端逻辑全打包在resources/app.asar里,普通用户既改不了也看不到。常见的卡点有四个:Pro 订阅功能被锁、客户端强制推更新、没有 F12 调试入口、离开电脑就没法碰修改器。Wand-Enhancer 用一个 WPF 小工具把这四件事一次解决:打一次补丁,Pro 状态、禁用更新、F12 DevTools 全部就位,还附一个跑在本机 3223 端口的远程 Web 面板,手机扫码就能远程启停修改器、开关具体 cheat。独立游戏开发者则常用"打补丁时注入自定义渲染脚本"这一招,让脚本自动盯客户端的弹窗与界面变化,把每个新版本发布前的人工验证从几十分钟压到几分钟。
先跑起来:两条路构建 WandEnhancer.exe
⚠️ 官方仓库故意不发布编译好的 exe——第三方渠道流传的 exe 反复被改名、误标,甚至夹带恶意程序。所以拿到工具的正路只有两条,且都要求你自己构建。
路线一:fork 仓库,走 Actions 出包
- Fork 本仓库,在 fork 里启用 Actions 工作流;
- 选择 Build executable 工作流,点 Run workflow 并跑完;
- 下载该次运行的 artifact,解压后得到 WandEnhancer.exe。
路线二:本地源码构建
git clone https://gitcode.com/GitHub_Trending/we/Wand-Enhancer cd Wand-Enhancer # 前置:CMake、Node.js + pnpm、VS2022(含 MSBuild 与 C++ 工作负载)、.NET Framework 4.8 build.cmdbuild.cmd 会依次安装 web-panel 依赖、构建前端、用 CMake 编译原生辅助模块、恢复 NuGet 包并编译 WPF 解决方案。
跑通后:自动定位目录并打补丁
启动 WandEnhancer.exe 后,它会先扫 LOCALAPPDATA 下的品牌目录找 Wand 安装位置,找不到再退到"读正在运行的 Wand 进程"来定位,最后才让你手动选目录;这套三级回退的实现见 WandEnhancer/Utils/Extensions.cs。选完补丁类型点 Patch,日志出现 Done 即完成。
补丁怎么落地:拆 asar、正则替换、回打包
换个角度理解:app.asar 就是个"前端 zip 包",补丁 = 解压 → 在压缩成一行的 JS 里找到目标语句 → 替换 → 重新压缩。真正的主流程在 WandEnhancer/Core/Enhancer.cs 的 Patch() 里,简化后长这样:
Common.TryKillProcess(brandName); // 1. 关掉 Wand File.Copy(_asarPath, _backupPath); // 2. 首次备份为 app.asar.backup AsarExtractor.ExtractAll(_asarPath, _unpackedPath); // 3. 解包 PatchAsar(); // 4. 逐条正则替换 InjectRemotePanelFiles(); // 5. 注入远程面板资源 new AsarCreator(_unpackedPath, _asarPath, opts) .CreatePackageWithOptions(); // 6. 回打包三个设计点值得细看:
- 备份保证幂等。首次打补丁生成
app.asar.backup与app.asar.unpacked.backup;再次打补丁时先把原件从备份恢复,再重打一遍。所以补丁可以反复执行而不会越叠越脏,想回滚只要把备份拷回去。 - 两级过滤定位目标。每个补丁条目先查 SearchHints(比如文件里是否含
ACTION_SET_ACCOUNT这类稳定字样)做快速预筛,命中后才跑 Target 正则全量匹配;匹配到多处会直接报"版本不受支持",避免打错地方。 - 补丁代码是"生成"出来的,不是写死的。压缩后的变量名与类私有字段(形如
#xxx)每个版本都变,所以 PatchFactory 从正则命中的文本里现提取真实字段名再拼替换串;F12 补丁也刻意锚在 Electron 主进程whenReady()调用上,因为渲染层那个 keydown 分发点的标识符每版都在变。全部补丁规则集中在 WandEnhancer/Core/EnhancerConfig.cs,asar 的解包与打包由 AsarSharp/AsarExtractor.cs 完成。
文件补丁 vs 注入脚本:两个机制别搞混
Wand-Enhancer 其实用了两层机制:一层是持久写进 asar 的文件补丁,另一层是把 JS 随进程注入 Wand 渲染层的运行时代码——远程面板的 bridge、你的自定义脚本都走这条路。两者分工如下:
| 对比维度 | asar 文件补丁 | 注入式渲染脚本 |
|---|---|---|
| 是否改原文件 | 改,有备份可回滚 | 不改,随 remote-panel 目录携带 |
| 生效方式 | 持久写入包内 | 每次启动由 bridge 加载执行 |
| 典型用途 | Pro 解锁、禁用更新、F12、远程面板 | UI 微调、DOM 观察、自定义脚本 |
| 更新兼容 | Wand 更新后需重打补丁 | 同样需重打补丁重新注入 |
| 失败影响 | 报版本不受支持,可回滚 | 脚本异常只记日志,不崩客户端 |
远程面板:手机扫码接管 Wand
三步连上:确认手机和电脑在同一 Wi-Fi → 鼠标悬停 WandEnhancer 顶栏的 Connect 按钮显示二维码 → 手机摄像头扫码打开面板。面板由本机在 TCP 3223 提供服务,只在你局域网内可达。能做的事:远程启动或结束某款游戏的修改器、开关具体 cheat、按游戏置顶常用项、把一组值存成预设。面板前端刻意做得很小(桌面端要把它整个塞进 asar 再注入),协议与端口常量统一收敛在 web-panel 目录下的契约文件里,桥接层用 TypeScript 编写、构建后打成单个 bridge.cjs 随包携带。
高频踩坑:先读再动手
现象:SmartScreen 或 Defender 提示"未知发布者"。原因:自己构建的 exe 未签名,Windows 对少见构建一律预警。解法:只运行自己构建的二进制,核对过源码再放行。
⚠️现象:想省事先下别人传的 exe。原因:官方发布渠道里没有 exe,YouTube 描述、随机镜像、issue 评论里的 exe 全是仿冒,已有投毒案例。解法:任何来路不明的 Wand-Enhancer 可执行文件直接删掉,按上两条路线自己构建。
现象:补丁报 The version may not be supported。原因:Wand 更新了包,正则锚点对不上。解法:先用工具内的 Restore 从备份回滚,再等新版本补丁规则,别对着新版反复重试。
现象:提示 Backup file is locked。原因:Wand 还在运行,占用着 asar 备份文件。解法:彻底退出 Wand 进程后再操作。
💡现象:手机扫码后面板打不开。原因:路由器开了 AP 隔离,或 Windows 防火墙拦了 3223。解法:确认同网段后放行 TCP 3223 入站、把网络类型从公网改私有;跨网需求用 Tailscale 这类工具。
适合谁、不适合谁
适合愿意读源码、能自己构建、只想在自己设备上调教 Wand 体验的人;不适合想要"双击即用 exe"、或拿它做多账号商用场景的人——Pro 解锁只是改写本地客户端拿到的账号响应,不碰服务端校验,账号层面的风险自负。
延伸阅读:CONTRIBUTING.md 讲怎么参与开发,AGENTS.md 记录了补丁管线必须守住的不变量,web-panel/README.md 是远程面板前端的细节。
【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考