بیش از ۲۵ سال پس از عرضه کنسول پلی‌استیشن 2 مدل «fat»، یکی از توسعه‌دهندگان با نام DiscoStarslayer موفق شد فریم‌ورم چیپ امنیتی SPC970 MechaCon را استخراج کند. این چیپ مسئول تأیید دیسک‌ها و مدیریت بخش عمده‌ای از امنیت کنسول بود و تا پیش از این، کد آن ناشناخته باقی مانده بود.

در یک پست در شبکه اجتماعی Bluesky، DiscoStarslayer از همکاری Libby قدردانی کرد که با کشف یک آسیب‌پذیری امکان استخراج فریم‌ورم را فراهم کرد. این آسیب‌پذیری باعث شد چیپ تصور کند داده‌های تنظیمات ورودی خالی است و به همین دلیل داده‌ای بیش از ظرفیت بافر دریافت کرد. پیش از این، تلاش‌های چهار ساله برای بازکردن بسته‌بندی چیپ و خواندن محتوای آن تنها خروجی‌های ناقص و اولیه به همراه داشت.

تمام داده‌های استخراج شده به همراه ۲۲ تصویر فریم‌ورم مربوط به مدل‌های مختلف پلی‌استیشن 2 از جمله مدل‌های ژاپنی SCPH-15000 تا سری 39000 از سال ۲۰۰۰ تا ۲۰۰۲ در گیت‌هاب منتشر شده‌اند. همچنین این داده‌ها شامل بردهای آرکید Namco System 246 و 256 است که از همین چیپ استفاده می‌کردند. این بخش‌ها از آخرین قطعات ناشناخته پلی‌استیشن 2 به شمار می‌رفتند، پس از اینکه فریم‌ورم MechaCon مدل «Dragon» در سال ۲۰۲۱ استخراج شده بود.

تصویر خبر

روش استخراج فریم‌ورم چیپ SPC970

چیپ SPC970 کد خود را در حافظه ROM ماسک شده نگهداری می‌کند که قابل نوشتن یا اصلاح نیست و تنها داده‌های کالیبراسیون و تنظیمات در حافظه EEPROM یک کیلوبایتی جداگانه ذخیره می‌شود. گروه علاقه‌مندان «spc970-dumper-union» با سوءاستفاده از نحوه نوشتن داده‌ها به EEPROM، توانستند این محدودیت را دور بزنند.

این گروه کشف کرد که با بازکردن یک جلسه نوشتن تنظیمات با شمارش بلوک صفر، شمارنده داخلی چیپ دچار زیرریز می‌شود. ارسال داده‌ای بیش از ظرفیت بافر هفت بلوکی باعث سرریز به حافظه RAM می‌شود که وظیفه نوشتن به EEPROM را دارد. با بازنویسی آدرس منبع این وظیفه به حافظه ROM چیپ، MechaCon بخشی از فریم‌ورم خود را به EEPROM کپی می‌کند. سپس پلی‌استیشن 2 می‌تواند این داده‌ها را با فرمان استاندارد بخواند. این فرایند حدود هزار بار تکرار می‌شود تا تصویر کامل ۲۵۶ کیلوبایتی روی یک حافظه USB ذخیره شود.

هر بار نوشتن روی EEPROM عمر آن را کاهش می‌دهد چون این حافظه فاقد مکانیزم تعادل سایش است و بودجه نوشتن کمتری نسبت به حافظه فلش دارد. برای محافظت، ابزار استخراج قبل از شروع داده‌های EEPROM را پشتیبان‌گیری کرده و پس از پایان، به صورت کلمه به کلمه بازگردانی می‌کند و صحت آن را با چک‌سام روشن شدن چیپ بررسی می‌کند. با این حال، خطر آسیب به کنسول وجود دارد و ابزار هشدار می‌دهد که ممکن است کنسول به طور عادی کار نکند یا نیاز به تعمیر سخت‌افزاری داشته باشد.

توسعه‌های بعدی و کاربردها

در سال ۲۰۲۱، فریم‌ورم MechaCon مدل Dragon منتشر شد و یک ماه بعد، اکسپلویت MechaPwn معرفی شد که امکان حذف محدودیت منطقه‌ای و اجرای دیسک‌های پشتیبان را فراهم کرد. اما این اکسپلویت برای مدل‌های قدیمی‌تر که از چیپ SPC970 استفاده می‌کردند کار نمی‌کرد و حدود ۲۰ مدل پلی‌استیشن 2 از سال‌های ۲۰۰۰ تا ۲۰۰۳ را شامل می‌شد.

این مدل‌های قدیمی هنوز می‌توانستند با استفاده از اکسپلویت‌های کارت حافظه و هارد درایو بازی‌های پشتیبان را اجرا کنند، اما امکان دسترسی به سطح چیپ امنیتی وجود نداشت تا اینکه اکنون با استخراج فریم‌ورم این چیپ، امکان بررسی و توسعه هک‌های جدید فراهم شده است.

این تصاویر فریم‌ورم به تنهایی برای ساخت شبیه‌ساز درایو نوری کافی نیستند، اما می‌توانند پایه‌ای برای ساخت مودچیپ‌هایی باشند که جایگزین MechaCon شده و درایو دیسک را حفظ کنند. از آنجا که بازی‌های پلی‌استیشن 2 رمزگذاری نشده‌اند، این پیشرفت به معنای باز شدن قفل بازی‌ها نیست، اما کدهای مربوط به رمزگذاری MagicGate برای کارت‌های حافظه و فایل‌های اجرایی KELF که از دیسک و کارت حافظه بارگذاری می‌شوند، در این فریم‌ورم قابل مشاهده است.

این داده‌ها در نهایت می‌توانند به شبیه‌سازی کامل و سطح پایین سیستم کمک کنند. شبیه‌سازهایی مانند PCSX2 که حتی کنسول ضعیف‌تر GameCube را نیز شبیه‌سازی می‌کنند، کد این چیپ را اجرا نمی‌کنند و به جای آن دستورات MechaCon را در زبان C++ بازسازی کرده و از فایل‌های ذخیره شده به جای سخت‌افزار واقعی استفاده می‌کنند.

DiscoStarslayer نسخه‌ای از PCSX2 به نام Reliquary را توسعه می‌دهد که هدف آن پشتیبانی از مسیرهای تأیید شده پلی‌استیشن 2 است. در مستندات این پروژه آمده که داده‌های جایگزین نمی‌توانند جایگزین مقادیر واقعی سخت‌افزار در هنگام بررسی امنیتی هویت کنسول شوند.

هدف اصلی استخراج فریم‌ورم SPC970 یافتن آسیب‌پذیری برای بازکردن قفل مدل‌های قدیمی‌تر است. در مدل Dragon، اکسپلویت MechaPwn به دلیل قابلیت به‌روزرسانی چیپ امکان‌پذیر شد، اما SPC970 کدی ثابت و غیرقابل تغییر دارد که از سال ۲۰۰۰ در چیپ تعبیه شده و هیچ‌گاه تغییر نکرده است، بنابراین یافتن راه نفوذ زمان‌برتر خواهد بود.

مهین صالحی

مهین صالحی

نویسنده بیزنس سون