从250KB到136KB的极致瘦身:Discord Quest Completer的Windows假游戏进程实现全解

发布时间:2026/10/23 17:37:01
从250KB到136KB的极致瘦身:Discord Quest Completer的Windows假游戏进程实现全解 【免费下载链接】discord-quest-completerA Windows desktop application to complete quests on Discord without installing the full actual games.项目地址https://gitcode.com/gh_mirrors/di/discord-quest-completer点击查看免费下载Discord Quest Completer 是一款面向 Windows 的桌面应用核心玩法很取巧不安装动辄几十 GB 的真实游戏只靠一个体积极小几 MB 甚至更小的假游戏进程就能让 Discord 识别出你正在玩某款游戏从而完成那些需要15 分钟游戏时长的 Discord Quest任务。本文带你拆解它最硬核的部分——如何把代表游戏的可执行文件从 250KB 一路瘦身到 136KB以及背后的 Windows 进程伪装原理。一、不装游戏也能刷任务它解决了什么痛点Discord 会定期放出Quest任务活动其中不少要求你先游玩某款已认证的游戏并累计一定时长才能领取奖励。可现实是 游戏太大动辄几十上百 GB硬盘装不下 带宽有限下载太慢️ 不想装游戏的反作弊anti-cheat或它根本跑不动你的电脑 只是想挂个游戏状态给别人看。Discord Quest Completer 正是为此而生它用极小的成本模拟出某款游戏正在运行的状态让你省下空间和流量照样参与任务。这些使用场景在项目里也有明确说明可参考 README.md 的Use Cases章节。它只支持Discord 已认证Verified、且能被自动检测到的游戏。游戏清单来自 Discord 的 detectable 接口前端会把它缓存到 src/assets/gamelist.json。二、Discord 如何认出你在玩哪款游戏理解原理前先要知道 Discord 检测游戏的机制。Discord 通过Rich Presence / Registered Games来识别游戏它的判断逻辑其实并不神秘看进程名检查有没有一个名字与真实游戏主程序完全一致的进程正在运行看位置有时还要求该进程位于游戏本该在的安装目录里。换句话说Discord 关心的是有没有一个叫xxx.exe的进程在跑而不太管这个进程是不是几 GB 的真游戏。 这就是本项目的突破口——只要能造出一个名字对、位置对、一直在运行的极小进程就能骗过检测。这套复制模板 → 改名 → 启动的核心逻辑都写在 src-tauri/src/lib.rs 里。三、一个模板复制成任意游戏假游戏进程的诞生Discord Quest Completer 并没有为每款游戏各写一个程序而是用了**一个万能模板 复制改名** 的套路准备模板打包时把编译好的超小进程二进制src-win.exe塞进应用的 resources运行时路径形如data/src-win.exe见 src-tauri/src/lib.rs 的runner_resource_name。建目录按games/游戏AppID/子路径/的真实安装结构创建文件夹game_folder_path。复制改名把模板复制过去并改名为真实游戏的主程序文件名create_fake_game。启动以--title 游戏名参数启动它让它显示游戏名并保持运行run_background_process。停止用taskkill /F /IM 进程名结束进程stop_process。这个万能模板启动后会弹出一个显示游戏名的小窗口并挂一个系统托盘图标——因为部分游戏/Discord 需要检测到有可见窗口。它的完整 Windows 实现就在 src-win/src/main.cpp。前端按钮的Play / Stop / Install and Play状态切换逻辑在 src/components/GameExecutables.vue。四、从 250KB 到 136KB 的极致瘦身三种方案怎么取舍整个项目的灵魂 KPI只有一个字——小。作者的目标是让每个平台的假进程控制在 100KB 上下。围绕这个目标项目实测了三条路线数据来自 README.md方案体积依赖运行时取舍结论C# / .NET~7KB需要用户装 .NET 4.7 运行时最小但给用户加负担 ❌Rust windowscrate~136KB无自包含小巧且不依赖外部 ✅C WinAPI当前落地~250KB无自包含兼容性好目前随包发布7KB 的 C# 方案体积极致却要求终端用户额外安装 .NET 运行时——这与开箱即用的理念相悖所以被放弃136KB 的 Rust 方案用windowscrate 直接调 Win32 API 建窗口自包含、无需任何运行时是更小且不依赖的理想方向⚙️当前仓库真正打包使用的是 C WinAPI 版本约 250KB因为它无需任何运行时、兼容性最稳代码见 src-win/src/main.cpp。所以标题里的从 250KB 到 136KB正是这条在不逼用户装运行时的前提下把自包含进程做得尽量小的瘦身路径。五、拆解 Windows 假进程构建配方与瘦身技巧为什么一个 C 程序能被压到只剩几百 KB答案藏在构建配方里。它由三部分协同完成1. 用 Rust 的极致压缩编译配置项目用 Rust 的 release profile 来驱动整条编译链关键参数见 src-win/Cargo.tomlopt-level z—— 以最小体积为目标优化lto true—— 链接时优化跨编译单元删掉死代码codegen-units 1—— 单单元生成最大化优化空间panic abortstrip true—— 去掉错误处理与符号表进一步瘦身。2. 在 build.rs 里塞入省空间链接参数src-win/build.rs 通过cc编译 C 源码并注入了一系列链接器开关/NODEFAULTLIB不链接默认 C 运行时省下大量体积/ENTRY:mainEntryPoint手动指定入口为 C 里的mainEntryPoint/SUBSYSTEM:WINDOWS无控制台窗口/GS-关闭缓冲区安全检查减体积/ALIGN:16与/FILEALIGN:16对齐到 16 字节进一步压缩文件。3. C 源码本身也抠到极致src-win/src/main.cpp 的实现有几个典型的瘦身手法动态加载 API用LoadLibraryWGetProcAddress运行时才取user32、shell32、gdi32的函数避免静态链接开销手写memset用一段十几字节的小函数替代 CRT 版本main.cpp自己解析--title参数不依赖标准库的字符串处理直接从GetCommandLineW()里取游戏名main.cpp。而 src-win/src/main.rs 本身只有一行#![no_main]#![no_std]和一个空panic_handler真正逻辑全在 C 里Rust 仅充当编译配置外壳。平台模板统一由 scripts/sync-runner.mjs 驱动编译各平台 runner 再复制到资源目录Windows 对应pnpm build:runner:win pnpm copy:runner:win。六、从搜索到开玩完整使用流程把上面的机制串起来普通用户的操作路径其实非常简单搜索游戏应用启动时从 Discord detectable 接口拉取可检测游戏清单fetch_gamelist_from_discord前端用 Fuse.js 做模糊搜索src/pages/HomeView.vue➕加入列表把想刷的游戏加到待办列表▶️点 Play若该可执行文件未安装先触发install_and_play——即复制模板create_fake_game再启动run_background_process见 installAndPlay⏱️计时假进程常驻Discord 检测到后状态显示为正在玩 X任务时长按需累计常见为 15 分钟⏹️点 Stop调用stop_process结束进程。小提示假进程会持续占用游戏名玩完记得 Stop避免长时间挂着。七、运行目录长这样安装、维护与卸载应用会在自己所在目录下生成假游戏文件。因此务必把它放在你有写入/执行权限的目录别放C:\Program Files\这类需提权的目录否则可能无法创建文件见 README.md 的安装说明。解压后的目录结构大致如下discord-quest-completer/ ├── discord-quest-completer.exe # 主程序 ├── data/ │ └── src-win.exe # 假游戏进程模板 └── games/ └── game-id/ # 按游戏 AppID 存放的假游戏日常维护玩久了games/下会积累不少文件夹手动删掉不用的即可卸载更是简单粗暴——删掉整个应用目录就完事。八、支持平台与技术栈一览维度说明主平台Windows 11Windows 10 理论可用未重点测试Linux / macOS暂未支持——核心原因是假进程尚未在各平台都压到足够小技术栈 Rust后端 Vue.js前端 Tauri桌面框架渲染依赖需 WebView2Win11 自带更早系统需手动安装技术栈与依赖声明可分别在 src-tauri/Cargo.toml 和 package.json 中查看。写在最后Discord Quest Completer 的巧妙之处在于它没有硬怼游戏本身而是精准抓住了Discord 靠进程名识别游戏这一检测机制再用一个被极致压缩过的自包含小进程去满足它。从 250KB 的 C 版本到 136KB 的 Rust 版本再到 7KB 却有门槛的 C# 版本这条瘦身之路本质上是在**体积与零依赖**之间反复权衡。⚠️合规提醒本项目定位为学习与个人用途。使用此类模拟工具可能涉及 Discord 服务条款、游戏发行商与广告主的权益后果需自行承担请自行权衡风险。想深入源码可直接克隆仓库后按平台编译对应 runnergit clone https://gitcode.com/gh_mirrors/di/discord-quest-completer cd discord-quest-completer pnpm install pnpm build:runner:win pnpm copy:runner:win pnpm tauri dev赞分享【免费下载链接】discord-quest-completerA Windows desktop application to complete quests on Discord without installing the full actual games.项目地址https://gitcode.com/gh_mirrors/di/discord-quest-completer点击查看免费下载相关推荐Gaze-LLE 完全指南从安装到预测的 5 步快速上手教程Gaze LLE 完全指南从安装到预测的 5 步快速上手教程 想要快速掌握计算机视觉中的注视目标估计技术吗Gaze LLEGaze Target EstiRust二进制瘦身秘籍从MB到KB的极致优化指南Rust二进制瘦身秘籍从MB到KB的极致优化指南 min sized rust项目专注于展示如何最小化Rust二进制文件大小。默认情况下Rust优化执行速度示例工程极致精简ArduinoJson二进制瘦身全攻略极致精简ArduinoJson二进制瘦身全攻略 ArduinoJson是一款专为Arduino和嵌入式C设计的高效JSON库以其简洁的API和出色的性能物联网嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询