尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

为什么Apollo Save Tool能支持这么多游戏?深度解析其自定义解密、校验和与补丁引擎扩展机制

为什么Apollo Save Tool能支持这么多游戏?深度解析其自定义解密、校验和与补丁引擎扩展机制 为什么Apollo Save Tool能支持这么多游戏深度解析其自定义解密、校验和与补丁引擎扩展机制【免费下载链接】apollo-ps4Apollo Save Tool (PS4)项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4Apollo Save Tool 是一款运行在 PS4 上的存档管理工具Homebrew能直接在主机上完成存档的下载、解锁、修改patch和重签名。很多用户会好奇它凭什么能支持几百款游戏的存档从《合金装备5》到《死亡搁浅》答案藏在三层扩展机制里数据驱动的补丁引擎、逐游戏的自定义解密/校验和、以及可远程更新的补丁数据。这篇文章带你一层层看懂它的原理。一、先认识 Apollo Save Tool一款免电脑的 PS4 存档神器传统做法是用电脑 Save Wizard 之类的工具来回倒腾存档而 Apollo Save Tool 把整个流程搬进了主机内完全独立不需要电脑所有操作都在 PS4 上完成自动检测自动识别固件版本、User ID 与 Account ID多用户支持可管理多个用户档案的存档完整工作流列表查看 → 解密导出 → 修改/应用补丁 → 重签名 → 复制回硬盘支持这么多游戏关键不在于为每个游戏写一个分支而在于它把游戏差异抽象成了可以外挂的三块拼图。二、第一层数据驱动的补丁引擎.savepatch 文件这是覆盖面最广的一层。Apollo 内置了一个名为Apollo Patch Engine的引擎版本迭代至 v2.0.4它的核心设计是补丁规则以纯文本数据文件存在而不是编译进程序里。补丁文件按游戏身份证自动匹配每款 PS4 游戏都有一个唯一的 Title ID如CUSA09193。当你在存档列表里选中某个存档时程序会按 Title ID 去找对应的补丁文件应用数据目录/Title ID.savepatch这段查找逻辑位于 source/saves.c第 577 行附近。换句话说支持一款新游戏 放一个文本文件进来引擎负责解释执行。引擎能读懂的指令有多丰富.savepatch文件兼容两大生态的作弊码格式Save Wizard 码类型 3/4/7/9/A/B/C/D 等Bruteforce Save Data (BSD) 脚本BSD 脚本里还能调用大量底层命令这正是扩展机制的精髓——同一个引擎通过组合命令支持不同游戏类别引擎支持的指令示例加密aes_cbc、aes_ctr、blowfish、camellia_ecb、des3_ecb、hmac_sha256哈希/校验crc32、djb2、murmur3_32、jhash、jenkins_oaat、force_crc32、mgspw_checksum压缩decompress(offset, wbits)、compress(offset)、offzip主机信息回调 username、mac、psid、account id 等宿主变量加密与哈希运算由 mbedTLS 库统一支撑AES、HMAC、SHA1、SHA256保证了跨版本的稳定性。补丁文件可以直接参考模板 docs/py_script/template.savepatch 的结构来理解头部注释 :游戏标识 补丁条目列表非常简洁。三、第二层逐游戏的自定义解密与校验和有些游戏对存档做了自己的二次加密标准 PS4 存档解密后依然是乱码。Apollo 的解法是把这些特例也写成补丁引擎能执行的数据规则逐游戏适配。从 CHANGELOG.md 可以看到这条扩展轨迹有多长自定义解密Custom save decryption游戏加密方式黑暗之魂重制版AES-CBC龙珠Z卡卡罗特2AES-CTR生化危机4重制版Blowfish-CBC真·女神转生VAES-ECB合金装备5、底特律之外系列厂商自定义算法怪物猎人世界、仁王2、L.A. Noire逐游戏规则自定义校验和Custom checksum部分游戏在读取存档前会计算校验和改一个字节游戏就提示存档损坏。Apollo 为它们实现了重算逻辑已支持死亡搁浅Death Stranding消逝的光芒2Dying Light 2孤岛惊魂5Far Cry 5、生化危机5异度神剑/轨迹系列Trails 系列多款GTA5、合金装备5Rockstar 校验以及《如龙维新》、《Strider》、《最后生还者第二部》等此外还有自定义解压支持例如《消逝的光芒2》和《最终幻想 像素复刻版》的存档内部还套了一层压缩引擎用decompress命令解开后再交给用户。 这套机制的好处新增一个游戏的解密/校验规则本质上只是新增一条数据规则无需为它专门开发新模块。四、第三层Keystone、重签名与 Python 脚本扩展光能解开存档还不够改完之后必须让游戏认账Apollo 在这上面也有完整链条Keystone 与重签名PS4 存档的完整性依赖 Keystone密钥指纹。Apollo 内置了116 款游戏的原始 Keystone并实现了完整的重签名流程更新param.sfo中的 User ID / Account ID、重写 PSID HMAC 签名。所以从网上下载的存档只要Resign一下就能进游戏。Python 脚本把扩展能力开放给开发者从 v2.3.0 起Apollo 还支持在主机上运行自定义 Python 脚本来编辑存档并提供了apollo模块供脚本调用其功能。这意味着社区开发者可以为没有现成补丁的游戏写自己的编辑逻辑扩展方式比纯数据规则更灵活。相关脚本与工具位于 docs/py_script/ 目录。补丁数据可空中更新最后一块拼图应用设置里的Update Application Data选项可以在线更新 savepatch 数据见 docs/usage.md 的 Settings 章节。也就是说即使你不重装应用也能拿到新游戏的补丁支持——这是它能长期游戏越多越好用的关键。五、总结三层机制撑起通吃的存档工具回到标题的问题Apollo Save Tool 能支持这么多游戏靠的是层层叠加的扩展机制层级机制解决什么问题第 1 层.savepatch数据文件 补丁引擎按 Title ID 匹配免代码扩展作弊/修改第 2 层自定义解密、校验和、解压规则处理各厂商的存档二次加密与完整性检查第 3 层Keystone 重签名 Python 脚本 在线数据更新让修改结果可被游戏接受且可持续扩展 想深入源码的读者可以从 source/saves.c存档管理与补丁匹配、source/exec_cmd.c命令执行和 include/ 下的头文件入手。对普通用户来说你只需要知道一件事只要游戏出现在它的补丁列表里解密、修改、重签名全流程都在这款工具内一步完成——而这正是它支持这么多游戏的秘密。【免费下载链接】apollo-ps4Apollo Save Tool (PS4)项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表