news 2026/9/6 21:39:43

Wand-Enhancer 完整上手:3 步构建免费的 WeMod 本地增强工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Wand-Enhancer 完整上手:3 步构建免费的 WeMod 本地增强工具

Wand-Enhancer 完整上手:3 步构建免费的 WeMod 本地增强工具

【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer

Wand-Enhancer 是一款开源的 WeMod(Wand)桌面客户端增强工具,基于 C# WPF 实现,能把 Pro 激活、禁用更新、F12 开发者工具、手机远程控制 Web 面板这些功能直接打进本地客户端。全程本地运行、零网络请求,所有改动都发生在你的机器上。

项目速览:它做的是把 WeMod 客户端的本地配置和界面行为改得更顺手;服务对象是想摆脱 Pro 订阅限制、或者习惯用手机远程操作 trainer 的 WeMod 用户;核心差异点是改动全程本地化、代码完全开源可审计,官方不发布任何预编译二进制,你必须自己构建。

仓库结构速览:

Wand-Enhancer/ ├── AsarSharp/ # ASAR 解包与重新打包核心库 ├── WandEnhancer/ # WPF 主应用:补丁管线与界面 ├── web-panel/ # 远程 Web 面板前端(React + TypeScript)与 IPC 桥 ├── tools/asar-fuses-bypass/ # ASAR fuses 校验绕过(CMake 原生组件) ├── scripts/ # 发布辅助脚本 └── build.cmd # 一键构建入口

从零搭建——环境准备与构建

构建环境要求:

  • CMake 3.20+
  • Node.js 18+(前端构建)
  • pnpm(前端包管理器)
  • Visual Studio 2022 或 Build Tools,带"使用 C++ 的桌面开发"工作负载和 MSBuild
  • .NET Framework 4.8 桌面开发组件

最简构建路径,Windows 下三条命令:

git clone https://gitcode.com/GitHub_Trending/we/Wand-Enhancer cd Wand-Enhancer build.cmd

build.cmd会按顺序安装前端依赖、构建 web-panel、用 CMake 编译原生组件、还原 NuGet 包,最后 MSBuild 编译 Wand-Enhancer.sln。产物WandEnhancer.exe在输出目录里。注意:官方 Release 只有发布说明、没有 exe,网上任何带 exe 的"官方包"都不是这个项目发布的。

功能全景与配置实操

补丁应用主流程:运行 exe 后工具自动定位 WeMod 安装目录(默认路径之外装的话,还能从正在运行的 Wand 进程反查),找不到就手动填C:\Users\<用户名>\AppData\Local\WeMod\app-<版本号>。点 Apply 后它会先备份,再打补丁、重新打包,任何一步正则匹配不上就整体中止,不会留下半改状态。

四个基础补丁:在补丁对话框里按需求勾选,互不依赖、可任意组合:

补丁作用启用方式注意事项
Activate Pro客户端按 Pro 账号运行勾选后打补丁本地改账号数据,不绕过服务端验证
Disable Updates关掉自动更新勾选后打补丁客户端大版本更新后需重跑补丁
Disable Telemetry关闭遥测上报勾选后打补丁无额外依赖
DevToolsOnF12F12 打开开发者工具勾选后打补丁挂在 Electron 主进程事件上,跨版本稳定

补丁管线的实现定义在 EnhancerConfig.cs,界面和路径检测逻辑在 WandEnhancer/ 里。

远程 Web 面板:勾选Remote Web Panel补丁后,面板前端会被打进客户端。PC 和手机连同一 Wi-Fi,鼠标悬停在 WandEnhancer 顶栏 Connect 按钮上,用手机扫二维码即可打开。面板里能看"我的游戏"列表、远程启动/停止 trainer、调 cheat 数值,还支持按游戏固定常用项和保存预设。注意两点:面板走 WebSocket,端口是 PC 的 3223,跨网段要用 Tailscale 这类组网工具;该补丁会顺带禁用 Wand 自带"手机配对"激活流程,否则会触发服务端登出、把桌面端踢下线。

核心机制拆解(给想懂原理的人)

Wand 是 Electron 应用,全部 JS 代码打在一个叫app.asar的归档文件里(ASAR 可以理解成带文件清单头的压缩包)。打补丁的完整链路是:把app.asar备份成app.asar.backup(未打包的app.asar.unpacked目录同样备份)→ 用 AsarSharp 解包 → 对解出的压缩 JS bundle 逐条应用"正则补丁" → 重新打包写回。

每条补丁就是一个PatchEntryTarget正则负责定位,SearchHints是一组特征片段,先确认文件包含它们才允许尝试匹配,防止版本不对时误改;命中后做替换,并在文件里留下[ENHANCER]标记方便回滚排查。核心逻辑大概长这样:

