>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
C-sharp

如何在不安装加密挖矿木马的情况下为 WeMod 提速

熟悉的场景:你找到了一款喜欢的应用实用工具,去 YouTube 找教程,然后在视频描述里看到一个"超级补丁.exe"的链接,一旦运行就会窃取你所有的浏览器密码?这正是 WandEnhancer 项目的经历。作者立即发布了一份重要声明:发布页中没有任何官方可执行文件,所有 YouTube 视频都是骗子制作的骗局。

实际上,WandEnhancer 是一款面向 Wand 应用(更广为人知的名称是 WeMod)用户的开源工具。它不会入侵服务器端——仅在本地客户端运行,添加默认情况下缺失的功能。

logo

为什么开发者需要这个工具

如果你以为这只是"作弊按钮",那就更有意思了。这个项目本质上是一个用于向 Electron/WPF 桌面应用注入 JavaScript 的框架。这使你能够按自己的喜好自定义界面、自动化环境设置,甚至远程控制应用程序。

有趣的是:作者选择了一种激进的安全策略。为了确保你对代码 100% 放心,他们建议不要下载预编译文件,而是通过 GitHub Actions 在你自己的分支中从源码构建。这是一个在需要高系统权限的情况下分发软件同时保持用户信任的绝佳范例。

WandEnhancer 能做什么

该项目解决了标准客户端的几个痛点。以下是我发现最有用的功能:

  • 远程控制面板。它内置了一个 Web 服务器。你用手机扫描二维码,就可以在不退出游戏的情况下控制应用功能。如果你只有一台显示器,这会非常方便。
  • 自定义脚本注入。你可以将自己的 .js 文件放入 renderer-scripts 文件夹,它们会在应用窗口的上下文中执行。你将拥有 DOM 和 Node.js require 的完整访问权限。
  • 主题和布局。如果标准的深色界面已经让你感到厌倦,你可以通过相同的脚本或内置设置将其重新设计成你喜欢的样子。

底层魔法是如何工作的

该项目使用 C#(WPF)编写,远程面板的前端部分使用 Node.js。架构非常透明:补丁程序找到本地客户端文件,修改它们以支持脚本注入,然后为 Web 面板启动一个本地服务器。

对于想要深入研究代码的人来说,以下是一个自定义注入脚本的示例:

if (!globalThis.__myPluginInstalled) {
  globalThis.__myPluginInstalled = true;

  WandEnhancer.log("Плагин запущен!", WandEnhancer.remoteUrl);

  // Следим за появлением диалоговых окон в интерфейсе
  new MutationObserver(() => {
    const dialog = document.querySelector("ux-dialog:not([data-seen])");
    if (dialog) {
      dialog.setAttribute("data-seen", "1");
      console.log("Обнаружено новое окно");
    }
  }).observe(document.documentElement, { childList: true, subtree: true });
}

脚本在渲染器环境中运行,因此你可以使用标准的 Web API。作者甚至加入了保护机制:如果你的脚本出错崩溃,它只会记录日志,而不会导致整个应用程序"崩溃"。

安全性和构建

我要重复一遍:不要在网上搜索 WandEnhancer.exe。获取可用版本的唯一安全方式是自行构建。流程如下:

  1. 将仓库 fork 到你的账户下。
  2. 进入 Actions 选项卡,运行"Build executable"工作流。
  3. 完成后,从构建日志中下载 artifact(zip 压缩包)。

如果你决定在本地构建,请准备好 Visual Studio 2022、CMake 和 pnpm。整个流程通过 build.cmd 自动化,它会拉取前端依赖项、构建原生辅助程序,并编译 WPF 解决方案。

值得一试吗

WandEnhancer 是一款小众工具。对于那些积极使用 WeMod 并希望充分发挥其潜力的人来说,它绝对有用:去除界面中的杂乱内容或添加远程控制功能。

对于开发者来说,这也是一个如何在没有源代码访问权限的情况下扩展闭源桌面应用的清晰范例。该项目充满活力,社区活跃(GitHub 上近 7000 颗星就是证明),但它需要基本的 Git 技能和对浏览器脚本工作原理的理解。

screenshot

最重要的是,记住网络设置。如果远程面板在手机上打不开,可能是因为 Wi-Fi 路由器上的客户端隔离,或者 Windows 防火墙默认阻止了 3223 端口。

相关项目