据Engadget报道,在初代厚版PlayStation 2发售超过25年后,开发者DiscoStarslayer从长期未被读取的SPC970 MechaCon芯片中提取出固件。该芯片负责光盘授权并处理主机的大部分安全功能,相关工具和22个固件镜像已被上传至GitHub。

DiscoStarslayer在Bluesky帖子中把成功归功于合作者Libby,后者找到了使提取可行的漏洞。据转储工具文档,该漏洞让芯片误以为将收到一批空的设置数据,随后发送超过其容纳空间的数据。此前团队曾用约四年尝试剥离芯片封装读取内容,但只得到粗糙转储。

GitHub上的22个固件镜像覆盖2000年日本限定的SCPH-15000至2002年的39000系列厚版PS2,也覆盖使用同一芯片的Namco System 246和256街机板。2003年的“Dragon” MechaCon固件于2021年被转储后,这些早期机器成为PS2最后未读取的部分。

SPC970将代码保存在不可写入或修补的掩模ROM中,校准与配置数据放在独立的1KB EEPROM。spc970-dumper-union小组利用EEPROM写入方式:以零块计数打开配置写入会话会使内部计数器下溢,发送超过七个块缓冲区的数据会溢出到保存EEPROM写入任务的RAM,覆盖其源地址并指向芯片ROM。MechaCon随后把256字节固件复制到EEPROM,PS2可用标准命令读回;重复约1000次后,完整的256KB镜像便存到U盘。

每次读取都会重写EEPROM,而它没有磨损均衡,写入预算也比闪存小,因此寿命会缩短。工具会在开始前备份EEPROM,结束后逐字恢复,并用芯片的加电校验例程检查结果。但风险仍然存在。Libby最初的转储工具警告,此举可能使PS2“无法正常运行,或需要硬件级维修”,并称风险自负。

这项进展建立在MechaPwn的工作之上。Dragon MechaCon固件镜像于2021年发布,一个月后,能让较晚PS2解除区域限制并读取备份光盘的MechaPwn漏洞发布。该漏洞的README称旧主机不使用基于Dragon的MechaCon,因此不受支持,也没有支持计划,涉及2000年至2003年约20个型号。旧机器仍可通过记忆卡和硬盘漏洞运行备份,但因无人能看到芯片代码,无法在芯片层面解锁;此次转储首次让这种搜索成为可能。

这些镜像本身不足以构建光驱模拟器,但可支持替换MechaCon、同时保留光驱DSP读取光盘的改机芯片。PS2游戏并未加密,因此没有解锁新内容,但固件暴露了索尼用于记忆卡的MagicGate加密和KELF可执行文件背后的代码。贡献者uyjulian表示,这最终将用于“全系统低层模拟”。PCSX2等模拟器并不运行该芯片代码,而是用C++重新实现MechaCon命令;DiscoStarslayer维护的Reliquary分支也承认,替代数据不能取代硬件值。

对SPC970而言,转储的首要任务是找到能打开早期主机的漏洞。借助MechaPwn,人们能读取Dragon芯片代码,并发现索尼允许其自我更新这一做法中的弱点。uyjulian称,为SPC970制作MechaPwn或TonyHax式解锁是目标之一,但不会那么快实现;Dragon只花一个月就被破解,因为索尼让该芯片接受补丁,而SPC970根本无法更新。