Wand-Enhancer 上手指南:给 WeMod 打 5 个本地补丁,解锁远程面板与 DevTools
2026/9/19 6:31:50 网站建设 项目流程

Wand-Enhancer 上手指南:给 WeMod 打 5 个本地补丁,解锁远程面板与 DevTools

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

Wand-Enhancer 是一款开源的 WeMod 本地补丁工具:一个 C# WPF 小应用,直接对 WeMod 的 app.asar 做正则替换,提供 Pro 解锁、禁更新、F12 开发者工具、手机远程面板共 5 个可勾选开关。全部改动只发生在你本机,适合愿意自己构建、想长期控制 WeMod 行为的用户。

上手前先看懂:补丁管线动了哪些文件

Wand-Enhancer 不走进程注入,而是静态改文件,整条管线如下(核心逻辑在 WandEnhancer/Core/Enhancer.cs):

app.asar ──解包──> app.asar.unpacked/ ├─ 压缩 JS ──正则替换──> 打好补丁的 JS └─ remote-panel/(内置 Web 面板 + bridge.cjs) app.asar.unpacked ──重新打包──> 覆盖 app.asar version.dll ──放到 WeMod 主程序旁──> 放行 asar 完整性校验

改动范围很明确:WeMod 安装目录下的resources/app.asarresources/app.asar.unpacked,以及主程序旁新增一个version.dll。后者的唯一作用是绕过 Electron 对 asar 完整性 fuse 的检查,让改过的包能被正常加载,它不是注入器。

补丁用的是正则锚点,全部从压缩后的代码里动态解析。WeMod 更新后如果锚点对不上,工具会明确报 "The version may not be supported",不会悄悄写坏文件。

恢复成本低:打补丁前原始文件会备份为app.asar.backupapp.asar.unpacked.backup,之后每次重打都从备份起步,补丁不会叠加。想还原就删掉app.asar,把备份改回原名。

实践:从 0 到 1 打出第一个补丁

官方 release 不再发预编译 exe,推荐路径是 fork 仓库后跑 CI;也可以在 Windows 上本地构建,步骤如下:

  1. 克隆仓库并构建(依赖 CMake、Node.js + pnpm、VS2022、.NET Framework 4.8):
git clone https://gitcode.com/GitHub_Trending/we/Wand-Enhancer cd Wand-Enhancer build.cmd

构建脚本会依次装 web-panel 依赖、打前端、用 CMake 编译原生 DLL、还原 NuGet 包,最后编译 WPF 解决方案。验证标志:产物目录里出现WandEnhancer.exe。如果构建中断,先看报错指向哪一步,缺哪个依赖补哪个即可。

  1. 运行WandEnhancer.exe。验证标志:路径栏自动填出 WeMod 安装目录。如果提示 "WeMod directory not found",出现的原因是非默认安装位置,恢复方式是手动粘贴 WeMod 根目录路径。

  2. 在补丁弹窗勾选开关(可多选),确认。验证标志:日志区依次出现Extracting app.asarPatch applied,最后Done!。如果报 "The version may not be supported",说明当前 WeMod 版本未适配,此时文件未被改动,直接取消即可,等待 patcher 适配新版。

  3. 重启 WeMod。验证标志:客户端正常启动、勾选的功能生效(如 F12 弹出独立 DevTools 窗口)。如果 WeMod 起不来,出现的原因通常是补丁与版本错位,恢复方式是删除resources下的app.asar,把app.asar.backup改回原名。

整个流程顺利时不到一分钟。

功能清单:5 个补丁开关各自干什么

ActivatePro

  • 作用:改写账号接口的本地返回,把订阅标记改成"年度有效",并拦截改语言、后台刷新账号等会抹掉 Pro 的路径。
  • 适合谁:想在本地界面解锁 Pro 功能的人。
  • 代价:这是纯客户端改写,不涉及服务端验证,但意味着你对该账号的安全与合规状态需自行负责;早期版本曾有 Pro 回退 Free 的 bug,1.0.9.1 与 1.0.9.3 已修复,请用最新版重打。

