Более чем через четверть века после запуска оригинальной консоли PlayStation 2 разработчик под ником DiscoStarslayer успешно извлек прошивку из защитного чипа SPC970 MechaCon. Этот компонент отвечает за проверку подлинности оптических дисков и выполняет основные функции безопасности консоли. В работе над проектом также приняла участие исследователь под псевдонимом Libby, которая обнаружила уязвимость, позволившую осуществить выгрузку данных.

Методы взлома и извлечения прошивки
Чип SPC970 хранит свой программный код в масочном ПЗУ (ROM), которое невозможно перезаписать или обновить, а конфигурационные данные — в EEPROM объемом 1 КБ. Ранее попытки прочитать содержимое чипа предпринимались на протяжении четырех лет путем вскрытия корпуса, однако эти методы давали лишь частичные и неточные результаты. Группа энтузиастов spc970-dumper-union нашла способ использовать уязвимость при записи в EEPROM.
Суть метода заключается в открытии сессии записи конфигурации с нулевым количеством блоков, что вызывает переполнение внутреннего счетчика чипа. Отправка объема данных, превышающего буфер на семь блоков, приводит к переполнению оперативной памяти, отвечающей за задачу записи в EEPROM. Перезапись адреса источника этой задачи заставляет чип скопировать 256 байт прошивки в EEPROM, после чего консоль может считать эти данные стандартной командой. Повторение процедуры около 1000 раз позволяет получить полный образ прошивки объемом 256 КБ.
Риски при работе с дампером
Поскольку процесс требует многократной перезаписи EEPROM, а данный тип памяти не поддерживает функцию выравнивания износа и имеет ограниченный ресурс, существует риск повреждения устройства. Разработчики инструмента предусмотрели резервное копирование и проверку контрольных сумм после восстановления данных. Тем не менее, авторы предупреждают, что использование программы может привести к неработоспособности приставки и потребовать сложного аппаратного ремонта.
Результаты исследования и дальнейшее применение
На данный момент на GitHub опубликованы 22 образа прошивок, охватывающие консоли «толстых» моделей (fat) от японской версии SCPH-15000 (2000 год) до моделей серии 39000 (2002 год), а также игровые аркадные системы Namco System 246 и 256. В 2021 году были опубликованы образы более позднего чипа MechaCon серии «Dragon», что позволило создать проект MechaPwn, делающий консоли мультирегиональными.
Новые дампы открывают путь к созданию программных разблокировок для 20 моделей PS2, выпущенных в 2000–2003 годах, которые ранее не поддерживались MechaPwn. Хотя самих образов недостаточно для разработки полноценного эмулятора оптического привода, они могут помочь в создании специализированных модчипов. Кроме того, изучение прошивки раскрывает код системы шифрования MagicGate, используемой для карт памяти и исполняемых файлов KELF.
Влияние на эмуляцию PS2
Участник проекта uyjulian отметил, что эти данные станут основой для низкоуровневой эмуляции всей системы в будущем. Популярные эмуляторы, такие как PCSX2, в настоящее время лишь имитируют команды MechaCon на языке C++, используя заглушки вместо реальных аппаратных значений. Дискретность этих данных может создавать проблемы при проверке идентификации консоли системой безопасности. DiscoStarslayer также поддерживает ответвление эмулятора под названием Reliquary, которое ориентировано на использование реальных путей авторизации консоли.
Техническая сторона уязвимости и извлечение данных
Процесс извлечения прошивки стал возможен благодаря тому, что эксперты заставили чип «поверить», будто входящий пакет данных конфигурации пуст, одновременно отправляя больше информации, чем предусмотрено конструкцией. Этот метод кардинально отличается от ранних попыток физического удаления корпуса (decapping), которые требовали огромных временных затрат и давали лишь «грубые» дампы.

Для обеспечения безопасности процесса в ходе перезаписи EEPROM инструмент Libby создает резервную копию памяти перед началом работ. После завершения цикла извлечения данных программа восстанавливает EEPROM пословно, сверяя итоговый результат с заводской процедурой проверки контрольной суммы (checksum) при включении устройства. Несмотря на эти меры предосторожности, риск остается высоким: оригинальная документация к дамперу предупреждает, что любая ошибка может привести к состоянию, когда PlayStation 2 утратит способность к нормальной работе и потребует аппаратного вмешательства.
Перспективы разблокировки и роль MagicGate
Важно отметить, что игры для PS2 не были зашифрованы, поэтому сам по себе факт получения доступа к коду не «взламывает» защиту от копирования напрямую. Однако прошивка впервые раскрывает алгоритмы, лежащие в основе системы шифрования MagicGate. Этот код используется не только для защиты карт памяти, но и для работы исполняемых файлов KELF, с которых консоль загружается как с дисков, так и с карт памяти.
На текущий момент консоли ранних моделей (2000–2003 годов) по-прежнему могут запускать резервные копии игр через эксплойты для карт памяти или жесткого диска. Однако до недавнего времени их невозможно было разблокировать на уровне самого чипа, так как код был недоступен для анализа. Хотя на создание полноценного эмулятора оптического привода одних этих дампов недостаточно, они могут послужить базой для разработки модчипа, который заменит функционал MechaCon, сохраняя при этом оригинальный DSP-процессор привода для чтения дисков.
Будущее эмуляции: путь к низкоуровневой точности
На сегодняшний день такие эмуляторы, как PCSX2, не исполняют реальный код чипа. Вместо этого они используют программную реализацию команд MechaCon на языке C++, подставляя «заглушки» в виде 1 КБ NVRAM-файла и четырехбайтового номера версии. Как подчеркивает DiscoStarslayer в описании своего проекта Reliquary, сгенерированные данные не всегда способны заменить реальные аппаратные значения, когда система безопасности проводит проверку подлинности идентификатора консоли. В перспективе изучение SPC970 должно помочь реализовать полноценную низкоуровневую эмуляцию системы.
Участник проекта uyjulian отмечает, что конечной целью является создание аналога MechaPwn или TonyHax для чипа SPC970. Однако этот процесс будет значительно сложнее, чем в случае с чипом «Dragon». Разработчики смогли взломать «Dragon» всего за месяц, так как Sony заложила в него возможность обновления прошивки — это дало исследователям уязвимую «точку входа» для внедрения патчей. Чип SPC970, напротив, полностью лишен функции обновления: его программный код был «зашит» в память еще в 2000 году и оставался неизменным на протяжении всего цикла производства.





