من الممكن اختراق لعبة “Tetris” من داخل اللعبة نفسها


في وقت سابق من هذا العام، لقد شاركنا قصة كيفية استخدام NES الكلاسيكي تتريس وصل اللاعب إلى “شاشة القتل” الخاصة باللعبة للمرة الأولى، مما أدى إلى تنشيط التعطل بعد أداء مذهل مدته 40 دقيقة و1511 سطرًا. الآن، يستخدم بعض اللاعبين شاشة التوقف هذه – وبعض التلاعب المعقد بالذاكرة الذي تتيحه – لتشفير سلوكيات جديدة في إصدارات منها تتريس يعمل على الأجهزة والخراطيش غير المعدلة.

لقد قمنا بتغطية مواطن الخلل المماثلة في “تنفيذ التعليمات البرمجية التعسفية” في ألعاب مثل سوبر ماريو العالم, ورقة ماريو، و أسطورة زيلدا: الأكرينا من الزمن في الماضي. والطريقة الأساسية لإدخال الكود الخارجي في NES تتريس تم تنظيرها علنًا منذ عام 2021 على الأقل عندما كان اللاعبون يحققون في كود اللعبة الذي تم فك ترجمته. (HydrantDude، الذي تعمق في الأمر تتريس الأعطال في الماضي، يقول أيضًا إن المجتمع كان لديه منذ فترة طويلة طريقة معروفة بشكل خاص لكيفية السيطرة الكاملة على تتريس‘ كبش.)

لكن مقطع فيديو حديث من Displaced Gamers يأخذ الفكرة من النظرية الخاصة إلى التنفيذ العام، ويتناول تفاصيل دقيقة حول كيفية الحصول على NES تتريس لبدء قراءة جداول الدرجات العالية للعبة كتعليمات رمز الآلة.

المرح مع منافذ التحكم

الاستيلاء على نسخة من NES تتريس ممكن في الغالب بسبب الطريقة المحددة لتعطل اللعبة. بدون الخوض في الكثير من التفاصيل، حدث عطل في NES تتريس يحدث عندما يستغرق معالج نتيجة اللعبة وقتا طويلا لحساب النتيجة الجديدة بين الإطارات، وهو ما يمكن أن يحدث بعد المستوى 155. عندما يحدث هذا التأخير، تتم مقاطعة جزء من رمز التحكم بواسطة روتين كتابة الإطار الجديد، مما يؤدي إلى الانتقال إلى جزء غير مقصود من ذاكرة الوصول العشوائي الخاصة باللعبة للبحث عن التعليمات التالية.

عادةً ما تؤدي هذه المقاطعة غير المتوقعة إلى انتقال التعليمات البرمجية لمعالجة البداية الأولى لذاكرة الوصول العشوائي (RAM)، حيث تتم قراءة البيانات المهملة كتعليمات برمجية وغالبًا ما تؤدي إلى تعطل سريع. لكن يمكن للاعبين التلاعب بهذه القفزة بفضل الغموض غير المعروف في كيفية القيام بذلك تتريس يتعامل مع المدخلات المحتملة عند تشغيله على الإصدار الياباني من وحدة التحكم، Famicom.

على عكس نظام Nintendo Entertainment System الأمريكي، يتميز جهاز Famicom الياباني بوجود وحدتي تحكم متصلتين بالوحدة. يمكن للاعبين الذين يريدون استخدام وحدات تحكم تابعة لجهات خارجية توصيلها من خلال منفذ توسيع في الجزء الأمامي من النظام. ال تتريس يقرأ كود اللعبة المدخلات من منفذ وحدة التحكم “الإضافية” هذا، والذي يمكن أن يتضمن وحدتي تحكم NES قياسيتين إضافيتين من خلال استخدام محول (وهذا صحيح على الرغم من أن Famicom حصلت على إصدار مختلف تمامًا من تتريس من البرامج المضادة للرصاص).

كما يحدث، فإن منطقة ذاكرة الوصول العشوائي تتريس يتم استخدام الاستخدامات لمعالجة مدخلات وحدة التحكم الإضافية هذه أيضًا لموقع الذاكرة لروتين الانتقال الذي ناقشناه سابقًا. وبالتالي، عندما تتم مقاطعة روتين القفز هذا بسبب عطل، فإن ذاكرة الوصول العشوائي (RAM) ستحتفظ بالبيانات التي تمثل الأزرار التي يتم الضغط عليها على وحدات التحكم هذه. وهذا يمنح اللاعبين طريقة محتملة للتحكم بدقة في المكان الذي ينتقل إليه رمز اللعبة بعد حدوث العطل.

الترميز في جدول الدرجات العالية

بالنسبة لطريقة التحكم في القفز الخاصة بـ Displaced Gamers، يتعين على اللاعب الضغط باستمرار على “أعلى” على وحدة التحكم الثالثة واليمين واليسار والأسفل على وحدة التحكم الرابعة (تتطلب هذه المجموعة الأخيرة بعض التلاعب بوحدة التحكم للسماح بإدخال الاتجاه الأيسر والأيمن في وقت واحد ). يؤدي القيام بذلك إلى إرسال رمز الانتقال إلى منطقة ذاكرة الوصول العشوائي (RAM) التي تحتوي على الأسماء والنتائج الخاصة بقائمة النتائج العالية للعبة، مما يوفر مساحة أكبر من ذاكرة الوصول العشوائي (RAM) يمكن للاعب معالجتها مباشرة.

من خلال وضع “(G” في الجزء المستهدف من جدول النتائج العالية للنوع B، يمكننا إجبار اللعبة على الانتقال إلى آخر منطقة جدول الدرجات العالية، حيث سيبدأ في قراءة الأسماء والنتائج بالتسلسل كما يسميها Displaced Gamers كود “المعدن العاري”، مع الحروف والأرقام التي تمثل أكواد التشغيل لوحدة المعالجة المركزية NES.

لسوء الحظ، لا يوجد سوى 43 رمزًا محتملاً يمكن استخدامها في منطقة إدخال الاسم و10 أرقام مختلفة يمكن أن تكون جزءًا من درجة عالية. وهذا يعني أن جزءًا صغيرًا فقط من تعليمات كود التشغيل المتاحة لـ NES يمكن “تشفيرها” في جدول النقاط العالية باستخدام سطح الهجوم المتاح.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *