Wand-Enhancer指南:三步把Wand(WeMod)变成手机可控的本地增强工具
【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer
想让游戏内作弊器在离开工位时也能随手调整,电脑上的Wand(原WeMod)帮不上忙。Wand-Enhancer解决的就是这件事:一个开源的本地补丁工具,直接修改Wand的resources\app.asar,加入手机远程面板、自定义脚本注入、F12开发者工具等能力。一切都在你自己电脑上完成,不发起任何对外网络请求,与套壳类工具不同,它不碰服务端逻辑,只改客户端代码。
快速上手:三十分钟跑通Wand-Enhancer补丁器
环境清单
开始之前先确认:
- ✅ Windows 10/11(补丁器是WPF桌面程序,系统自带的 .NET Framework 4.8 即可运行)
- ✅ 已安装Wand或WeMod,默认位于
%LOCALAPPDATA%\Wand或%LOCALAPPDATA%\WeMod - ✅ 需要手机远程面板时,电脑与手机连在同一个Wi-Fi
如果要从源码构建(参与开发才需要),额外准备:CMake、Node.js + pnpm、Visual Studio 2022 或 Build Tools(带MSBuild)及其"Desktop development with C++"工作负载、.NET Framework 4.8桌面目标包。
第一步:获取可执行文件(GitHub Actions自建)
官方Release只发release notes,不放.exe——因为预编译补丁工具被反复盗传、篡改并栽赃给项目。推荐路径是自己构建:
- Fork项目仓库。
- 进入你fork的Actions标签页,若GitHub询问则启用工作流。
- 选择Build executable工作流,点击Run workflow,保持默认分支。
- 运行结束后打开该次运行记录,下载artifact压缩包,解压得到
WandEnhancer.exe。
做对了长什么样:你手里是一个来自自己fork工作流的WandEnhancer.exe,Actions构建日志无报错。
想从源码构建的话,克隆仓库后运行一键构建脚本:
git clone https://gitcode.com/GitHub_Trending/we/Wand-Enhancer cd Wand-Enhancer build.cmd这条命令会依次完成:安装web-panel依赖、构建前端、用CMake编译原生辅助库、还原NuGet包、构建WPF解决方案。做对了长什么样:解决方案编译通过,且生成了web-panel/dist/bridge.cjs与默认渲染脚本。
第二步:首次运行——定位Wand并完成补丁
- 启动
WandEnhancer.exe。补丁器会在%LOCALAPPDATA%\Wand和%LOCALAPPDATA%\WeMod下扫描最新的app-*版本子目录(验证规则:目录内有同名.exe和resources\app.asar);找不到时,退回从正在运行的Wand/WeMod进程反查安装目录。 - 检测成功后勾选需要的增强项(远程Web面板、禁用更新、F12开发者工具等),点击Patch。
- 重启Wand验证。
Wand-Enhancer主界面:已自动检测到Wand安装目录,可勾选增强项后开始打补丁
做对了长什么样:日志区输出[ENHANCER] Done!;重启Wand后,鼠标悬停顶栏的Connect按钮会出现二维码,手机扫码即可打开远程面板。
原理揭秘:补丁如何写进app.asar又不弄坏它
先说它解决的问题:Wand的整个前端打成一个resources\app.asar压缩包,里面的JS被压缩混淆(函数名全是a、b、#Xyz)。想"加功能",必须能在混淆代码里定位到稳定位置、只替换该处,并且保证随时可回滚。Wand-Enhancer把这拆成五步流水线:
- 备份优先:首次打补丁把
app.asar复制为app.asar.backup;再次打补丁时先还原干净文件再改,保证重打补丁永远从原始状态开始。app.asar.unpacked同样处理。 - 解包:把asar解到
app.asar.unpacked。 - 正则补丁:对
index.js和app-*.bundle.js按正则逐个匹配、替换。 - 注入资产:远程面板功能会把构建好的
remote-panel/(含bridge.cjs)和你选的自定义.js写进包里。 - 重打包:用AsarSharp写回asar,
static\unpacked路径的文件保持解包状态。
流水线核心在Enhancer.Patch(),下面从源码摘出了"备份→解包→补丁→重打包"的顺序逻辑:
public void Patch() { Common.TryKillProcess(_weModConfig.BrandName); // 确保Wand已关闭 if (!File.Exists(_backupPath)) File.Copy(_asarPath, _backupPath); // 首次:备份原始asar else File.Copy(_backupPath, _asarPath, true); // 重打:先还原干净文件 AsarExtractor.ExtractAll(_asarPath, _unpackedPath); // 解包 PatchAsar(); // 正则补丁 InjectRemotePanelFiles(); // 注入远程面板与自定义脚本 new AsarCreator(_unpackedPath, _asarPath, new CreateOptions { Unpack = new Regex(@"^static\\unpacked.*$") }) .CreatePackageWithOptions(); // 重打包 }为什么Wand一更新、变量名全变了,补丁还能工作?EnhancerConfig里每个补丁项由三部分组成:SearchHints字符串快速判断文件是否相关、Target正则定位函数、Resolver从匹配片段中动态提取该版本的私有字段名(例如把正则捕获的#service_name填回占位符)。锚点盯住的是函数的"形状"(参数结构、/v3/account这类端点字符串)而非变量名本身——1.0.9.3 正是靠把远程桥补丁改成动态名称解析,修好了新版Wand上"unsupported version"的问题。
功能矩阵与自定义脚本注入
补丁器在源码EPatchType中定义了这些可选项:
| 功能 | 作用 | 适用场景 |
|---|---|---|
| 远程Web面板 | 向Wand嵌入网页面板,局域网内扫码即连 | 手机操作作弊项、远程开始/结束游戏 |
| 自定义脚本注入 | 把你的.js注入Wand渲染进程(完整DOM + Noderequire) | UI微调、小自动化、修bug |
| F12开发者工具 | 在Electron主进程挂before-input-event钩子,F12直接开DevTools | 调试和分析应用行为 |
| 禁用自动更新 | 替换ACTION_CHECK_FOR_UPDATE处理器,不再检查更新源 | 固定当前版本,防止补丁被自动更新覆盖 |
| Pro激活 | 改写返回账号数据的服务方法,本地保持Pro订阅状态 | 本地更新后Pro状态不回退 |
| 布局/主题定制 | 客户端侧界面与主题调整(README功能列表) | 个性化外观 |
注意:自定义脚本复用远程面板的渲染进程注入通道,所以必须同时启用Remote Web Panel补丁。
写一个注入脚本
每个脚本运行在Wand渲染进程里,被包了一层保护:抛错只记录日志、不会崩掉Wand。但同一次启动可能执行不止一次(加载时一次、稍后又一次),所以一次性逻辑要放在全局标志后面。项目提供了小助手:WandEnhancer.log(...)、WandEnhancer.remoteUrl、WandEnhancer.apiVersion。
下面是官方README里的最小示例hello.js,用MutationObserver监听对话框出现:
// Injected scripts can run multiple times — guard one-time setup. if (!globalThis.__helloScriptInstalled) { globalThis.__helloScriptInstalled = true; WandEnhancer.log("Hello from my custom script!", WandEnhancer.remoteUrl); new MutationObserver(() => { const dialog = document.querySelector("ux-dialog:not([data-seen])"); if (dialog) { dialog.setAttribute("data-seen", "1"); WandEnhancer.log("A dialog opened."); } }).observe(document.documentElement, { childList: true, subtree: true }); }存放位置二选一:在补丁对话框里选择一个或多个.js文件(只接受真实存在的.js);或者把.js丢进WandEnhancer.exe同级的renderer-scripts/文件夹。两个脚本重名时,补丁器会自动给后来的改成.custom1、.custom2后缀。重新打一次补丁即可生效。
避坑手册:补丁失败与手机连不上怎么排查
症状一:手机扫了码,面板页面加载不出来
- 排查:确认电脑和手机在同一个Wi-Fi → 检查路由器/访客网络是否开了"客户端隔离"(同SSID设备互相不可达)→ 检查Windows防火墙 → 检查网络类型是否为"公用"。
- 解决方案:放行入站TCP3223(远程面板固定默认端口):
# 管理员PowerShell执行:放行远程面板端口的入站流量 New-NetFirewallRule -DisplayName "WandEnhancer Remote" -Direction Inbound -LocalPort 3223 -Protocol TCP -Action Allow -Profile Private- 若Windows把当前连接标记为"公用",改成"专用"也有帮助。确要用移动数据或其他网络,就上Tailscale之类的虚拟局域网工具;面板本就不该暴露在公网。
症状二:打补丁报"The version may not be supported"
- 排查:说明正则没找到目标代码。先确认Wand进程已彻底退出(补丁器会自动尝试结束它,但建议先在任务管理器手动关闭)→ 确认补丁器是最新版(1.0.9.3 专门修复了新版Wand上远程桥补丁失效)→ 从界面导出日志,看具体哪条补丁项失败。
- 解决方案:更新补丁器后重打。流水线会先还原
app.asar.backup再重打,反复打补丁是安全的;若确认当前Wand版本暂不受支持,等新版补丁器发布。
症状三:SmartScreen/Defender 拦截WandEnhancer.exe
- 排查:GitHub Actions产出的二进制没有签名,Windows对未签名且不常见的程序一律警告,即使它就是你自己构建的。
- 解决方案:审查源码、核对那次Actions运行的构建日志,只运行自己构建的二进制。不要从YouTube视频描述、随机镜像站或Discord下载"官方版"——官方不提供任何预编译可执行文件和教程视频,已有骗子用项目名义制作假教程并在描述里藏恶意软件。
症状四:用Wand自带"手机配对"后Pro消失、随机掉线
- 排查:Wand原生配对(
/v3/auth/remote_code)会触发服务端设备交接,把本地会话踢下线。 - 解决方案:1.0.9.3 起补丁器已禁用该配对流程,改用Wand-Enhancer内置的远程Web面板(走本地IPC桥,不碰服务端)。
症状五:启动时提示找不到WeMod/Wand目录
- 排查:默认只扫
%LOCALAPPDATA%\Wand、%LOCALAPPDATA%\WeMod下的app-*子目录,装在非常规位置就扫不到。 - 解决方案:先启动一次Wand,让补丁器从运行中进程反查安装目录;或确认你指向的目录里同时有
<品牌名>.exe和resources\app.asar,这是补丁器的校验规则。
安全实践:跑自建补丁器之前要注意的事
几个配置要点:
- 远程面板端口固定为3223,是桥接端与前端共享的常量,不是可配置项,排查网络问题时就认这个端口。
- 自定义脚本只接受
.js,且以与Wand客户端相同的权限运行——只注入你信任并完全理解的脚本。 - 主界面日志窗口支持导出/复制,向社区反馈问题前把完整日志存下来。
安全最佳实践:
- 只运行自己构建的二进制:官方Release只有release notes,任何"一键下载exe"的渠道都不可信。
- 核对构建链:artifact必须来自你自己fork的Build executable运行,抽查Actions日志,确认构建过程无人篡改。
- 远程面板留在局域网:3223 仅供本地网络使用,别把它做端口映射暴露到公网;跨网络需求交给Tailscale。
- 保留备份:
app.asar.backup和app.asar.unpacked.backup是你的回滚点,打完补丁不要手改resources\目录,重打补丁交给补丁器自己处理。 - 跟上版本节奏:Wand每次更新都可能改内部实现,补丁器的changelog按版本记录兼容修复(如1.0.9.3),打补丁前先对照release notes确认支持当前Wand构建。
参与Wand-Enhancer开发:本地开发环境与贡献方向
从仓库说明看,适合新手的贡献方向有四个:
- 兼容性维护:Wand更新后,对照最新
app-*.bundle.js重新推导正则锚点(仓库明确要求不要依赖旧的解包产物),这是最常出现的维护需求。 - 远程面板功能:按游戏固定作弊项、快捷预设等能力都在
web-panel/src/下,沿用现有的storage与协议约定即可扩展。 - 本地化:Web面板语言在
web-panel/src/locales/,目前覆盖德/英/西/法/俄/简中。 - 性能优化:移动端抽屉滚动对
backdrop-filter很敏感,列表里不要随手加毛玻璃效果。
本地开发环境在Windows上一条命令起步:
# 全链路构建:安装依赖、构建前端、CMake原生辅助库、WPF解决方案 build.cmd # web-panel单独构建并校验桥接产物语法 cd web-panel pnpm run build node --check web-panel/dist/bridge.cjs改完补丁流水线后,至少完整走一遍"打补丁→验证→重打"循环,确认备份与还原逻辑没有破坏。一个完全透明、可审计的本地增强工具,价值会随着Wand的每一次版本迭代和社区的每一份提交而持续增长。
【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考