حماية القرصنة على Xbox 360 (الجزء 1)

صورةربما سمعت عن وحدة تحكم ألعاب Xbox 360 ، وأنها "تومض". يقصد بـ "البرامج الثابتة" هنا تجاوز آليات الحماية المضمنة لإطلاق نسخ من الألعاب والبرامج الاحتكارية. وهنا تطرح الأسئلة! ما هي الآليات وكيف يتنقلون؟ ماذا فعل المطورون ، وكيف تمكنوا من الالتفاف عليه؟ في الواقع ، الموضوع واسع للغاية ومثير للاهتمام ، خاصة بالنسبة لـ Xbox 360 - هنا يمكنك العثور على ثغرات البرامج ، وعيوب الأجهزة ، والسحر السحري تمامًا. مثير للإعجاب؟ اسقط فى! في الجزء الأول ، نتعرف على برنامج Hypervisor ومحركات الأقراص والبرامج الثابتة ...


قابل الموضوع


تم إصدار وحدة تحكم ألعاب Xbox 360 في عام 2005 ولم تخضع لتغييرات في خصائص الحديد منذ ذلك الحين. طوال الوقت الذي تم إصداره فيه ، كانوا متشابهين:

  • 3.2 جيجا هرتز PowerPC CPU ، / 3 نوى
  • 500 ميجا هرتز GPU
  • 512 ميجابايت رام
  • SATA DVD-ROM
  • SATA HDD (اختياري)

نعم ، تغير التصميم بمرور الوقت ، وانخفضت النانومتر:


ومع ذلك ، عملت جميع الألعاب بشكل جيد على قدم المساواة على جميع "مراجعات" وحدات التحكم - وهذا هو الحال تمامًا عندما يمكن تشغيل الألعاب الحديثة على معدات 2005.

في وقت الإصدار ، تم إصدار بيان صاخب بأن وحدة التحكم تم تطويرها بأكبر قدر ممكن من الأمان - رقائق مخصصة مع حماية على مستوى الأجهزة ، وبشكل عام ، لم ير المتسللون هذا بعد:
ستكون هناك مستويات أمان في هذا المربع لم يشاهدها مجتمع القراصنة من قبل

ما الذي توصل إليه المطورون؟

أولاً ، فعلوا كل شيء حتى لا يمكن الحصول على رمز برنامج النظام . تم إنشاء قرص مدمج سعة 32 كيلوبايت يحتوي على محمل أساسي (1BL) وذاكرة وصول عشوائي (RAM) سعة 64 كيلوبايت تم تنفيذه فيها في المعالج المركزي. من الصعب جدًا الحصول على محتويات ROM من شريحة CPU:


ثانيًا ، تم وضع الصمامات الخاصة في نفس المعالج - وصلات حرق (حرفيا ، الجهد العالي) ، وهو نوع من الذاكرة القابلة للبرمجة مرة واحدة. وشملت الصمامات:

  • بتات قفل واجهة JTAG
  • البتات التي تحدد الغرض من البادئة (retail / devkit / testkit)
  • مفتاح معالج فريد 128 بت
  • عدادات قيمة التأمين (LDV) لتعطيل الرجوع إلى إصدار أقدم


نعم ، كمية الانصهار محدودة. إذا تمكنت من تحديث وحدة التحكم الخاصة بك 80 مرة متتالية ، فسوف ينتهي عداد CFLDV و ... لا أعرف ، لم أحاول القيام بذلك. ربما لن يتم تحديث البادئة.

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


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


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

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

ونتيجة لذلك ، كان نظام التشغيل Xbox 360 محميًا بشكل جيد ، وبالتالي ، تم اختيار DVD-ROM كأول ناقل للهجوم.

نبدأ ... النسخ الاحتياطية!


