CTurt که به دلیل هک کردن کنسولهای سونی شناخته شد، ادعا میکند یک آسیبپذیری تقریباً غیرقابل بازیابی را در کنسولهای پلیاستیشن 4 و پلیاستیشن 5 کشف کرده است. یک حفره امنیتی به نام mast1c0re به هکرها اجازه می دهد تا برنامه های کاربردی Homebrew و مدهای نرم افزاری مختلف را روی کنسول نصب کنند. این آسیب پذیری از یک باگ در نرم افزاری که بازی های پلیاستیشن 2 را روی پلیاستیشن 4 و 5 اجرا می کند، سوء استفاده می کند. هنگامی که کامپایلر مجوزهای ویژه ای را برای اجرای کد در سطح پایین اعطا می کند، کاربر می تواند کنترل اجرا را به دست گرفته و به سخت افزار زیرین دسترسی پیدا کند.
برای انجام این کار، باید از آسیب پذیری های شناخته شده در پروژه های شبیه سازی شده، یعنی در بازی های PS2 استفاده شود. این روش متکی بر خطاهای موجود در کامپایل JIT است که توسط شبیه ساز استفاده می شود و به هکر اجازه می دهد کد خود را بنویسد و آن را به سیستم تزریق کند. کنسول آن را می پذیرد و آن را ایمن می شناسد. اگر دوست دارید در مورد آسیب پذیری پلی استیشن 4 و 5 بیشتر بدانید خواندن ادامه این مقاله را در گیمیتو از دست ندهید.
مشکل آسیب پذیری پلی استیشن 4 و 5 mast1c0re به بازیهای خیلی قدیمیتر مرتبط است
به منظور در دست گرفتن کنترل شبیه ساز، هکرها از نظر تئوری میتوانند از بازیهای آسیبپذیری شناخته شده پلیاستیشن 2 مربوط به دههها قبل سوء استفاده کنند. بیشتر این آسیبپذیریها نیاز به استفاده از یک بازی شناخته شده قابل سوء استفاده برای دسترسی به فایلهای ذخیره شده با فرمت ویژه روی کارت حافظه دارند. از آنجایی که پلیاستیشن 4 و 5 سونی به طور بومی دیسکهای استاندارد پلیاستیشن 2 را تشخیص نمیدهند، این رویکرد کمی محدود است. این بدان معنی است که هر بازی موجود باید به عنوان پلی استیشن 2 قابل دانلود در بازی پلیاستیشن 4 از طریق PSN در دسترس باشد. یا اینکه باید یکی از معدود بازیهای پلیاستیشن 2 باشد که به عنوان یک دیسک فیزیکی با پلیاستیشن 4 و 5 از طریق یک ناشر سازگار است، مانند بازی Limited Run.
به گفته CTurt هکرها همچنان باید از یک آسیبپذیری هسته جداگانه (احتمالاً قابل اصلاح) برای به دست آوردن کنترل کامل بر روی پلیاستیشن 4 سوء استفاده کنند. اما بیشترین شاهکار mast1c0re باید برای اجرای برنامههای پیچیده کفایت کند. این شامل ارزشیابهای بهینهسازی شده JIT و احتمالاً برخی از بازیهای تجاری غیرقانونی پلیاستیشن 4 میشود. CTurt تاکید میکند برای سونی تقریبا غیرممکن است که حفره ای را که mast1c0re را فعال می کند ببندد. این بدین علت است که نسخهای از شبیه ساز پلیاسیشن 2 با هر بازی موجود بر پلیاستیشن 4 بسته بندی شده است، به جای اینکه به طور جداگانه و به عنوان بخش اصلی سیستم عامل کنسول ذخیره شود. فروشگاه الکترونیک نینتندو قبلاً آسیب پذیری مشابهی داشته است، اما نینتندو تمام بازیهای 3 بعدی را حذف کرد. با این حال، سونی هنوز بازیهای پلیاستیشن 2 را برای دانلود در PSN موجود دارد. بازی های پلی استیشن را میتوانید با خرید گیفت کارت مناسب از فروشگاه های آنلاین معتبر همچون فروشگاه گیفت کارت گیمیتو تهیه کنید.
چگونه آسیبپذیری پلیاستیشن 4 و 5 از طریق بازیهای پلیاستیشن 2 ایجاد می شود
برنامه ریزی سیستم برای اجرای بازیهای دیگر از کنسولهای قدیمی از طریق شبیهساز رسمی امکانپذیر است. برای بررسی این مشکل، باید از یک نسخه هک شده بازی استفاده کنید که علاقه مندان با کمک بازی Okage Shadow King موفق شدند. آنها نشان داد که چگونه هنگام شروع بازی Shadow King به توابع داخلی دسترسی پیدا کردند و شبیه ساز را با پروژه دیگری در شبکه محلی به فایل ISO متصل شد. CTurt توضیح داد که در آینده از طریق آسیبپذیری شبیهساز، امکان دانلود نسخههای غیرقانونی بازی برای آخرین نسل کنسولها فراهم خواهد شد. CTturt تاکید کرد که برای سونی تقریبا غیرممکن است که این شکاف را ببندد، زیرا شبیهساز به جای اینکه به عنوان یک برنامه مستقل وجود داشته باشد در هر نسخه از بازی تعبیه شده است.
آسیب پذیری پلیاستیشن 4 و 5 چگونه برطرف میشود
شبیهساز پلیاستیشن 2 برخی از آخرین کدهای دارای امتیاز JIT بر روی پلیاستیشن 5 است.سونی به شدت سطح حمله ممتاز JIT را از پلیاستیشن 5 حذف و آن را در مرورگر وب و پخش کننده BluRay غیرفعال کرد. از آنجایی که شبیه ساز پلی استیشن 2 واقعا یک عنوان پلیاستیشن 4 است که به دلیل سازگاری با کنسول های قدیمی قابل اجرا میباشد، آنها نتوانستند تغییراتی در نرم افزار ایجاد کنند و بنابراین باید از امتیاز JIT آن در امان بود. داشتن امتیاز JIT به این معنی است که به خطر انداختن کامل شبیهساز، از جمله فرآیند مشترک کامپایلر، توانایی اجرای کدهای بومی کاملا دلخواه (نه فقط ROP) را بر روی پلی استیشن 4 و 5 بدون نیاز به بهرهبرداری هسته میدهد. این امر مخصوصاً در پلیاستیشن 5 راحت است زیرا هایپروایزر تازه معرفی شده اعمال میشود. با اجرای کد دلخواه در روند یک بازی در پلیاستیشن 4، در نرم افزار homebrew، در شبیه سازهای بهینه سازی شده JIT، و احتمالاً حتی در برخی از بازیهای تجاری دزدی پلی استیشن 4 می توانند تحت این شرایط اجرا شوند.
CTurt از طریق یک برنامه ، سونی را از آسیبپذیری Mast1c0re که پیدا شده بود مطلع کرد. با این حال، توسعه دهندگان این شرکت هنوز این مشکل را برطرف نکرده اند و بعید است که هرگز آن را برطرف کنند. به گفته سازندگان پلی استیشن 4 و 5، مشکل در سیستم عامل کنسول نیست، بلکه در بخشی از کد برنامه موجود در بازی های پلیاستیشن 2 است. در این حالت، رفع حفره تقریباً غیرممکن است. برای این کار، باید پشتیبانی از بازیهای قدیمی روی کنسولها را حذف کنید و همه پروژهها را از فروشگاه پلی استیشن حذف کنید که حذف دسترسی شما به آن برای پلی استیشن بسیار دشوار خواهد بود. این کنسول برای اجرای به روز رسانیهای مورد نیاز سیستم عامل جهت اجرای بازیهای جدید طراحی شده بود، اما نسخه های قدیمی بازیها را همیشه میتوان در آخرین نسخه سیستم عامل بازی کرد. علاوه بر این، پلیاستیشن علاوه بر شکاف موجود در مدل امنیتی خود که از وصله نسخههای موجود بازیها جلوگیری میکند، تصمیم گرفته است حتی بازیهای شناخته شده و قابل بهرهبرداری در پلیاستیشن 2 را برای خرید از فروشگاه حذف نکند. بنابراین این زنجیره غیرقابلاصلاح است اگرچه شاید از نظر فنی کاملا دقیق نباشد. برای دسترسی به فروشگاه پلی استیشن باید اقدام به خرید گیفت کارت پلی استیشن کنید.
آناتومی شبیه ساز پلیاسیشن 2 در ایجاد آسیبپذیری پلیاسیشن 4 و 5
شبیه ساز به 2 فرآیند جداگانه تقسیم می شود:
- فرآیند برنامه اصلی (eboot.bin)
- فرآیند فرزند کامپایلر (ps2-emu-compiler.self)
هسته به هر یک از این فرآیندها امتیازات متفاوتی را اختصاص میدهد که با بررسی نتیجه توابع sceSblACMgrIsJitApplicationProcess و sceSblACMgrIsJitCompilerProcess (نامهایی که از زمانی که هستههای پلیاستیشن 4 هنوز دارای نماد بودند، گرفته شدهاند) پیادهسازی میشوند. کامپایلر می تواند کد بنویسد و برنامه می تواند کد را اجرا کند. بررسی قبلاً اشتباه اجرا میشد و فرآیند برنامه مرورگر در سیستم عامل 1.76 در پلی استیشن 4 میتوانست هم نقشههای قابل نوشتن و هم نقشههای اجرایی ایجاد کند. اما امروزه برای اینکه بتوانیم کد کاملاً دلخواه تولید کنیم، باید هر دو فرآیند را کنترل کنیم که هدف این زنجیره خواهد بود.
نقطه ورود اجرای کد پلیاستیشن 2
زنجیره ماجراجویی ما از کنکاش یک بازی پلی استیشن 2 برای دستیابی به اجرای کد در شبیه ساز که یا از طریق یک اکسپلویت بازی ذخیره یا از طریق یک اکسپلویت صرفاً توسط کنترلر آغاز شد.
- یافتن آسیبپذیریهای بازی ذخیره شده پلی استیشن 2 سخت نیست. برای مثال، کامپایلهای GTA که یک کپی از کارت حافظه را در یک بافر با اندازه ثابت ارائه شده توسط بازی ذخیره شده نشان میدهد. نهایت استفاده از این مشکلات نسبتاً ساده است زیرا پلیاستیشن 2 هیچگونه کاهش بهره برداری نداشت. با یکی از این اکسپلویتها، یک فایل ذخیره پلیاستیشن 4 که حاوی کارت حافظه دستکاری شده پلیاستیشن 2 است که هر کسی میتواند پلیاستیشن 4 هک شده روی هر سیستم عاملی (یا فقط با داشتن یک رایانه شخصی در صورتی که کلیدهای SAMU decapped را دارد) داشته باشد، و آن را رمزگذاری و برای هر PSN-ID امضا کند. سپس با استفاده از قابلیت USB save import در تنظیمات به پلی استیشن 4 و 5 مورد نظر وارد می شود.
- یک اکسپلویت راهاندازی شده با ورودی کنترلکننده کمترعملی خواهد بود، به جز در موردی که قابلیت استفاده بدون نیاز به ورودی ذخیره شده USB باشد، که بستگی به کدگذاری و امضای PSN دارد (از آنجایی که ذخیرهها برای هر حساب رمزگذاری میشوند)، و در پلیاستیشن 5 بعد از آفلاین بودن طولانی مدت به پایان میرسد.
اشکال شبیه ساز
با توجه به اجرای کد پلیاستیشن 2 در 3 بازی شناسایی شده قابل بهره برداری در PS2، مهندسی معکوس خود شبیه ساز آغاز شد و اولین چیزی که دیده شد، فراخوان خواندن/نوشتن حافظه بود. میتوانید در ps2tek ببینید که برخی از آدرسها عملکردهای سختافزاری مختلف پلیاستیشن 2 را کنترل میکنند، بنابراین دسترسی به آنها نیاز به کد خاصی برای شبیهساز دارد تا آن درخواستها را مدیریت کند. به عنوان مثال، شما میتوانید ببینید که چگونه پورت هسته لینوکس پلیاستیشن 2 دستورات CDVD S را با استفاده از این رجیسترهای IO انجام می دهد. برای ارسال آرگومانها به دستور S، آنها بایت به بایت در رجیستر SCMD_SEND / SCMD_STATUS((0x1F402005) نوشته شده، و یک رجیستر مشابه برای ارائه آرگومان به دستورات CDVD N (0x1f402017) استفاده می شود.
بعد از مطالعه شبیه ساز مشخص شد درهیچ یک ازعملیاتهای بافر شده هیچ بررسی مرزی وجود ندارد. به عبارت دیگر، صرف نوشتن بیش از 16 بار متوالی در هر یک از رجیسترها منجر به پر شدن بافرهای وضعیت با بایتهای دلخواه می شود. ما این را Primitive 1 می نامیم و با ارسال دستورات نامعتبر برای تنظیم مجدد ایندکس، می توانیم به طور مکرر از آن استفاده کنیم. سایر رجیسترها مانند 0x1f402016 (فرمان CDVD S) و 0x1f402004 (فرمان CDVD N) نیز در برابر سرریزهای بافر آسیبپذیر هستند، بنابراین در مجموع حداقل 4 نوع آسیبپذیری مانند این در پلی استیشن 4 و 5 وجود دارد، اما از آنجایی که شبیهساز شبه وصلهناپذیر است، برنامه Bounty PlayStation پس از اولین مورد پذیرش گزارشهای فرار شبیهساز پلیاستیشن 2 را متوقف شد، زیرا دلیلی برای یافتن یا تجزیه و تحلیل اشکالات دیگر وجود نداشت.
بازنویسی متوالی برای بازنویسی در فهرست دلخواه (Primitive 2)
با سرریز کردن بافر وضعیت S، خیلی سریع شروع به بازنویسی شاخص وضعیت N می کنیم. با نگاهی به نحوه نوشتن یک بایت در ثبت وضعیت N، متوجه خواهید شد که هنگامی که شاخص وضعیت N را کنترل میکنیم، این مسیر کد به ما امکان می دهد بایت ورودی دلخواه خود را در بافر وضعیت N در یک فهرست 4 بایتی بدون علامت بنویسیم. این Primitive 2 است.
بوت کردن بازیهای سفارشی پلیاستیشن 2
اولین کاری که باید در نبود شبیهساز پلیاستیشن 2 انجام دهید این است که یک بازی دیگر را راهاندازی کنید.
چند گزینه برای بازیابی یک فایل بازی خارجی وجود دارد:
- بستهبندی آن در فایل ذخیره در ابتدا انتخاب بدیهی به نظر میرسد، اما از آنجایی که بازیهای ذخیرهسازی پلیاستیشن 4 دارای محدودیت حجم فایل هستند (در ابتدا 1 گیگابایت بود، اما پس از آن برای انتشار Cyberpunk کمی افزایش یافت)، این رویکرد برای بسیاری از بازیهای پلیاستیشن 2 کار نخواهد کرد.
- احتمالاً میتوانید بازیها را با انتقال دستی روی USB و پیادهسازی FAT (از آنجایی که mount syscals محدود شدهاند) از حافظه USB کپی کنید.
- در هر اجرا فقط بازی مورد نظر را از طریق شبکه محلی روی کنسول آپلود کنید. این مورد بدون فشرده سازی و از طریق WiFi برای یک بازی 1.3 گیگابایتی مانند Klonoa 2 تقریباً 20 دقیقه طول می کشد، اما مطمئناً می توان آن را بهبود بخشید.
هنگامی که فایل ISO در جایی در سیستم فایل قابل دسترسی است، فقط یک مورد برای مکان یابی کد شبیه ساز که مسئول باز کردن فایل (/app0/images/disc01.iso) با تنظیم یک نقطه شکست در sceKernelOpen می باشد وجود دارد. اکسپلویت برای فراخوانی آن (با یک مسیر پیمایش شده مانند ./../bla/boot.iso برای دور زدن برخی از بررسی های داخلی)، خنثی کردن خرابی های باقی مانده، و در نهایت تماس کد LoadExecPS2 در پلیاستیشن 2 برای راه اندازی ELF دیسک مجازی جهت شروع بازی جدید نصب شده است.
سخن پایانی
در این پست تلاش شد که در مورد آسیبپذیری پلیاستیشن 4 و 5 با امکان بازیهای پلیاستیشن 2 صحبت کنیم. در صورتی که شما اطلاعات بیشتری در این زمینه دارد خوشحال میشویم آن را در بخش کامنتها با ما و دیگر خوانندگان محترم به اشتراک بگذارید. علاوه بر آن، در صورتیکه مطالب این مقاله برای شما مفید بود لطفا به دیگر دوستان خود در دیگر کانالهای اموزشی معرفی کنید. همچنین شما میتوانید از خدمات گیمیتو به نحو احسن بهرهمند شوید و مطمئنا بعد از یک بار استفاده هوادار ما خواهید شد. در پایان از شما سپاسگذاریم که وقت خود را در اختیار مطالعه این پست آموزشی گذاشتید.