tzero86/warwolf-patcher
GitHub: tzero86/warwolf-patcher
Warwolf Patcher 是一个原生 TUI 补丁工具,通过代理 DLL 将已下架游戏《皇牌空战:突击地平线 强化版》失效的 Steam Cloud 存档重定向至本地文件夹,修复无法存档的问题。
Stars: 0 | Forks: 0
██ ██ ▄▄▄ ▄▄▄▄ ██ ██ ▄▄▄ ▄▄ ▄▄▄▄▄ █████▄ ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄ ▄▄ ▄▄ ▄▄▄▄▄ ▄▄▄▄
██ ▄█▄ ██ ██▀██ ██▄█▄ ██ ▄█▄ ██ ██▀██ ██ ██▄▄ ██▄▄█▀ ██▀██ ██ ██▀▀▀ ██▄██ ██▄▄ ██▄█▄
▀██▀██▀ ██▀██ ██ ██ ▀██▀██▀ ▀███▀ ██▄▄▄ ██ ██ ██▀██ ██ ▀████ ██ ██ ██▄▄▄ ██ ██
皇牌空战:突击地平线 - 强化版存档修复
Warwolf Patcher v1.0
────────────────────────────────────────────────────────────────────────────────
针对已下架的强化版无法再通过 Steam Cloud 创建存档数据的修复工具。
Warwolf Patcher 会安装一个小型的代理 DLL,它保持所有其他
Steam API 函数不变,仅将 ISteamRemoteStorage 的文件操作重定向到您的本地文件夹:
```
C:\Users\\Documents\NAMCO\ACAH\savedata
```
您的游戏可执行文件未被修改。该工具以 Warwolf 中队(Bishop 所属部队)命名。
快速开始(推荐)
─────────────────────────
1. 获取 WarwolfPatcher.exe(从最新发布版下载,或自行构建 - 见下文)。
2. 运行 WarwolfPatcher.exe(无需安装)。
- 它会从 Steam 自动检测您的游戏文件夹。如果检测失败,只需将
.exe 放置在 Ace Combat_AH.exe 旁边并再次运行。
3. 在菜单中选择 应用修复 并按下 Enter。
4. 正常从 Steam 启动游戏。
大功告成 —— 存档现在会写入本地,并且游戏内的“空间不足”错误也会消失。
使用补丁工具
─────────────────
WarwolfPatcher.exe 是一个小巧的原生 TUI(约 140 KB,无依赖):
WarwolfPatcher.exe 交互式菜单(默认)
WarwolfPatcher.exe --apply 静默应用修复 / 适用于脚本
WarwolfPatcher.exe --restore 恢复原始的 Steam API
WarwolfPatcher.exe --preview 渲染一次菜单并退出
WarwolfPatcher.exe --version 打印版本信息
WarwolfPatcher.exe --help 使用说明
菜单操作:
- 应用修复 安装代理并创建存档文件夹
- 恢复原始 撤销修复(恢复备份的 DLL)
- 打开存档文件夹 在资源管理器中打开 Documents\NAMCO\ACAH\savedata
- 关于 修复的作用及原因
备用方案:.bat 脚本
──────────────────────────
如果您无法或不想运行 .exe(例如杀毒软件拦截了它):
warwolf_apply.bat 安装修复(效果与“应用修复”相同)
warwolf_restore.bat 恢复原始的 Steam API
这两个文件必须与游戏文件夹中的 warwolf_proxy.dll 放在一起。
本仓库中的文件
──────────────────
WarwolfPatcher.exe 预构建的原生补丁工具(内置代理 DLL)。
warwolf_patcher.c 补丁工具源码。
warwolf_patcher.rc 清单资源脚本。
WarwolfPatcher.exe.manifest asInvoker 清单(防止出现 UAC 提示)。
proxy_data.h 生成的文件:以 C 数组形式嵌入的代理 DLL。
gen_payload.py 从 warwolf_proxy.dll 重新生成 proxy_data.h。
warwolf_proxy.dll 32 位代理 DLL 本身。
warwolf_proxy.c 代理 DLL 的完整源码。
warwolf_proxy.def 代理的导出转发定义。
warwolf_apply.bat 批处理安装程序(备用)。
warwolf_restore.bat 批处理卸载程序(备用)。
README.txt 本文件。
注意:Valve 的原始 steam_api.dll 并未包含在内。补丁工具在首次应用时,会自动将您已安装的副本备份为 steam_api_original.dll。
构建
────────
需要 MinGW-w64 (i686, 32 位),因为游戏是一个 32 位可执行文件。
# 1. 构建代理 DLL
gcc -m32 -shared -O2 -o warwolf_proxy.dll warwolf_proxy.c \
warwolf_proxy.def -lshell32 -lshlwapi -Wl,--enable-stdcall-fixup
# 2. 重新生成嵌入的 payload header
python gen_payload.py warwolf_proxy.dll proxy_data.h
# 3. 构建补丁工具(该清单可停止 UAC 安装程序检测提示)
windres warwolf_patcher.rc -O coff -o warwolf_patcher_res.o
gcc -m32 -O2 -o WarwolfPatcher.exe warwolf_patcher.c warwolf_patcher_res.o \
-lshlwapi -lshell32 -Wl,--enable-stdcall-fixup
工作原理
────────────
- 游戏文件夹中的 steam_api.dll 会被我们的代理替换。
- 所有导出都被转发至 steam_api_original.dll(您真实的 Valve DLL),
因此成就、匹配、排行榜等功能均可正常运作。
- 仅拦截 SteamRemoteStorage():返回接口的 vtable 会被就地修改,使得与存档相关的方法(FileWrite/FileRead/FileExists/
FileDelete/GetFileSize/GetFileCount/GetFileNameAndSize/GetQuota)读取和写入到您的本地 Documents 文件夹,而不是 Steam Cloud。
重要注意事项
───────────────
- 在修复生效期间,请勿运行 Steam 的“验证游戏文件完整性”。
如果运行了,只需再次运行 WarwolfPatcher.exe -> 应用修复。
- 存档仅保存在本地。它们不会通过 Steam Cloud 同步。如果您比较在意,请自行备份
savedata 文件夹。
- 如果您的杀毒软件隔离了代理 DLL(针对注入 DLL 的启发式检测),
请将游戏文件夹添加到排除列表,或使用 .bat 安装程序。
故障排除
───────────────
- “找不到游戏文件夹”:请将 WarwolfPatcher.exe 放置在
Ace Combat_AH.exe 旁边并再次运行。
- 应用修复后仍无法存档:请确认游戏文件夹中的 steam_api.dll
是否与内置代理具有相同的大小/日期。请检查位于
Documents\NAMCO\ACAH\steam_api_proxy.log 的日志。
许可证:MIT (见 LICENSE)。Valve 的 steam_api.dll 未被重新分发。
标签:DLL代理, Linux, Steam API, TUI, 存档修复, 客户端加密, 游戏工具, 逆向工具