في Xbox 360 ، تم اختيار قرص DVD ثنائي الطبقة كوسيلة رئيسية للألعاب. بطبيعة الحال ، كانت آليات الدفاع موجودة أيضًا هنا:

  • تم تشفير تبادل البيانات مع DVD-ROM بمفتاح فريد
  • في بداية القرص كانت هناك "قطاعات أمنية" خاصة لتأكيد الترخيص
  • تم توقيع الملفات القابلة للتنفيذ على القرص رقميا

ولكن تم إيلاء اهتمام أقل لحماية محرك أقراص DVD من النظام الرئيسي. أظهرت وحدة التحكم في الألعاب ثقة كبيرة للغاية بمحرك أقراص DVD - كان محرك أقراص DVD هو الذي حدد ترخيص القرص. علاوة على ذلك ، تم تخزين البرامج الثابتة في ذاكرة خارجية ويمكن قراءتها من قبل المبرمج:


ونتيجة لذلك ، في 14 مايو 2006 ، أصدرت كومودور فوريفا (c4eva) أول برنامج ثابت معدل لدفع نموذج TS-H943:

اقرأ لإصدار البرامج الثابتة
— Xtreme firmware for TS-H943 Xbox 360
— Here it is, the long awaited World first Xbox 360 backup firmware modification to boot all game backups!

Features
— Boots all Xtreme Xbox 360 backups
Boots all Xtreme Xbox 1 backups
Boots all Xbox 360 originals
Boots all Xbox 1 originals on Xbox 360
Xtreme0800 extraction firmware enables drive to function natively under Windows without any hardware conversion/adaptors
Use on Xbox Live at own risk

Technical details
— Reads Xbox 360 security sector from PSN 04FB1F (Layer 0)
Reads Xbox 1 security sector from PSN 605FF (Layer 0)
Security sector must be extrated using Xtreme0800 360 firmware for Xbox360 games and Xbox 1 games
Will not boot Xbox 1 backups made with Xbox1 605b 0800 firmware (maybe in future release)

تقرأ البرامج الثابتة قطاعات الأمان من المناطق الثابتة على قرص DVD وتخدع وحدة التحكم ، مما يجعلها تعتقد أنه تم إدخال قرص مرخص.

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

اقرأ عن استخدام البرامج الثابتة 0800
Extracting Security Sector
— Ensure DVD drive has been flashed with Xtrm0800.bin firmware. Drive can now work under Windows.
Insert original game disk into drive and wait for windows to detect disk change
Run DVDinfoPro
Enter the following four custom cdb commands:

AD 00 FF 02 FD FF FE 00 08 00 01 C0
AD 00 FF 02 FD FF FE 00 08 00 03 C0
AD 00 FF 02 FD FF FE 00 08 00 05 C0
AD 00 FF 02 FD FF FE 00 08 00 07 C0

Then save hexadecimal display as bin file as SS.bin

Creating a game backup
— Ensure DVD drive has been flashed with Xtrm0800.bin firmware. Drive can now work under Windows.
Extract Isobuilder.rar
Insert original game disk into drive and wait for windows to detect disk change
Run DVDinfoPro
Enter the following custom cdb command to unlock drive: (game data visable)

FF 08 01 01

Run Isobuster
Right click on DVD and select Extract From-To
Click Length and enter number of LBAs as follows:

Xbox 1 Original Number of LBA to read 3431264 decimal
or
Xbox 360 Original Number of LBA to read 3567872 decimal
Select User Data (2048 bytes/block)
Click Start Extraction
Enter filename as game.iso and click Save
Upon read error dialogue box choose fill with blank zeros for sector and select use this selection for all errors
Copy game.iso and ss.bin to the relevent isobuilder directory (Depending on Xbox 360 or Xbox 1 game)
Run build360.bat (Xbox 360 game) or build.bat (xbox 1 game)
Ensure your burner will set the booktype of DVD+R DL to DVDRom
Burn with CloneCd and choose the image.dvd file

