PS3 发售快二十年了,破解圈在 2026 年 9 月底迎来一条真正意义上的大新闻:以 zecoxao、jestero 为首的研究团队,用电压故障注入(voltage glitching)的办法,从 BootROM 这一层的引导流程里成功提取出了 lv0ldr 的每机唯一密钥(per-console body key),还顺带拿到了配套的 CMAC 密钥。消息最先出现在 zecoxao 自己的技术复盘Glitching the "Almost" Perfect Code里,随后 VideoCardz、Digg 等媒体跟进报道,PSX-Place 论坛的相关讨论帖也热闹了好几天。
为什么这件事分量这么重?简单说:BootROM 是固化在 Cell 处理器硅片里、出厂后永远无法修改的第一段代码,它掌管的 lv0ldr 密钥是整个 PS3 信任链的最根部。2011 年 geohot 泄露的那批私钥只覆盖了链条的后半段,而这一次,根被挖开了。
二十年信任链的根,这次真的松了
先理一下 PS3 的启动链条。主机上电后,固化在 Cell 处理器里的 BootROM 先运行,它加载 lv0ldr,lv0ldr 负责校验并解密 lv0;随后 metldr 被加载,再依次带出 isoldr、appldr、rvkldr、lv1ldr 和 lv2ldr——分别对应隔离 SPU 模块、用户态程序、吊销列表、虚拟机监控器和内核。链条上一环验一环,根就是那段谁也改不了的 BootROM。
2011 年索尼的 ECDSA 签名漏洞被 geohot 和 fail0verflow 那一代人捅破后,索尼在后期机型上修补了签名验证,新老机器的分界就此形成:老厚机可以刷完整自制固件(CFW),而 Slim 3000 系列和 Super Slim 4000 系列长期只能靠 HEN 这类半破解方案。社区后来搞出的 QuasiCFW(kafuu 与 esc0rtd3w、bguerville 基于 2010 年一个论坛旧帖的思路做成)虽然能在 lv0ldr 加载完成后补丁 lv0、lv1、lv2 的任意区域,让「不可破解」的机型也能用上准自制系统,但它有个先天天花板——lv0ldr 本身动不了,因为没人能伪造它的签名。
这次提取出的 lv0ldr 密钥,缺的正是最后这一块拼图。按照 writeup 的说法,拿到 channel 66 根密钥之后,社区理论上可以加密并「签名」自己的 lv0ldr 和 metldr,让修改过的引导代码骗过硬件校验。说实话,这是从 2011 年 lv0 密钥泄露之后,PS3 破解在信任链上往前迈出的最大一步。
开盖拆芯片:BootROM 是怎么被抠出来的
故事的起点相当硬核——想分析 BootROM,得先把它从芯片里物理读出来。团队找了能做 decap(开盖)和成像的人,最初猜测 ROM 位于 PPE 区域靠近 pervasive 的地方。第一批芯片照片送到经验丰富的 ROM 解码者 Proxima 手上,结果却是「巨大的失望」:读出来的不是 SPU ROM,而是微码 ROM——那段把复杂 PPE 指令拆成简单机器码的固件。这次失败发生在 2025 年圣诞节前后。
转机来自一个听起来不太合理的坚持:团队坚持把 8 个「理论上完全相同」的 SPU 区域也检查一遍。结果 ROM 真的在,而且形态很古怪——8192 个镜像比特,正确解码后就是 0x400 字节,也就是 1024 字节,其中一半是另一半的镜像。整个过程前后尝试了两次,还花钱请了一位匿名开盖师傅。拿到的启动 ROM 一共 247 条指令,PSX-Place 上研究者 vzran 逐条走读后还发现了一个有趣的细节:这段代码结尾不带跳转,直接落进 metldr 的入口,而且退出时只清了九个寄存器,r7 不在名单里——这个细节后来成了全局的关键伏笔。
寄存器 7 上的赛跑:故障注入截下密钥残影
拿到 ROM 只是第一步。分析确认里面包含 lv0ldr 和 metldr 的全部 AES 处理逻辑,唯独没有密钥本身——密钥通过 channel 66 以 32 位读取的方式送进来,读完即被硬件锁死,任何软件都无法再访问。索尼在这上面的设计确实下了功夫,密钥就像一次性阅后即焚。团队试过向 channel 64 写特定值、折腾隔离状态等一大堆办法,全部失败,最后认定只剩故障注入或 DPA、DFA、SPA 这类侧信道攻击可行。
真正的突破口来自 jestero 用模拟器 anergistic 做实验时的一个观察:SPU 寄存器的值在多次执行 SPU 代码之间居然会保留下来,而不是每次都被彻底清零。如果哪个寄存器恰好留住了 channel 66 的密钥或派生密钥,整个防线就形同虚设。选定的攻击点是 r7——它只在 channel 66 派生密钥的 AES 密钥扩展过程中被使用。通过在精确时机用电压毛刺打断清理流程、读出 r7 的残值,再利用 AES 可反推的特性往回算,body key 和 CMAC 密钥就能同时到手。
经过一段时间的调试,jestero 在一台 CECHL 机型上成功拿到了自己主机的 lv0ldr 密钥,社区随后在 PC 上完成了全球第一次 lv0ldr 完整解密——191152 字节的引导代码第一次以明文呈现在研究者面前。sagemono 写了第一个 PC 端解密工具,另一位研究者用纯 Python 写了第二个,样本 lv0ldr 文件也在论坛公开供人验证。
Slim 3000 与 Super Slim 的完整自制固件,终于有了理论通路
这件事对普通 PS3 玩家最直接的意义,是「后期机型全部解锁」的可能性。老厚机的完整 CFW 早已成熟,而 Slim 3000 和 Super Slim 因为采用了 metldr.2 与 lv0ldr.2 的加强防护,一直是传统 CFW 的禁区。按照 writeup 列出的路线图,密钥到手后理论上可以:解密 lv0ldr.2 和 metldr.2、拿到未来的签名密钥,再配合 kafuu 的 QuasiCFW 思路,让这两条一直封闭的产品线跑上真正的自制固件。研究团队自己也说了,下一阶段的目标就是 lv0ldr.2 和 metldr.2。
不过必须泼一盆冷水:writeup 里把所有关于自制固件的展望都明确标注为「理论阶段」,目前没有任何可下载的破解程序,也没有可刷的固件发布。从「密钥被提取」到「玩家双击就能用」之间还隔着大量工程工作,包括给每台主机单独提取密钥这个绕不开的硬件步骤。等了二十年的是研究者,普通玩家可能还得再等一阵。
修复、模拟器与收藏研究:密钥之外的连带价值
自制固件之外,这批密钥对维修和保存圈同样值钱。zecoxao 列出的应用方向包括:变砖主机全型号救砖(前提是已提取 CPU Key、硬件主密钥或 channel 66 密钥之一)、跳过损坏的蓝光板、跳过损坏的 Wi-Fi 模块,以及 syscon 和蓝光驱动的重新配对(remarry)——对那些因为蓝光板或无线模块损坏而被判死刑的老机器,这些都是实打实的救命功能。
PS3 模拟器 RPCS3 社区也在关注这项进展。模拟器对早期引导链的了解越深,越有助于排查兼容性问题和复现边界行为,lv0ldr 明文第一次摆在那里,对研究者理解固件校验流程是难得的参考资料。对做硬件保存的收藏者来说,每机唯一密钥的提取方法被验证可行,也意味着老化主机的数据抢救多了条路子。参考报道可见Indie Kings 的整理。
门槛不低:普通玩家为什么暂时复现不了
最后说清楚复现难度,免得有读者跃跃欲试。这套攻击不是刷个网页就能完成的软件漏洞:首先需要一台能接 SPU 调试的改装环境(syscon UART 交互、anergistic、lvx 等自研工具链),其次需要 FPGA 级别的故障注入硬件在纳秒级窗口内精确打断寄存器清理,还得有芯片开盖成像的能力才能拿到 BootROM 比特流。团队自己都走了两次弯路、花了一笔不小的开盖费用。密钥是每机唯一的,就算全套硬件凑齐,提出来也只对应你手上那一台机器。
所以现阶段普通玩家的正确姿势是观望:不用折腾任何东西,也不要轻信网上任何打着「PS3 全机型破解下载」旗号的包——那是老的 HEN 和 QuasiCFW 骗流量的话术。真正的进展会先出现在 zecoxao 的 writeup 和 PSX-Place 的研究帖里,有兴趣的可以先围观讨论帖The Microcode ROM: bits shared and an overview等后续。小编觉得,无论最终能不能落地成全机型 CFW,单是「BootROM 时代终结」这一条,就够 PS3 破解史记上一笔了。

