>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
C-sharp

WeModを暗号マイナーを入れずに強化する方法

よくある場面です。好きなアプリの便利なツールを見つけて、YouTubeでガイドを見ようとしたら、説明文に「super-patcher.exe」へのリンクがあるじゃないですか。 запустившись, крадет все ваши пароли из браузера? Именно так произошло с проектом WandEnhancer. Автор сразу же выступил с огромным предупреждением: официальных исполняемых файлов в релизах нет, а все видео на YouTube — это мошенничество от аферистов.

На самом деле WandEnhancer — это инструмент с открытым исходным кодом для пользователей приложения Wand (более известного как WeMod). Он не взламывает серверную часть — работает исключительно с локальным клиентом, добавляя функции, которых не хватает по умолчанию.

logo

Зачем это нужно разработчику

Если вы думали, что это просто «читерская кнопка», то всё гораздо интереснее. Проект по сути является фреймворком для инъекции JavaScript в настольное приложение на Electron/WPF. Это позволяет настраивать интерфейс по своему вкусу, автоматизировать настройки окружения и даже управлять приложением удалённо.

Интересный момент: автор выбрал радикальный подход к безопасности. Чтобы вы были на 100% уверены в коде, он предлагает не скачивать готовые файлы, а собирать их самостоятельно через GitHub Actions в собственном форке. Это отличный пример того, как распространять ПО, требующее высоких системных привилегий, сохраняя доверие пользователей.

Что умеет WandEnhancer

Проект решает несколько болевых точек стандартного клиента. Вот что показалось мне наиболее полезным:

  • Удалённая панель управления. Встроенный веб-сервер позволяет сканировать QR-код телефоном и управлять функциями приложения, не выходя из игры. Удобно при одном мониторе.
  • Инъекция пользовательских скриптов. Можно поместить свои .js файлы в папку renderer-scripts, и они выполнятся в контексте окна приложения. Полный доступ к DOM и Node.js require.
  • Темы и раскладки. Если стандартный тёмный интерфейс наскучил, его можно переделать на своё усмотрение через те же скрипты или встроенные настройки.

Как работает магия внутри

Проект написан на C# (WPF) с использованием Node.js для фронтенд-части удалённой панели. Архитектура довольно прозрачна: патчер находит локальные файлы клиента, модифицирует их для поддержки инъекции скриптов и запускает локальный сервер для веб-панели.

Для тех, кто хочет покопаться в коде, вот пример того, как выглядит пользовательский скрипт инъекции:

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. Сделайте форк репозитория в свой профиль.
  2. Перейдите на вкладку Actions и запустите рабочий процесс "Build executable".
  3. После завершения скачайте артефакт (zip-архив) из логов сборки.

Если решите собирать локально, подготовьте Visual Studio 2022, CMake и pnpm. Процесс автоматизирован через build.cmd, который вытянет зависимости фронтенда, соберёт нативный хелпер и скомпилирует WPF-решение.

Стоит ли пробовать

WandEnhancer — нишевый инструмент. Он определённо полезен тем, кто активно использует WeMod и хочет выжать из него максимум: убрать лишнее из интерфейса или добавить удалённое управление.

Для разработчиков это также наглядный пример того, как расширять закрытые настольные приложения без доступа к их исходному коду. Проект живёт и имеет активное сообщество (почти 7000 звёзд на GitHub говорят сами за себя), но требует минимальных навыков работы с Git и понимания того, как работают скрипты в браузере.

screenshot

Самое главное — не забывайте про сетевые настройки. Если удалённая панель не открывается на телефоне, скорее всего, это из-за изоляции клиентов на Wi-Fi роутере или Windows Firewall, блокирующего порт 3223 по умолчанию.

関連プロジェクト