يمكن نسخ لعبة أخرى جزئيًا بالحيلة التالية:

  • وضع في قرص DVD-ROM للكمبيوتر العادي ثنائي الطبقات
  • انتظر حتى يهدأ ويتوقف عن الدوران
  • باستخدام مشبك ورق ، افتح الدرج وقم بتغيير محرك الأقراص إلى اللعبة من Xbox 360
  • أغلق الدرج واصنع صورة قرص!

(لم يعمل على جميع طرز DVD-ROM)

الشيء الأكثر أهمية هو أن محرك الأقراص تم وميضه حصريًا بواسطة برنامج ، مع أوامر ATA خاصة. تضمنت المجموعة برنامجًا خاصًا لقراءة البرامج الثابتة الأصلية والكتابة المعدلة. في البرنامج الثابت الأصلي ، تم تخزين المفتاح الذي تم تعينه ، حيث تم ربط محرك الأقراص بجهاز Xbox 360:


يعني فقدان المفتاح أنه حتى الأقراص المرخصة لا يمكن إطلاقها ، لذلك كتب البعض المفتاح في دفتر ملاحظات ، وحفظه حيثما أمكن ذلك ، كانت هذه هي أعز المعارف.

كان موضوع منفصل هو الذعر حول اللعبة عبر الإنترنت. كان الجميع يخشون أن تكتشف Microsoft أن محرك الأقراص قد تم تعديله وتعطيل وحدة التحكم عن بُعد. حتى أن البعض قام بعمل تعديل في الأجهزة للتبديل بين المصنع والبرامج الثابتة المعدلة:


لقد لعبوا على البرامج الثابتة الأصلية "بالترخيص" ، ومن خلال الاتصال بالشبكة ، قاموا بفصلهم بشكل مخجل على كابل الإنترنت المعدل. بالمناسبة ، لم يكن الذعر هباءً ، لكن هذه التعديلات كانت هباءً تمامًا ، وتم تسجيل كل شيء دون الاتصال بالشبكة.

بعد شهر واحد بالضبط (15 يونيو 2006) ، تم نقل البرامج الثابتة إلى طراز محرك أقراص آخر ، تم تثبيته في Xbox 360 في ذلك الوقت - Hitachi GDR3120L. كان لديه أيضًا محرك أقراص محمول خارجي يحتوي على برامج ثابتة:


كان محرك الأقراص هذا محميًا بشكل أفضل:

  • تم تخزين البرامج الثابتة في ROM في شكل مشفر
  • كان هناك التحكم في النزاهة في البرامج الثابتة
  • لاستبدال البرامج الثابتة ، كان عليك الذهاب إلى "الوضع B" الخاص

وإذا تمكن الباحثون من إدارة النقطتين الأوليين بأنفسهم ، فسيتم تكرار عمل الترجمة في "الوضع B" من قبل جميع الوماضين الشباب .

تم اقتراح هذا الإجراء ليتم تنفيذه باستخدام قرص تمهيد خاص مع Slax Linux ، أو عن طريق تقصير الأسلاك عند بدء التشغيل. كان من الضروري تقصير جهات الاتصال 0 و 9 من موصل طاقة المحرك. على سبيل المثال ، مع دبابيس!


في كلتا الحالتين ، بعد هذه الانتهاكات ، تم تعريف محرك الأقراص في Windows على أنه محرك أقراص DVD عادي ، حيث تم التقاطه واغتصابه وخياطته.


بعد الإصدار الأول ، تم الانتهاء من البرامج الدائمة المخصصة ، وتم تحسين الاستقرار ، وأضيف دعم الألعاب الجديدة ، بشكل عام ، كان كل شيء على النحو المعتاد.

إجابة مايكروسوفت


