PlayStation 2'nin güvenlik sisteminin merkezinde yer alan SPC970 MechaCon çipinin yazılımı, konsolu piyasaya sürüldükten 25 yıldan fazla sonra başarıyla çıkartıldı. DiscoStarslayer adındaki geliştirici ve işbirlikçisi Libby tarafından gerçekleştirilen bu başarı, yıllar süren çaba ve karmaşık teknik yöntemler sonrasında mümkün oldu.

Çipin Sırlarının Açılması

Orijinal "fat" PS2 modelinden başlayarak 25 yılı aşkın süredir kapalı kalan SPC970 MechaCon çipinin firmware'i nihayet dumplanmıştır. Japon pazarına özgü SCPH-15000 modelinden 2002 yılına ait 39000 serisi modellerine kadar uzanan 22 farklı firmware görüntüsü GitHub'da yayımlanmıştır. Aynı çipi kullanan Namco System 246 ve 256 arcade kartlarının firmware'leri de bu dump işlemine dahil edilmiştir.

DiscoStarslayer'ın Bluesky'da aktardığına göre, extraction işlemini mümkün kılan anahtar, Libby tarafından bulunan bir eksploit olmuştur. Bu eksploit, çipe gelen ayar verilerinin boş olacağını bildirip, çipin kapasitesinden daha fazla veri göndermeyi başarmıştır. Daha öncesinde, yaklaşık dört yıllık bir çalışma döneminde, çipin koruyucu kaplamasının sökülüp içeriğinin okunması yöntemi denenmişse de bu işlem yalnızca kaba ve eksik dump'lara neden olmuştur.

Teknik Yöntem: Arabellek Taşması Yöntemi

Spc970-dumper-union adlı meraklı geliştirici grubu, çipin EEPROM bellek yazma işlemini istismar ederek firmware çıkartabilmiştir. Grup, blok sayısı sıfır olacak şekilde bir config yazma oturumu açtığında, çipin dahili sayacının taşmasını sağlamayı başarmıştır. Yedi bloklu tamponu aşan miktarda veri gönderildiğinde, bu veri EEPROM yazma görevini yürüten RAM bölgesine taşmıştır. Böylelikle yazma görevinin kaynak adresi değiştirilip çipin ROM bölgesine yönlendirilmiştir. Bu işlem sonrasında MechaCon, firmware'inin 256 baytını EEPROM'a kopyalamıştır. Orada depolanan veriler, PS2 tarafından standart bir komutla geri okunabilir hale gelmiştir. Yaklaşık 1.000 kez tekrarlanan bu işlem sonrasında 256KB boyutundaki tam firmware görüntüsü USB'ye kaydedilmiştir.

Firmware dumplanırken her işlem EEPROM'u yeniden yazıyor ve çipin ömrünü kısaltıyordur. Bunu telafi etmek için dump aracı, işleme başlamadan önce EEPROM'un yedeklemesini alıyor, sonrasında verileri kelime kelime geri yükleyip sonucu çipin açılış sırasında çalıştırılan checksum yordamıyla doğrulamaktadır. Yine de bir risk söz konusudur; Libby'nin orijinal dumper aracı, bu işlemin PS2'yi "normal şekilde çalışamaz duruma getirebileceğini ya da donanım seviyesinde onarım gerektireceğini" uyarı olarak iletmiştir.

PlayStation 2 Emülasyon ve Homebrew Sahnesine Etkisi

Bu çalışma, 2021 yılında dumplanan "Dragon" MechaCon sonrası PS2'nin son harita edilmemiş bölümlerinin kapanmasına yardımcı olmuştur. SPC970 çipinin mask ROM'da saklı koduna ve ayrı 1KB EEPROM belleğine ait bu veriler, emülasyon ve homebrew (ev yapımı yazılım) geliştirme topluluklarının PS2 konsolu hakkındaki bilgisini tamamlayıcı niteliktedir.