DisableUpdates

  • 作用:让自动更新检查处理器直接返回空,WeMod 停止检查新版本,版本钉死在当前值。
  • 适合谁:不想让自动更新把补丁冲掉的人。
  • 代价:新客户端功能与官方 bug 修复也不会进来,版本老化需要你主动关注。

DevToolsOnF12

  • 作用:在 Electron 主进程挂键盘钩子,按 F12 直接开关独立窗口的 DevTools。
  • 适合谁:想调试客户端 DOM、验证自己脚本的前端开发者。
  • 代价:部分游戏能检测到调试器,开着 DevTools 玩受保护的游戏前先关掉。

RemoteWebPanelPreview

  • 作用:把内置 Web 面板和桥接脚本写进 app.asar,PC 上起一个 3223 端口的 HTTP/WS 服务,手机扫码即用;它也是自定义脚本运行的前提。
  • 适合谁:想把手机当遥控器、沙发上远程操作 trainer 的人。
  • 代价:面板只在局域网监听,但端口长期开着,公共网络环境注意防火墙规则。

DisableTelemetry

  • 作用:枚举中仍保留该位,但当前代码已无对应补丁实现,属于占位。
  • 适合谁:无人。
  • 代价:暂勿使用,勾选可能直接报错,实际落地情况以 CHANGELOG.md 为准。

📱 进阶用法:自定义脚本与手机远程面板

自定义脚本只有两条注入路径:在补丁弹窗里添加.js文件,或把它们丢进 patcher 可执行文件同级的renderer-scripts/目录。脚本在 WeMod 渲染进程执行,有完整 DOM 和 Noderequire,抛错只记日志、不会崩客户端,但每次启动可能跑多次,一次性工作要挂全局标志:

if (!globalThis.__myScriptInstalled) { globalThis.__myScriptInstalled = true; WandEnhancer.log("脚本已加载", WandEnhancer.apiVersion); }

远程面板的网络拓扑全在局域网内:手机浏览器经 TCP 3223 连到 PC 上的面板服务,再经 Electron IPC 到注入 WeMod 主进程的 bridge,最终操作 trainer API 与游戏状态。桥接层源码在 web-panel/bridge/,协议里的端口、路径等常量统一在 web-panel/protocol/web-contract.json,改协议先看它。面板能力包括:游戏列表、远程启停 trainer、按分类勾选 cheat、置顶常用项、保存预设。

边界与风险:动手前读完

  • 如果 WeMod 更新了客户端,会出现锚点漂移、补丁失败甚至 WeMod 起不来,恢复方式是删app.asar、把app.asar.backup改回原名,或重装 WeMod 等适配。
  • 如果 Windows 或 SmartScreen 弹出警告,会出现"未签名发布者"提示,恢复方式是核对 workflow 日志、确认只运行自己构建的产物;任何来路不明的"预编译 exe"一律当不可信——官方从不在 release 里发二进制。
  • 如果手机扫码后页面打不开,会出现连接超时,恢复方式是确认同一 Wi-Fi 且路由器未开 AP 隔离、放行 TCP 3223 入站、把网络类型从"公用"改为"专用"。
  • 如果勾了占位开关或锚点匹配到多处目标,会出现补丁报错中止,恢复方式是取消本次操作、只保留已适配的开关重打。
  • 如果你用别人构建的二进制,会出现无法验证内容的安全风险,恢复方式是丢弃并 fork 仓库自行构建。

动手前问自己 3 个问题

  • 我能自己跑 CI 或本地编译,并接受"无现成 exe"吗?
  • 我理解备份机制,愿意在出问题时手动还原app.asar吗?
  • 我清楚 Pro 解锁是纯客户端改写,账号安全后果自担吗?

三个都答"是",它适合你:一个开源可审计的示例,演示了 Electron 客户端本地修改的完整边界。只想一键下载 exe 图省事、或对本地备份毫无概念的人,请绕道。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询