أجاب مطورو الادعاءات القائلة بأن وحدة التحكم "غير القابلة للكسر" تم اختراقها ، فأجابوا ببساطة:
لم يتم اختراق النظام ، لقد تعلمنا للتو كيفية إطلاق نسخ من الألعاب ، ونحن نعمل على ذلك
الجواب الأصلي
The core security system has not been broken. However, it is reported that the authentication protocol between the optical disc drive and the console may be attacked, which if accurate could allow people to play illegally copied games. Our security team is aware of this and we are investigating potential solutions to this issue. The Xbox 360 platform was designed to be updated, and we are prepared to respond appropriately should any unauthorized activity be identified.

ما تم فعله لتصحيح الوضع:

  • بدأ Samsung TS-H943 يأتي مع البرامج الثابتة ms28 ، التي لم تدخل وضع البرامج الثابتة بواسطة أمر ATA المعروف جيدًا
  • ظهرت Hitachi GDR3120L مع البرامج الثابتة 0078 و 0079 ، ولا تومض حتى في الوضع B
  • تظهر محركات الأقراص BenQ-LiteOn VAD6038 الجديدة
  • بدأ أول "منع" للقراصنة على Xbox Live ، وتم منع القراصنة من اللعب عبر الإنترنت إلى الأبد

إذا كان كل شيء لا لبس فيه ولا يمكن إصلاحه مع الحظر (في ذلك الوقت) ، سرعان ما اكتشف الباحثون محركات الأقراص:

  • وجدت شركة هيتاشي فتح وضع البرامج الثابتة من خلال قرص صوتي خاص

  • ذهب Samsung ms28 و BenQ VAD6038 بشكل مثالي إلى وضع البرامج الثابتة عبر وحدات تحكم SATA VIA 6421 غير المكلفة


دعونا نترك ساحة المعركة للبرامج الثابتة لفترة من الوقت ، لم تكن هناك فترة مثيرة للاهتمام عندما حاول الباحثون إنشاء البرامج الثابتة "Stealth" بحيث لا يحظرونها على Xbox Live ، والتكيف مع الألعاب الجديدة مع "موجات" جديدة - إصدارات تحديث النظام ونقل النتائج إلى كل شيء مجموعة متنوعة من البرامج الثابتة ومحركات الأقراص. على الرغم من كل ذلك ، تم خياطة كل شيء ، وتم إطلاق "النسخ الاحتياطية" بنجاح ، واكتسبت أجهزة Xbox 360 شعبية بين الناس ...

كسر المحور!


كما تتذكر من الجزء الأول من القصة ، كان لدى نظام Xbox 360 مراقب مراقبة يتحكم في كل شيء وكل شيء. حتى هنا. في أحد إصدارات النظام ، ظهرت فجأة ثغرة فيه! من غير المؤكد كيف استقبل الباحثون بالضبط عينات كود برنامج hypervisor. لكن الحقيقة هي أنه في نهاية عام 2006 ، أطلق الباحثون كودًا غير موقع على Xbox 360 ، وفي أوائل عام 2007 تم إصلاح الثغرة من قبل المطورين:
Timeline:
Oct 31, 2006 — release of 4532 kernel, which is the first version containing the bug
Nov 16, 2006 — proof of concept completed; unsigned code running in hypervisor context
Nov 30, 2006 — release of 4548 kernel, bug still not fixed
Dec 15, 2006 — first attempt to contact vendor to report bug
Dec 30, 2006 — public demonstration
Jan 03, 2007 — vendor contact established, full details disclosed
Jan 09, 2007 — vendor releases patch
Feb 28, 2007 — full public release

