Назад
Прошивку SPC970 для PlayStation 2 витягли після реверс-інжинірингу
SiTech AI Team3 хв читання

Прошивку SPC970 для PlayStation 2 витягли після реверс-інжинірингу

Розробник DiscoStarslayer витягнув прошивку SPC970 MechaCon з ранніх консолей PlayStation 2. Це усуває значну перешкоду в дослідженні апаратного забезпечення та відкриває шлях до розблокування на рівні чипа та нових робіт з емуляції.

Дампи прошивки раннього чипа PS2

Понад 25 років після виходу PlayStation 2 розробник DiscoStarslayer витягнув прошивку SPC970 MechaCon. Цей чип у ранніх консолях контролював авторизацію дисків та функції безпеки. Витягування стало можливим завдяки експлойту Libby.

На GitHub опубліковано 22 образи прошивок: від японської SCPH-15000 2000 року до серії 39000 2002 року, а також Namco System 246 і 256 аркадоносіїв. Це були останні нечитані частини PS2 після дампу Dragon MechaCon у 2021 році.

Як прочитали SPC970

SPC970 зберігає код у mask ROM, на який неможливо писати, а конфігурацію — в окремому 1KB EEPROM. spc970-dumper-union використав процес запису в EEPROM. Сесія запису конфігурації з певною кількістю нульових блоків викликала переповнення внутрішнього лічильника.

Більше даних, ніж у семиблоковому буфері, переповнило RAM, де зберігається завдання запису в EEPROM. Зміна адреси джерела направила його на ROM чипа, і MechaCon скопіював 256 байт прошивки в EEPROM. Після приблизно 1000 повторень повний 256KB образ було прочитано з USB.

Інструмент зберігає EEPROM перед витягуванням, потім відновлює його слово за словом і перевіряє контрольною сумою при увімкненні. EEPROM не має wear leveling і має менший ресурс запису ніж flash, тому кожен дамп скорочує термін служби. Дампер попереджає, що консоль може перестати працювати або знадобиться ремонт апаратного забезпечення.

Можливі апаратні та емуляційні роботи

Прошивка Dragon MechaCon вийшла у 2021 році, а через місяць — MechaPwn, який регіонально розблоковує пізні PS2 і читає резервні копії дисків. За документацією, він не підтримує старі консолі, оскільки у них немає чипа Dragon. Приблизно 20 моделей перших трьох років PS2 залишаються розблокованими на рівні чипа, хоча за допомогою експлойтів карт пам'яті та HDD можна запускати резервні копії.

Нових образів недостатньо для емулятора оптичних дисків, але може допомогти modchip, який замінює MechaCon і зберігає DSP приводу. Ігри PS2 не були зашифровані, тому дампи не розблоковують нові ігри. Вони розкривають код шифрування Sony MagicGate для карт пам'яті та файлів KELF.

Нова ціль дослідження розблокування

Контриб'ютор uyjulian повідомляє, що прошивка нарешті дозволяє емулювати всю систему на низькому рівні. PCSX2 не виконує код чипа, а замість цього реалізує команди MechaCon на C++ і використовує 1KB файл NVRAM та чотирибайтовий номер версії. DiscoStarslayer підтримує форк Reliquary PCSX2 для шляхів автентифікованої консолі, але згенеровані за документацією дані не можуть замінити значення апаратного забезпечення, коли перевірка безпеки перевіряє ідентичність консолі.

Кінцева мета — знайти баг, який розблокує консолі на базі раннього SPC970. Розблокування в стилі MechaPwn або TonyHax є більш довгостроковим. Злам Dragon міг зайняти один місяць, оскільки Sony розраховувала на отримання патчів, а код SPC970 було зафіксовано у mask ROM у 2000 році і його неможливо оновити.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.