今回の解析が成立した鍵は、書き換え回数1000回しか保証されていないEEPROMを最後まで持ちこたえさせたことにある。開発者DiscoStarslayer氏はBlueskyへの投稿で、自身と協力者Libby氏が発見した脆弱性により、初代「厚型」PlayStation 2でディスク認証と大部分のセキュリティ機能を担うSPC970 MechaConチップのファームウェアをついに完全に読み出せたと明らかにした。このチップが2000年に誕生して以来、その内部のコードが人の目に触れたのはこれが初めてだという。
これ以前にも、別のグループが約4年をかけ、チップのパッケージを物理的に剥がして直接内容を読み取るというもっと地道な方法を試みていたが、得られたのは不完全で粗い dump にとどまっていた。Libby氏が見つけた脆弱性はまったく別のアプローチだった。まずEEPROMの設定書き込みプロセスを開始し、次に書き込むデータブロック数が「ゼロ」だとチップに伝えることで、内部カウンターにアンダーフローを発生させる。そこへバッファ容量を超えるデータを送りつけると、あふれた分がEEPROM書き込みタスクを保持するRAM領域へ溢れ出し、そのタスクの参照元アドレスを上書きして、チップ自身のROMを指すように仕向けられる。その結果、MechaConは誤って自身の256バイトのファームウェアをEEPROMへコピーしてしまい、あとはPS2の標準コマンドでそれを読み出せる。この手順を約1000回繰り返すことで、256KBの完全なファームウェアイメージがようやく組み上がり、USBメモリに保存された。
問題は、EEPROMにはウェアレベリング機能がなく、書き換え寿命もflashよりはるかに短いという点だ。dumpを一回行うたびに、その寿命を消費していくことになる。そのためdumpツールは事前にEEPROMの内容をバックアップし、作業後に一バイトずつ元に戻したうえで、チップ起動時のチェックサム処理と照合して整合性を確認する仕組みになっている。それでもなお、Libby氏によるオリジナル版dumperのドキュメントには、この過程によってPS2が「正常に動作しなくなる、あるいはハードウェアレベルの修理が必要になる」可能性があると明記されており、利用は自己責任とされている。
22種類のイメージファイルがMechaPwnの「抜け穴」を埋める すべての成果はすでにGitHubに公開されており、2000年に日本限定で発売されたSCPH-15000から、2002年の39000シリーズの厚型PS2まで、計22種類のファームウェアイメージが含まれる。さらに、同じチップを採用するNamco System 246および256のアーケード基板分もカバーしている。2003年以降に採用された「Dragon」版MechaConチップについては、実は2021年の時点ですでに読み出しに成功しており、その1カ月後には、PS2のリージョンロック解除とバックアップディスク起動を可能にする「MechaPwn」の脆弱性が生まれる契機となった。しかしMechaPwnのREADMEには当時から、Dragonチップを搭載していない初期モデルは非対応であり、対応予定もないと明記されていた——これは2000年から2003年にかけて発売された約20の型番に影響する。これらの初期型本体は、メモリーカードやハードディスクの脆弱性を利用すればバックアップディスクの起動自体は可能だったものの、チップレベルでの解除は今回に至るまで一度も実現していなかった。誰もその内部コードを見ることができなかったからだ。
PS2のゲームディスク自体には暗号化が施されていないため、今回のファームウェアdumpによって何かが新たに「解除」され、ゲームの改造が可能になるわけではない。むしろ今回明らかになったのは、ソニーのメモリーカード暗号化方式「MagicGate」のコードと、PS2がディスクおよびメモリーカードから起動する際に使用する実行ファイル形式「KELF」の背後にあるロジックだ。貢献者のuyjulian氏によれば、これらの情報は将来的に「システム全体をローレベルでエミュレートする」取り組みに活用できる可能性があるという。現時点でPCSX2などのエミュレータはMechaConのコードを実際に実行しているわけではなく、C++でその命令セットを再実装し、1KBのNVRAMファイルと4バイトのバージョン番号を代替データとして読み込む形を取っている。DiscoStarslayer氏自身はPCSX2のフォークである「Reliquary」を管理しており、PS2の認証プロセスに特化しているが、そのREADMEでも、セキュリティチェックで本体固有の識別情報の照合が必要になる場合、生成された代替データでは本物のハードウェア値を代替しきれないと認めている。
uyjulian氏によれば、次の目標はMechaPwnのようにSPC970自体を解除できる脆弱性を見つけることだが、Dragonチップの時ほど早く進むとは見込めないという。当時の研究者がわずか1カ月でDragonチップを攻略できたのは、ソニーがファームウェアアップデートを受け付けられる設計にしていたためで、それ自体が見つけられるべき弱点として最初から残されていたに等しい。しかしSPC970はまったく事情が異なる。そのコードは2000年の時点でマスクROMに焼き付けられたまま一度も更新されたことがなく、同様のアップデート機構に付け入る隙は存在しないのだ。