HexCrystal69/Discord_ORBS

GitHub: HexCrystal69/Discord_ORBS

一款通过在开发者控制台中模拟游戏、直播和视频播放等活动来自动完成 Discord 任务的客户端 JavaScript 自动化工具。

Stars: 0 | Forks: 0

# 🌌 Discord ORBS:自动化 Discord 任务完成器 ![Discord Orbs 横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/100a278d80182546.jpg) 一款高级的 Discord 客户端自动化实用工具,旨在直接通过 Discord 应用程序或 Web 浏览器的开发者控制台,自动完成处于活动状态的 **Discord 任务**。 通过 Webpack chunk 提取,这些脚本能动态模拟运行游戏、直播活动、视频播放和活跃的语音通话,只需几分钟即可满足当前 Discord 任务的要求——无需安装或运行任何实际游戏。 ## 🚀 核心功能 * **⚡ 多功能合一自动化**:自动检测并完成多种类型的任务,包括游戏游玩时长、直播时长、观看宣传视频以及语音频道活动。 * **🔄 基于队列的处理 ([orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js))**:在队列中自动遍历所有已加入、未完成且未过期的任务,无需用户干预即可逐一完成。 * **🛠️ 稳健的模块选择器回退机制 ([orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js))**:针对 Discord 客户端更新内置了强大的错误处理功能,可在回退导出路径(`Z`/`A`, `ZP`/`Ay` 等)之间自动切换,以精准定位 Webpack 模块。 * **🛡️ 轻量级且原生**:使用原生 JavaScript 编写,零外部依赖。直接挂钩到正在运行的 Discord 客户端的活跃状态中。 ## 📂 文件对比 本仓库提供了两种实现方式: | 功能 | 🌟 [orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js)(推荐) | [orbs-2.js](file:///d:/Mini/Discord_ORBS/orbs-2.js)(旧版/精简版) | | :--- | :--- | :--- | | **多任务处理** | **是**(按顺序遍历所有可用任务) | **否**(仅处理找到的第一个任务) | | **Webpack 兼容性** | **高**(对已更新的模块布局实施动态回退检查) | **低**(静态选择器;如果 Discord 更新内部变量将会失效) | | **视频进度循环** | 增强的计时和重试验证检查 | 简单的顺序间隔 | | **目标受众** | 拥有多个活跃任务并寻求稳健解决方案的用户 | 单任务场景 / 参考代码 | ## 🛠️ 工作原理(技术架构) 这些脚本会拦截 Discord 的 React/Flux 架构的内部状态。它们通过客户端脚本和浏览器 DevTools 来实现这一点: ### 1. Webpack Chunk 劫持 为了访问 Discord 的私有存储,脚本将一个包含回调符号的虚假 chunk 推送到全局 `webpackChunkdiscord_app` 数组中。此回调的第三个参数是 Webpack 的模块解析器 `r`: ``` let wpRequire = webpackChunkdiscord_app.push([[Symbol()], {}, r => r]); webpackChunkdiscord_app.pop(); ``` 提取出 `wpRequire` 后,脚本会扫描内部模块缓存(`wpRequire.c`)以定位核心 Discord 模块: * `QuestsStore`:检索有关当前任务登记、进度和配置的信息。 * `RunningGameStore`:管理对运行中游戏的检测。 * `ApplicationStreamingStore`:控制语音频道的视频流元数据。 * `ChannelStore` & `GuildChannelStore`:提供对私有频道和服务器的访问权限。 * `FluxDispatcher`:协调通信并分发虚假事件以触发 UI 状态更新。 * `api`:利用 Discord 的内部凭证和 Headers 执行 HTTP 请求。 ### 2. 任务模拟机制 根据任务所需的操作,将执行特定的机制: #### 📺 观看视频 (`WATCH_VIDEO` / `WATCH_VIDEO_ON_MOBILE`) 脚本会识别视频时长要求,计算所需的进度,并直接向以下地址发出模拟进度的 HTTP POST 请求: `/quests/{quest_id}/video-progress` 它会在后台模拟视频播放进度,不断更新 Discord 服务器,直到 API 报告任务已完成。 #### 🎮 玩游戏 (`PLAY_ON_DESKTOP`) 在 Discord 桌面版应用程序中,脚本会覆盖内部的游戏检测存储: * 暂时挂钩 `RunningGameStore.getRunningGames` 和 `RunningGameStore.getGameForPID`,以返回与任务游戏 ID 匹配的模拟游戏描述符。 * 通过 `FluxDispatcher` 分发 `RUNNING_GAMES_CHANGE` 操作。 * 订阅 `QUESTS_SEND_HEARTBEAT_SUCCESS` 分发器操作以监控进度直到完成,然后恢复原始的存储函数。 #### 📹 直播游戏 (`STREAM_ON_DESKTOP`) 脚本模拟在语音频道中进行游戏直播: * 挂钩 `ApplicationStreamingStore.getStreamerActiveStreamMetadata` 以报告目标任务游戏正在进行直播。 * 监控进度更新,并在达到目标时长时恢复原始函数。 * *注意:这要求你处于一个至少有另一名参与者的语音频道中。* #### 🎙️ 游玩活动 (`PLAY_ACTIVITY`) 脚本会定位你的第一个私人私信频道或语音服务器频道,建立流密钥表示形式(`call:channel_id:1`),并定期向以下地址广播心跳 POST 请求: `/quests/{quest_id}/heartbeat` 它会每 20 秒持续发送心跳、更新进度,并在达到目标时长时发送结束心跳以完成任务。 ## 📖 使用说明 ### 前置条件 1. 在浏览器中打开你的 Discord 应用(桌面版)或 Discord 网页版。 2. 导航至 **用户设置 > 礼品库存 / 任务**,并确保你已**加入**(点击“接受任务”)你希望完成的任务。 ### 第 1 步:打开开发者控制台 * **Discord 网页版**:按 `F12` 或 `Ctrl + Shift + I` (Windows/Linux) / `Cmd + Option + I` (macOS),然后切换到 **控制台** 标签页。 * **Discord 桌面客户端**: 要在官方 Discord 桌面客户端中打开开发者工具,你需要通过 Discord 的本地配置文件(`settings.json`)启用它: 1. 完全关闭 Discord(确保已从系统托盘/任务管理器中关闭)。 2. 在你的系统上找到 `settings.json` 文件: * **Windows**:按 `Win + R`,输入 `%appdata%\discord` 并按 `Enter`。 * **macOS**:打开访达,按 `Cmd + Shift + G`,并粘贴 `~/Library/Application Support/discord`。 * **Linux**:检查 `~/.config/discord`。 3. 在文本编辑器(例如记事本、VS Code)中打开 `settings.json`,并添加或修改 `"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING"` 键,将其设置为 `true`。或者,你可以使用以下配置替换文件内容: { "IS_MAXIMIZED": true, "IS_MINIMIZED": false, "WINDOW_BOUNDS": { "x": 112, "y": 60, "width": 1284, "height": 724 }, "DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true, "MIN_WIDTH": 940, "MIN_HEIGHT": 500, "chromiumSwitches": {} } 4. 保存文件并重启 Discord。 5. 在桌面应用程序中按 `Ctrl + Shift + I`(或在 macOS 上按 `Cmd + Option + I`)打开开发者工具。 6. 切换到 **控制台** 标签页。 7. *注意:粘贴代码时 Discord 可能会显示安全警告。如果出现提示,请在控制台提示符中输入 `allow pasting` 以解锁粘贴功能。* ### 第 2 步:运行脚本 1. 复制 [orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js) 的全部内容。 2. 将其粘贴到 Discord 控制台中。 3. 按 `Enter`。 ### 第 3 步:监控进度 * 脚本会在控制台中打印详细日志,显示它当前正在模拟哪个任务。 * 它会记录进度状态更新(例如 `Quest progress: 120/900`)。 * 完成后,你可以从 **礼品库存** 标签页领取你的奖励。 ## ⚠️ 重要免责声明与警告
标签:CMS安全, Discord, JavaScript, Webpack, 云资产清单, 响应拦截, 数字取证, 数据可视化, 自动化脚本, 自定义脚本, 逆向工程