核心方案思路
Steam 游戏的破解与联机修复思路主要分两类:
- 在线联机需求:使用 Unsteam(伪装免费占位游戏借助 Steam 联机)。
- 单机/局域网需求:使用 GBE Fork(完全离线独立运行模拟器)。
- 跨平台 EOS 联机:当游戏自带 Epic Online Services 时,配合 Nemirtingas Epic Emulator 处理 EOS 鉴权层。
前置准备
- Unsteam —— 联机补丁(需 Steam 客户端运行)
- GBE Fork —— 离线/局域网模拟器
- Steamless —— SteamDRM 移除工具
- Nemirtingas Epic Emulator —— EOS 联机模拟器
干净的 Steam 游戏文件可在 CS.RIN.RU 获取,获取方式见文末「工具与资源」。
查找 Steam AppID
AppID 是游戏在 Steam 商店的编号,两个方案都用得到(Unsteam 的 real_app_id、GBE 的 steam_appid.txt),先查好备用。
- 方法一:打开游戏的 Steam 商店页,URL 里
/app/后面那串数字就是。比如store.steampowered.com/app/3683770/的 AppID 是3683770。 - 方法二:在商店页地址栏直接搜索游戏名,或用 SteamDB 按游戏名查。
Unsteam 让游戏伪装成 Steam 的免费占位标题 Spacewar(AppID 480) 运行,借 Steam 的官方网络联机。需要 Steam 客户端登录;联机对象不限破解玩家。
1. (可选)用 Steamless 去 DRM
只有游戏 exe 带 Steam Stub(SteamDRM 包装)才需要这一步。打开 Steamless.exe,拖入游戏可执行文件,点 Unpack File。
- 提示
This file dose not appear to be packed with steamstub!说明没有 Steam 加密,跳过。 - 成功会生成
游戏名.unpacked.exe。把原 exe 改名备份(如游戏名.exe.old),再把 unpacked 版改名为原 exe 名。
2. 部署 Unsteam 并配置
把 unsteam/{x64,x86}/*(一般是 x64)复制到游戏目录,运行 unsteam_loader64.exe,生成 unsteam.ini。关键配置如下:
1 | [loader] |
3. (可选)替换 EOS SDK
存在 EOSSDK-Win64-Shipping.dll 时,说明游戏用 EOS 联机,按「EOS 联机」标签页处理。
4. 启动与验证
确保 Steam 客户端已登录,两种方式任选:
- 直接运行游戏可执行文件。失败一般是 unsteam 版本架构不对,换 x64/x86。
- 用
unsteam_loader.exe启动。
green 成功标志:Steam 个人状态栏显示正在玩 Spacewar。
GBE Fork 直接替换游戏的 steam_api(64).dll,让游戏以为 Steam 在运行。不依赖 Steam 客户端,但无法在线公网匹配,只能局域网或同配置玩家间联机。
1. (可选)用 Steamless 处理 exe
同方案1第 1 步:Steamless 去掉 exe 上的 SteamDRM 包装。没 DRM 的文件安全跳过,不会损坏。
2. 查找 steam_api(64).dll
在游戏目录搜索 steam_api*.dll,两种情况:
- 只有一个(通用/Unity 引擎):替换这个 DLL,
steam_settings放它旁边。 - 有两个(Unreal Engine 游戏):
1 | <GameDir>\Engine\Binaries\ThirdParty\Steamworks\Steamv157\Win64\steam_api64.dll |
注意
UE 引擎启动时从 Engine 目录加载 steam_api64.dll,不是游戏主目录。只替换 Engine 目录那个,steam_settings 也放 Engine 目录。游戏主目录的 DLL 保持原版不动。
3. 备份原版 DLL 并替换
- 复制要替换的 DLL,重命名成
steam_api64.dll.old(后续生成接口文件备用)。 - 从 GBE Fork 发布包(
emu-win-release)复制对应架构的 DLL 覆盖:- 64 位游戏:
regular\x64\steam_api64.dll - 32 位游戏:
regular\x86\steam_api.dll
(模拟器 DLL 约 7–11MB,原版约 200–400KB,大小一眼能区分)
- 64 位游戏:
4. 创建配置目录与 AppID
- 在模拟器 DLL 同级建
steam_settings文件夹。 - 新建
steam_settings\steam_appid.txt,只写纯数字 AppID。
5. 生成 steam_interfaces.txt(推荐)
接口版本不匹配会导致崩溃。用 GBE Fork 里的 generate_interfaces_x64.exe 对备份的原版 DLL 跑一次,将生成的 steam_interfaces.txt 移入 steam_settings\。
6. (可选)配置 INI
steam_settings.EXAMPLE\ 有模板,按需复制到 steam_settings\ 并去掉 .EXAMPLE 中缀:
configs.user.ini:local_save_path=./saves(将存档保存在游戏目录)、account_name=Player(改名字)configs.main.ini:offline=0configs.app.ini:unlock_all=1(解锁全部 DLC)
游戏自带的正版 EOSSDK-Win64-Shipping.dll(通常十几 MB)会连接 Epic 服务器验证账号、所有权和 DLC。Nemirtingas Epic Emulator 把这些验证在本机模拟,绕过 Epic 登录与鉴权。
- 适用条件:游戏目录存在
EOSSDK-Win64-Shipping.dll(如binaries/win64/)。
1. 备份并替换
搜索游戏内所有 EOSSDK-Win64-Shipping.dll,原版改名备份(如加 .old 后缀),再把 Nemirtingas 的 DLL 复制到原路径覆盖。不确定加载哪份就全部替换。
2. 启动生成配置
直接启动游戏,模拟器会在游戏工作目录自动生成配置文件 NemirtingasEpicEmu.json。
3. 修改配置
用记事本打开 NemirtingasEpicEmu.json,填入自定义用户名:
1 | { |
常用字段对照表
| 字段 | 默认值 | 说明 |
|---|---|---|
username |
DefaultName |
你的名字,用于生成唯一身份 ID,联机不串号 |
appid |
自动/留空 | 匹配同款游戏的房间,房主与玩家需一致 |
savepath |
空(游戏目录) | 存档/成就保存位置;填 appdata 则存到 %appdata% |
disable_online_networking |
false |
true 时禁用公网连接(仅局域网),崩溃则改回 false |
unlock_dlcs |
false |
true 时尝试解锁全部 DLC |
log_level |
OFF |
排障时设 DEBUG,查看详细日志 |
排障与常见问题排查
- 游戏崩溃或提示 EOS 初始化失败:
- 确认替换了实际加载的那份 DLL(有多份就全换)。
- 删除
NemirtingasEpicEmu.json让模拟器重新生成。 disable_online_networking改回false。- 将
log_level改为DEBUG查看详细运行日志。
- 查 EOS 游戏 appid:
打开 EpicData 搜索游戏名,在条目releaseInfo的appId字段中获取。 - 多人联机身份冲突:
每个玩家填不同的username。同一个人的多台电脑建议共用同一份配置文件,避免 ID 变动。 - 和其他 EOS 补丁冲突:
功能重叠的补丁二选一(本模拟器可完整替代 FreeTP 的 EpicFix)。
工具与资源
自动化补丁工具
- ARMGDDN Autocracker —— 基于 GBE Fork,右键游戏文件夹一键自动打补丁
- SteamAutoCracker —— 封装 Steamless + Goldberg,一键去 DRM 和替换 DLL
其他补丁工具
- GreenLuma —— Steam 客户端补丁,支持在线联机(Windows 专用)
- SLSsteam —— Steam 客户端补丁,支持在线联机(Linux 专用)
- WeMod Patcher —— 游戏修改器 WeMod 破解工具
资源论坛
- CS.RIN.RU 论坛 —— 破解工具与 STEAM 游戏资源的主论坛
- Rentry 游戏导航 & Ripped Guide
原文作者:Nite
原文链接:https://www.nite07.com/zh-cn/posts/game-crack-tutorial/
授权许可:CC BY-NC-SA 4.0