if (!ContainsSearchHint(js, patch.SearchHints)) return js; var match = patch.Target.Match(js); if (!match.Success) return js; if (patch.SingleMatch && match.NextMatch().Success) throw new Exception("Multiple targets: version not supported"); // 用 patch.Patch(或 PatchFactory 动态生成)替换命中片段

以 Pro 激活为例,思路很直白:客户端每次拿到账号数据时会检查subscription字段,补丁就在返回链路里把"年度订阅、状态有效"的字段注入进去——桌面端本地认为你是 Pro,功能自然解锁。这也是为什么 Wand 升级后偶尔要重新打:压缩后的函数名变了,正则得对着新版本重新对齐,项目靠SearchHints+ 动态解析内部标识名来尽量扛住这种变化。

自定义与二次开发

除了内置补丁,Wand-Enhancer 提供脚本注入通道:打补丁时把你的 JavaScript 文件一并打进客户端,在 Wand 的渲染进程里执行,有完整 DOM 访问权限和 Node 的require。前提是启用远程 Web 面板补丁,脚本复用的是同一套注入通道。

放脚本有两个位置:补丁对话框里逐个添加.js文件(只接受已存在的.js),或放进 exe 同级的renderer-scripts/目录自动带入。每个脚本都被 try/catch 包裹,报错只记日志、不会弄崩 Wand;但同一次启动脚本可能执行不止一次,所以一次性初始化要加全局标志。最小示例:

// 放到 exe 同级 renderer-scripts/ 目录 if (!globalThis.__myScript) { globalThis.__myScript = true; WandEnhancer.log("my script loaded", WandEnhancer.remoteUrl); new MutationObserver(() => { const d = document.querySelector("ux-dialog:not([data-seen])"); if (d) { d.setAttribute("data-seen", "1"); WandEnhancer.log("dialog opened"); } }).observe(document.documentElement, { childList: true, subtree: true }); }

内置默认脚本在 web-panel/bridge/scripts/default/,构建时会被压缩进产物,可以对着它们理解脚本能拿到什么上下文。

踩坑指南——高频问题速查

问题现象可能原因解决方法
手机打不开面板页面PC 和手机不在同一局域网,或路由器开了 AP 隔离确认同网段;关闭 AP 隔离;仍不行则允许 3223 端口入站
面板一直连不上Windows 防火墙拦截 3223 端口防火墙规则允许 TCP 3223 入站
补丁报"version not supported"Wand 升级后 JS 结构变化,正则失配更新 Wand-Enhancer 到最新版重新打补丁
提示"WeMod directory not found"WeMod 装在非默认路径手动填AppData\Local\WeMod\app-<版本号>路径
Defender/SmartScreen 警告自构建产物自编译 exe 未签名、少见正常现象;核验构建日志,只运行自己构建的二进制
打补丁后 Wand 启动异常补丁未成功或中途失败app.asar.backup/app.asar.unpacked.backup恢复原样

两条预防建议:每次打补丁前确认日志里所有条目都显示 "Patch applied" 再启动客户端;Wand 每次大版本更新后先升级 Wand-Enhancer 再应用补丁,顺序反了更容易遇到正则失配。

安全边界与使用提醒

数据流向:补丁管线本身零网络请求,全部操作发生在本地文件上;唯一的"网络"是远程 Web 面板,它只在你局域网内由 PC 提供 HTTP/WebSocket 服务,不经过任何第三方。权限范围:改动仅限于客户端本地配置与界面行为,项目不绕过服务端验证、不分发他人专有代码。备份回滚:app.asarapp.asar.unpacked都会在改动前自动备份,出问题直接恢复备份文件即可。

  • 自定义脚本权限等同客户端本身,只运行你信任并能读懂的脚本
  • 不要从任何第三方渠道下载 exe,官方仓库不发布可执行文件
  • 每次 Wand 更新后检查 更新日志 确认当前版本是否已适配

Wand-Enhancer 的价值在于把 WeMod 客户端的本地增强做成了一条可审计、可回滚的补丁管线,理解PatchEntry之后,你甚至可以针对新客户端版本自己扩展补丁。社区资源:开发文档见 AGENTS.md,参与贡献看 CONTRIBUTING.md,远程面板协议定义在 web-panel/protocol/,许可为 Apache-2.0,见 LICENSE.md。

【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 21:35:28

一份看懂 .NET 发布动态的仓库:版本、补丁与支持期全收录

一份看懂 .NET 发布动态的仓库&#xff1a;版本、补丁与支持期全收录 【免费下载链接】core .NET news, announcements, release notes, and more! 项目地址: https://gitcode.com/GitHub_Trending/core82/core 这个仓库是 .NET 官方的发布说明与新闻归档&#xff0c;把…

作者头像 李华