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, 存档修复, 客户端加密, 游戏工具, 逆向工具