
OpenSpeedy 开源游戏变速工具实战3 种装法从进程注入到倍率生效的完整拆解【免费下载链接】OpenSpeedy An open-source game speed modifier.项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedyOpenSpeedy 是一款开源游戏变速工具用 Ring3 用户层 Hook 拦截 Windows 系统时间函数让任意 Windows 游戏自由加速或减速。单机玩家拿它压缩跑图时间开发者拿它读一条完整的注入 Hook 共享内存链路。 能力速览游戏变速工具能帮你做什么即时变速滑块覆盖 0.001× 到 1000×拖动后立刻生效不用重启游戏拉回 1× 马上恢复原速。双向调节不只加速也能降到 0.5× 左右慢放方便逐帧观察 Boss 出招前摇。32/64 位通吃按目标进程的位宽自动挑选对应注入 DLL老 32 位游戏和 64 位新引擎都能挂上。无内核侵入全部工作发生在 Ring3 用户层不装驱动、不碰内核风险面小。跨进程状态同步主程序与注入游戏内的 DLL 通过共享内存读写同一个倍率变量改速无需反复调用。键盘切档可绑定加速/减速快捷键并预置常用档位战斗中不用切窗口拖滑块。 三种方式装好 OpenSpeedy 游戏变速工具系统要求Windows 10 及以上。方式一winget 一键安装最省事winget install openspeedy安装完成后打开一个新终端运行openspeedy即可启动。方式二手动下载最通用到项目的 Release 发布页下载最新安装包双击按向导完成安装桌面和开始菜单会生成快捷方式。装了 Steam 的话商店里也有它算一个可选渠道。方式三源码构建最硬核前置工具Node.js 18、Rust、CMake、Visual Studio勾选 C 桌面开发工作负载。git clone https://gitcode.com/gh_mirrors/op/OpenSpeedy cd OpenSpeedy npm install npm run tauri dev注入用的 Hook DLL 由 CMake 单独编译CMakeLists.txt 里能看到它按指针宽度区分 32/64 位目标、静态链接 MinHook并特意用/MT静态链接运行库——避免目标机器没装 VC 运行库时 DLL 加载失败。 实操OpenSpeedy 从进程注入到倍率生效的最小闭环以管理员身份启动先开游戏右键 OpenSpeedy 选以管理员身份运行——跨进程写内存必须提权然后把要变速的游戏开起来。你应该看到进程列表中出现该游戏带 PID、架构、内存占用。选中目标进程在列表里点击游戏进程支持按进程名、PID 或窗口标题搜索。你应该看到右侧详情面板显示它的 32/64 位架构注入状态为未注入。启用加速点击加速按钮工具会完成注入并激活钩子。你应该看到状态变为已注入加速已启用若提示注入失败先检查是否忘了管理员权限。拖动滑块设倍率滑块是对数映射中间是 1×右端 1000×左端 0.001×。调整后你应该看到角色移动、过场动画立刻变快或变慢。恢复原速把滑块拖回 1× 或点原速按钮。游戏立刻回到正常速度随时可以反复切换。不同游戏类型的建议档位经验值从低档起步逐步上调游戏类型建议倍率适用场景角色扮演2.0–3.0×压缩长距离跑图与重复对话动作冒险1.2–1.5×轻度提速且保留操作手感模拟器/经典游戏2.0–4.0×把老游戏节奏拉回现代战斗细节观察0.5–0.9×减速慢放查看攻击判定与前摇 它到底怎么实现的Hook 掉 Windows 时间 API游戏引擎判断过了多久全靠问 Windows睡一会儿、读个计数器、查一下系统时间。OpenSpeedy 的思路就是把这些函数的返回值按倍率缩放——把游戏引擎当成只看一块表的时钟Hook 就是偷偷给这块表调快调慢表走得快了整个游戏世界的时间流速就变了。注入环节走的是经典四步链路。Rust 写的bridge进程通过命名管道接收主程序指令先用VirtualAllocEx在目标进程里划一块内存再用WriteProcessMemory把 DLL 完整路径写进去然后CreateRemoteThread让目标进程调用LoadLibraryW加载 DLL宽字符路径失败还会自动退回 ANSI 版本。选哪个 DLL 由IsWow64Process判断目标位宽决定speedpatch32.dll或speedpatch64.dll。卸载反向操作找到模块句柄调FreeLibrary即可。DLL 内部把时间 API 分成两类改。时长类如Sleep参数直接除以倍率——2 倍速下喊睡 1000 毫秒实际只睡 500 毫秒。时钟类如GetTickCount返回基准值 倍率 × 实际流逝每次改倍率都会重新打一次基准快照所以时钟读数不会跳变。所有钩子都由 MinHook 在 API 入口前几条指令打补丁跳转到替代函数倍率变量factor放在 DLL 的共享数据段里主程序侧调SP_SetSpeed写入即可两个进程看到的是同一个值。被拦截函数所属库缩放含义Sleep / SleepExkernel32.dll缩短或拉长线程休眠时长GetTickCount / GetTickCount64kernel32.dll放大开机后的流逝毫秒数QueryPerformanceCounterkernel32.dll加速高精度计数器读数timeGetTimewinmm.dll缩放多媒体时钟GetSystemTimePreciseAsFileTimekernel32.dll缩放高精度系统时间SetWaitableTimer (Ex)kernel32.dll缩放可等待定时器到期时间 谁会用、怎么用单机玩家把 40 分钟的跑图压到 10 分钟体力留给主线剧情。降到 0.7× 慢放 Boss 出招看清前摇帧再反打。反复尝试操作而不被剧情流程拖住。模拟器用户给节奏缓慢的 FC/GBA 老游戏提速找回现代游玩习惯。快进模拟器里繁长的对话与转场。开发与测试验证游戏逻辑在异常时间流速下的健壮性比如超时判定、计时器溢出。当 Windows API Hook 的教材读——speedpatch.cpp 一个文件就 700 多行链路完整。⚠️ 别踩这些坑权限不足提示注入失败时九成是没以管理员身份运行主程序——跨进程写内存是 Windows 的安全边界。联机与反作弊带反作弊组件的游戏别注入封号风险自负。这个工具的定位是单机场景联机请保持关闭。倍率过高过大的时间缩放会放大物理步长出现穿模、抖动甚至崩溃屏幕一抖立刻把滑块拉回 1× 恢复。存档备份变速跑图中途若游戏崩溃可能要从上一个存档点重来重要进度先手动存档。杀毒误报跨进程注入行为容易触发启发式规则属于正常现象确认文件来自官方发布渠道后再加白名单。️ 源码地图OpenSpeedy/ ├── src/components/SpeedPanel.tsx # React 前端倍率滑块与档位 ├── src-tauri/src/lib.rs # Rust 核心进程枚举、bridge 调度 ├── src-bridge/src/main.rs # bridge 进程命名管道服务 注入/卸载 ├── src-bridge/speedpatch/speedpatch.cpp # 注入游戏进程的 Hook DLL └── src-bridge/third_party/minhook/ # 指令级 Hook 库给开发者三个读码入口读原理speedpatch.cpp 的DllMain——MinHook 初始化、给各时钟 API 打基准快照、逐个装钩子的完整流程都在这里。读注入main.rs 的do_inject——VirtualAllocEx → WriteProcessMemory → CreateRemoteThread → 查退出码的标准四步。读共享内存speedpatch.cpp文件头部的factor原子变量与SP_SetSpeed——看倍率如何借 DLL 共享段跨越进程边界。协议为 GPLv3欢迎提交 PR 或在 Issues 区反馈问题。 使用边界请把它留在单机与研究场景联机对局中变速破坏公平竞技也违反平台规则遇到竞技环境直接关闭。对学习和调试而言这条不到千行核心代码的链路完整演示了 Windows 上如何把时间拨快本身就是一份好教材。【免费下载链接】OpenSpeedy An open-source game speed modifier.项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考