ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

把 WeMod 改造成手机可远程操控:Wand-Enhancer 从构建到打补丁的全流程

把 WeMod 改造成手机可远程操控:Wand-Enhancer 从构建到打补丁的全流程 把 WeMod 改造成手机可远程操控Wand-Enhancer 从构建到打补丁的全流程【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-EnhancerWand-Enhancer 是一个本地开源补丁工具它改写 WeModWand客户端打包文件里的行为让你解锁 Pro 特性、关掉自动更新和遥测、打开 F12 调试还能用浏览器把游戏模组从手机上一键操控全程零网络请求、所有代码可审计。能力速览30 秒知道它能做什么功能一句话说清它干嘛你在哪改本地补丁一次性勾选打补丁Pro、关更新、关遥测随选随用exe 主界面的补丁复选框手机远程面板扫个二维码浏览器里就能调滑块、按 Apply主界面悬停 Connect 按钮自定义脚本注入自己的 .js改客户端界面行为补丁对话框的脚本选择F12 开发者工具把 Wand 当 Electron 应用直接调试补丁列表勾选自动备份打补丁前保留原始文件随时可回滚全自动无需配置先看懂两个机制再动手补丁是怎么打进去的Wand 是 Electron 应用所有前端逻辑都压缩打包进app.asar里。Wand-Enhancer 的思路很直白把 asar 解开用正则找到那段压缩后的代码替换成自己的版本再重新打包。补丁定义集中在 WandEnhancer/Core/每条补丁就是「一个正则 一段替换文本」比如 F12 开发者工具补丁// 在 Electron 主进程找一个跨版本稳定的锚点 Target new Regex((?app\w)\.whenReady\(\)\.then\(), // 在它前面插一段F12 按下时开/关开发者工具 Patch ${app}.on(\browser-window-created\,((_,w){ w.webContents.on(\before-input-event\,((_,i){ if(\F12\i.key\keyDown\i.type){ w.webContents.isDevToolsOpened()?w.webContents.closeDevTools():w.webContents.openDevTools({mode:\detach\}) }}))}),${app}.whenReady().then(它没去匹配压缩后到处变动的渲染层代码而是锚定主进程里几乎不变的启动逻辑所以能扛住 WeMod 换版本。手机面板是怎么连上去的远程面板的原理是打补丁时往 asar 里塞一个bridge.cjs再让主进程启动时加载它Target new Regex((?app\w)\.whenReady\(\)\.then\(run\)), // 启动前先偷偷装好桥接服务装失败就把错误记到临时日志 Patch ${app}.whenReady().then((){try{const prequire(\node:path\); require(p.join(__dirname,\remote-panel\,\bridge.cjs\)) .installWandRuntime(require(\electron\));}catch(e){...}return run()})桥接服务起来后手机浏览器和电脑之间走 HTTP WebSocket。默认端口 3223、各接口路径统一写在 web-panel/protocol/web-contract.jsondefaultRemotePort: 3223, webSocketPath: /remote/ws, healthPath: /remote/api/health前端的指令最终由 web-panel/bridge/src/ 里的 TypeScript 服务转发给 WeMod 内部的 trainer 接口你在手机上滑的滑块就是直接调 WeMod 的 setValue。从零跑通先装工具链再点 Patch克隆仓库git clone https://gitcode.com/GitHub_Trending/we/Wand-Enhancer cd Wand-Enhancer做完这步仓库目录里能看到build.cmd和build.ps1。装齐构建工具链CMake、Node.js18和 pnpm、Visual Studio 2022 Build Tools带 C 桌面开发负载和 MSBuild、.NET Framework 4.8 开发组件。 做完这步命令行里分别敲cmake --version、pnpm -v都能输出版本号。一条命令构建build.cmd它会依次装 web-panel 依赖、构建前端、用 CMake 编译原生模块、恢复 NuGet 包、编译 WPF 解决方案。 做完这步构建日志正常收尾产物目录里出现WandEnhancer.exe。运行 exe。工具会自动定位 WeMod 安装目录界面日志区出现绿色的WeMod directory found at …和[INFO] Ready for patching.做完这步说明这一步最关键的检测通过了可以开始选补丁。勾选你要的补丁点右下角 Patch。 做完这步日志区没有报错且原始app.asar的备份已自动生成重启 WeMod 后生效。验证是否真的生效按补丁类型各看一处Pro 补丁看账户页是否显示年度会员关更新补丁看一段时间内是否还弹更新提示F12 补丁按快捷键看开发者工具能否弹出远程面板则看主界面 Connect 按钮能否正常出二维码。挑三个典型场景走一遍场景一躺沙发上用手机开游戏想实现什么人不在电脑前用手机把训练器调好、直接拉起游戏。操作手机和电脑连同一 Wi-Fi → 悬停 Connect 按钮 → 手机相机扫二维码 → 浏览器打开面板。跑完长什么样面板里有游戏列表、分类折叠的滑块、数值输入和 Play 按钮。你在手机上拖滑块电脑侧 WeMod 的对应项立刻变点 Play 直接启动游戏和训练器。同一个面板里你还能给游戏固定常用模组、保存自定义预设这些数据存在手机浏览器的 localStorage 里换浏览器会丢属正常现象。场景二保持 Pro 身份又不再被自动更新打断上一场景跑通了下一步解决「补丁被 WeMod 更新冲掉」的问题。WeMod 一自动更新就重写 asar补丁全白打。所以勾选 Activate Pro 和 Disable Updates 一起打。Pro 的实现是把客户端里返回账户信息的几个接口拦下来在数据返回前补上订阅状态// 拦截 getUserAccount返回前强插一条年度订阅 getUserAccount(){return this.#service_name.fetch({ endpoint:/v3/account, method:GET, name:/v3/account, collectMetrics:0 }).then(response{ response.subscription{period:yearly, state:active}; return response; })}注意service_name是运行时按正则从真实代码里解析出来的不是写死的。打完后即使切换语言、后台刷新账户会员状态也不会被冲掉。场景三用 F12 调试你注入的东西前两个场景稳定后调试需求就出来了注入的脚本跑没跑界面元素长什么样Wand 本质是 Electron 应用勾选 DevTools On F12 后重启在 Wand 窗口里按 F12 弹出开发者工具再按一次收起。控制台里能直接看到注入脚本的日志输出改 DOM 结构也一目了然。进阶改配置、塞脚本、接外网注入自定义脚本想让客户端多一个入口、把某段文案藏起来可以注入自己的 .js。两条路在补丁对话框里勾选.js文件只接受真实存在的 js 文件或者把脚本放进 exe 旁边的renderer-scripts/文件夹。打补丁时它们会被打包进客户端运行环境有完整 DOM 访问权还能requireNode 模块。有两个规则必须记住脚本每次启动可能执行多次一次性动作要挂全局标志脚本抛错只会被记日志不会搞崩 WeMod。// 脚本可能跑多次先挂个标志防重入 if (!globalThis.__helloScriptInstalled) { globalThis.__helloScriptInstalled true; WandEnhancer.log(Hello!, WandEnhancer.remoteUrl); // 自带助手日志、面板URL、API版本 }让外网也能连面板局域网连不通、或者人出门只想用蜂窝数据时在电脑和手机上各装一个 Tailscale两边加入同一个 tailnet面板就走虚拟内网的局域网链路端口仍是 3223。面板服务本身只监听你的本地网络不开公网端口。踩坑速查五条常见故障遇到「Wand 更新后补丁打不进去」大概率是新版压缩代码改了内部命名、正则匹配不上这样解决确认 Wand-Enhancer 是最新版本后重新点 Patch面板提示 unsupported 版本升级工具再打。遇到「找不到 WeMod 安装目录」大概率是装在了非默认位置这样解决在界面路径栏手填格式类似C:\Users\你的用户名\AppData\Local\WeMod\app-版本号。遇到「手机扫了码但页面打不开」大概率是 Wi-Fi 的 AP 隔离或 Windows 防火墙挡了 3223这样解决确认两端同一 Wi-Fi、路由器关掉 AP 隔离、防火墙放行 TCP 3223 入站网络连接类型从「公共」改成「专用」再试。遇到「Pro 用了一两天掉回免费」大概率是旧版补丁没覆盖账户后台刷新路径这样解决确认打的补丁包含账户状态写回的守卫逻辑1.0.9.1 起已覆盖重新打一遍。遇到「F12 没反应」大概率是补丁没勾上或 WeMod 没重启这样解决确认 DevTools On F12 在勾选列表里打完补丁完整重启 WeMod 再试。收尾Wand-Enhancer 的价值在于本地补丁加局域网面板全部行为开源可审计、零外发请求把 WeMod 的控制权收回到你自己的机器上。后续最值得盯的是补丁正则锚点对新版客户端 bundle 的动态解析——补丁能否跟着 WeMod 更新自动跟上决定了这个工具能走多远。【免费下载链接】Wand-EnhancerAdvanced UX and interoperability extension for Wand (WeMod) app项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表