كان لدى برنامج مراقبة الأجهزة الافتراضية ميزة واحدة - على عكس باقي التعليمات البرمجية ، فقد تم تنفيذه ليس في مساحة العنوان الافتراضية ، ولكن في الوضع الفعلي (الوضع الحقيقي). لم يتم استخدام البث ، تم إجراء المكالمات مباشرة (عناوين النموذج 0x00000000'xxxxxx). إما أن يتم ذلك من أجل السرعة ، أو من أجل البساطة ... وهنا كانت إحدى ميزات مساحة عنوان Xbox 360.

تم تحديد وضع الوصول إلى الذاكرة من خلال عنوانها الفعلي. أي أن أهم أجزاء العنوان لها غرض رسمي. على سبيل المثال ، يعني العنوان 0x00000 0 00'0000201C الوصول المباشر إلى العنوان 0x201C ، ويعني 0x00000 1 00'0000201C أنك بحاجة إلى فك التشفير والتحقق من السلامة أثناء التنقل عند قراءة العنوان الفعلي نفسه 0x201C.


وفقًا لذلك ، لتنفيذ التنفيذ مع تمكين التشفير والحماية ، تحتاج إلى الرجوع إلى عناوين مثل 0x00000 1 00'xxxxxxxx. عندها فقط تضمنت وحدة الأجهزة آليات الحماية. لذلك ، على مستوى الأجهزة ، تمت إضافة البت المطلوب تلقائيًا (كان سجل HRMOR الخاص هو المسؤول عن ذلك - تسجيل إزاحة الوضع الحقيقي Hypervisor)!

مرة أخرى - بمجرد أن يصل المشرف إلى عنوان مثل 0x00000 0 00'xxxxxxxx ، تقوم MMU تلقائيًا بتغيير هذا العنوان إلى 0x00000 1 00'xxxxxxxx ، بما في ذلك التشفير والحماية! إذن أي محاولات لتنفيذ الرمز "مباشرة" من الذاكرة الفعلية ، بدون حماية وتشفير ، محكوم عليها بالفشل ... أم لا؟

دعنا نلقي نظرة على الرمز الضعيفة للإصدار 4532 من برنامج Hypervisor:
// %r0 –
13D8: cmplwi %r0, 0x61 // ID
13DC: bge illegal_syscall // 0x61, ,
...
13F0: rldicr %r1, %r0, 2, 61 // 4
13F4: lwz %r4, syscall_table(%r1) //
13F8: mtlr %r4 // lr
...
1414: blrl //

ترى غوفر؟ لكنه! تعمل تعليمات Cmplwi مع قيم 32 بت ، ولكن rldicr - مع 64 بت ! أي أنه يمكننا تمرير القيمة 0x20000000'0000002A كرقم استدعاء النظام ، وسوف تجتاز الاختبار (لأن الجزء 32 بت السفلي أقل من 0x61) ، ونتيجة لذلك ، بدلاً من العنوان 0x10EC ، سيتم أخذ عنوان المعالج من 0x80000000'000010EC!

ثم ، كما يقولون ، راقبوا يديك. أهم أجزاء العنوان لا تساوي صفر ، على التوالي ، لا تتم إضافة HRMOR ! ونظرًا لأن مساحة العنوان الحقيقية هي 32 بت ، يتم ببساطة تجاهل 63 بت التي حددناها. لقد قمنا بإعادة توجيه برنامج Hypervisor إلى ذاكرة غير مشفرة وغير آمنة ، وذلك ببساطة عن طريق إرسال رقم استدعاء نظام غير صحيح!


ولكن انتظر ، حتى يكون هناك مكان للقفز ، نحتاج إلى أن نكون قادرين على كتابة بياناتنا إلى الذاكرة الفعلية. كيفية تحقيق ذلك؟

هنا يأتي دور العامل الثاني - كانت وحدة معالجة الرسومات على جهاز Xbox 360 ذكية ، حتى ذكية للغاية . أيد تعليمات تظليل خاصة ، MemExport ، لتحميل البيانات الهندسية إلى الذاكرة الفعلية. أي أنه يمكنك تجميع التظليل وتنفيذه على وحدة معالجة الرسومات وبالتالي تسجيل أي شيء في أي مكان! والأهم من ذلك ، لم يتم توقيع تظليل ، إذا قمت بتعديل قرص اللعبة بأي شكل من الأشكال ، يمكنك بسهولة استبدال رمز تظليل.


بقي سؤال واحد. كيف تستبدل كود التظليل على قرص اللعبة؟ وهنا كان اختراق محرك أقراص DVD لوحدة التحكم مفيدًا جدًا. كتبنا شادر واستبدلناه في صورة اللعبة وسجلناه على قرص وأطلقنا لينكس!

نعم ، لتشغيلها ، كان علي أن أبدأ اللعبة في كل مرة ، انتظر حتى تعمل برمجية إكسبلويت ، ضع قرص التمهيد مع لينكس ، لكن هذا كان شيئًا على الأقل!

كما ذكرنا من قبل ، أصدرت Microsoft تحديثًا لنظام تم فيه إصلاح ضعف برنامج المراقبة الافتراضية. ولكن ماذا لو أعادت نواة ضعيفة؟

تخفيض!


بشكل عام ، تم وضع بنية Xbox 360 آليات حماية من الرجوع إلى إصدار أقدم. في مصهرات أجهزة المعالج ، في كل مرة يتم فيها حرق جزء صغير أثناء التحديث (زيادة قيمة القفل ، زيادة LDV) ، وإذا لم يتطابق LDV هذا في المصاهر وفي النظام ، فلن تبدأ وحدة التحكم ببساطة.

ضع في اعتبارك بنية أداة تحميل Xbox 360 ، وهي "أقسام Bootloader":


يمكن ملاحظة أن هناك عدة مجموعات من لوادر الإقلاع في الصورة ، كل منها يتوافق مع بعض LDV. في المثال ، هذه هي 1888 لـ LDV 0 و 16767 لـ LDV 3 و 16756 لـ LDV 2

لذا ، تم تسجيل جميع تحديثات النظام نفسه في الأقسام 6BL / 7BL و "تم تطبيقها" ببساطة كبقع على "الأساسية" الأساسية 5BL 1888 . ولكن تم تحديد مجموعة التصحيحات المطلوب تطبيقها وفقًا لـ LDV الموصوف في المصاهر ورؤوس أداة تحميل التشغيل! وفقط 5BL يمكن تعديل الرأس ، مع BUT واحد كبير - تم فحص الرأس مقابل مجموع تجزئة HMAC-SHA-1 المسجل فيه. وتم فحصه بواسطة memcmp العادي .

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

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


بعد لحام هذه النقاط ، يمكنك فقط قياس وقت التنفيذ لكل مرحلة من مراحل التنزيل ومعرفة ما إذا كان هناك خطأ.

تستغرق عملية اختيار التجزئة بأكملها حوالي ساعة:


ونتيجة لذلك ، نحصل على صورة يتم فيها تثبيت LDV الحالي للنواة الأساسية ، بسبب عدم تطبيق أي تصحيحات وإطلاق أقدم إصدار من نظام 1888! من حيث يمكن بالفعل الترقية إلى الإصدار الضعيفة 4532:



بالطبع ، قامت Microsoft بإصلاح هذه الثغرة الأمنية من خلال تحديث أول أداة تحميل تمهيد محدثة (2BL ، "CB") وحرق فتيل CBLDV ، مما جعل الرجوع إلى إصدار مستحيل مرة أخرى. الآن بدلاً من memcmp ، تم استخدام نسخته الآمنة ، مع نفس وقت التشغيل بغض النظر عن قيم الإدخال.

JTAG هاك!


لكن هنا ، لم يستسلم الباحثون ووجدوا ثغرة. نعم ، لدرجة أن المطورين لا يمكنهم حتى تخيلها.

في الوضع العادي لتشغيل وحدة التحكم ، يتم توصيل جميع أجهزة تحميل التمهيد ببعضها البعض في سلسلة. ونتيجة لذلك ، يعتمد فك تشفير كل محمّل إقلاع على منطقة البيانات في رأس محمّل التمهيد السابق (بيانات الاقتران). بالإضافة إلى ذلك ، يعتمد تشفير الرمز على مفتاح المعالج الفريد ، لذا لا يمكنك التقاط وتجميع صورة عاملة بدون معرفة CPU_Key. أم أنه ممكن؟

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


أي أن لعبة كينغ كونغ لا يمكن أن تبدأ ، ولا يمكن تفعيل الاستغلال من خلال التظليل ... لكن النواة الضعيفة بدأت بالفعل! ربما هناك طريقة أخرى لتسجيل ذاكرة الوصول العشوائي؟ اتضح أن هناك.

بالنسبة للمبتدئين ، نقوم بحام ثلاث وحدات معالجة رسومية مجانية لوحدة التحكم الجنوبية لوحدة التحكم إلى دبابيس GPU JTAG:


ثم نقوم بتعديل البرامج الثابتة للجسر الجنوبي (إنه مشفر ، ولكن غير موقع) ونجمع الصورة مع النواة المعرضة للخطر. ثم يحدث السحر:

  • عند بدء التشغيل ، يتسلق الجسر الجنوبي على وحدة معالجة الرسوميات JTAG إلى PCI Express ويقوم بتكوين وحدة تحكم NAND
  • الآن ، عند القراءة ، ستكتب وحدة تحكم NAND البيانات إلى منطقة الذاكرة التي نحتاجها
  • يبدأ قلب النظام ويبلغ الجسر الجنوبي الذي بدأه النظام
  • يسحب الجسر الجنوبي وحدة تحكم NAND ، ويحل محل ذاكرة الوصول العشوائي في المكان الصحيح ويستغل ضعف برنامج hypervisor!
  • يتم نقل التحكم إلى رمزنا ، افعل ما نريد

باختصار ، لقد فعلوا كل شيء كما هو الحال في King Kong Shader Exploit ، ولكن أكثر برودة - ليست هناك حاجة لبدء اللعبة وتغيير الأقراص.

على أساس JTAG Hack ، تم إنشاء إصدارات معدلة من النظام - XBReboot ، Freeboot ، مع تعطيل التحقق من التوقيع ، حيث كان القراصنة يتجولون بالفعل. يمكن إطلاق الألعاب ليس فقط من محركات أقراص USB والأقراص ، ولكن أيضًا عبر بروتوكول SMB مباشرة من جهاز كمبيوتر.


الأهم من ذلك ، أن اختراق نظام كامل أعطى فرصة لأولئك الذين فقدوا مفتاح DVD ولم يتمكنوا من اللعب - فمع وجود مفتاح المعالج ، لم يكن من الصعب استخراج مفتاح DVD.

بالطبع ، قامت Microsoft هنا بإغلاق الثغرة بسرعة ، وتحديث 2BL مرة أخرى وزيادة قيمة CBLDV. في هذا الموضوع ، انتهت ملحمة برنامج Hypervisor الضعيفة ، ركض الناس لشراء بقايا وحدات تحكم "متوافقة مع JTAG" في المتاجر - أراد الجميع اللعب باستخدام محركات أقراص USB المحمولة دون أي مشاكل. جرت مناقشات في المنتديات حول الحزم التي يكون فيها تاريخ الإصدار مناسبًا للقرصنة ... وتعطل

موضوع التعديلات على نظام Xbox 360 لمدة عامين تقريبًا ، لكن موضوع البرامج الثابتة استمر في التطور. وفقط في البرامج الثابتة لمحركات LiteOn ، اندلعت أكبر معركة بين الباحثين ومايكروسوفت. ولكن المزيد عن ذلك في المقالة التالية :)

الروابط:

تقرير GoogleTechTalks
King Kong Hack
Timing Attack
JTAG / SMC Hack

Xbox 360 Hacking and Hacking، Part 1 Xbox 360
Protection and Hacking، Part 2
Xbox 360 Protection and Hacking، Part 3

PS أي شخص مهتم بالتفاصيل ، سأجيب عن أي أسئلة حول الموضوع في التعليقات!

All Articles