ProHoster > بلوق > إدارة > عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء
عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء
إن عكس واختراق محركات الأقراص الخارجية ذاتية التشفير هي هوايتي القديمة. في الماضي، أتيحت لي الفرصة للتدرب على نماذج مثل Zalman VE-400، وZalman ZM-SHE500، وZalman ZM-VE500. مؤخرًا، أحضر لي أحد الزملاء معرضًا آخر: Patriot (Aigo) SK8671، والذي تم تصميمه وفقًا لتصميم نموذجي - مؤشر LCD ولوحة مفاتيح لإدخال رمز PIN. وهذا ما خرج منه…
يتم الوصول إلى البيانات المخزنة على القرص، والتي يفترض أنها مشفرة، بعد إدخال رمز PIN. بعض الملاحظات التمهيدية حول هذا الجهاز:
لتغيير رمز PIN، يجب عليك الضغط على F1 قبل إلغاء القفل؛
يجب أن يتكون رمز PIN من 6 إلى 9 أرقام؛
بعد 15 محاولة غير صحيحة، يتم مسح القرص.
2. هندسة الأجهزة
أولاً، نقوم بتشريح الجهاز إلى أجزاء لفهم المكونات التي يتكون منها. المهمة الأكثر مملة هي فتح العلبة: الكثير من البراغي المجهرية والبلاستيك. بعد فتح العلبة، نرى ما يلي (انتبه إلى الموصل ذي الخمسة أسنان الذي قمت بلحامه):
2.1. اللوحة الرئيسية
اللوحة الرئيسية بسيطة للغاية:
أبرز أجزائه (انظر من الأعلى إلى الأسفل):
موصل لمؤشر LCD (CN1)؛
مكبر الصوت (SP1)؛
بي إم 25 إل دي 010 (تخصيص) محرك أقراص فلاش SPI (U2)؛
وحدة تحكم جميكرون JMS539 (تخصيص) لـ USB-SATA (U1)؛
موصل USB 3 (J1).
يقوم محرك الأقراص المحمول SPI بتخزين البرنامج الثابت لـ JMS539 وبعض الإعدادات.
2.2. لوحة مؤشر LCD
لا يوجد شيء رائع على لوحة LCD.
فقط:
مؤشر LCD من أصل غير معروف (ربما مع مجموعة خطوط صينية)؛ مع التحكم المتسلسل
موصل الشريط للوحة المفاتيح.
2.3. لوحة المفاتيح
عند فحص لوحة المفاتيح، تأخذ الأمور منحى أكثر إثارة للاهتمام.
هنا، على الجانب الخلفي، نرى موصل الشريط، بالإضافة إلى متحكم Cypress CY8C21434 PSoC 1 (فيما يلي سنسميه ببساطة PSoC)
يستخدم CY8C21434 مجموعة التعليمات M8C (انظر الوثائق). في [صفحة المنتج]( (http://www.cypress.com/part/cy8c21434-24ltxi) يشار إلى أنه يدعم التقنية كابسينس (الحل من Cypress، للوحات المفاتيح السعوية). هنا يمكنك رؤية الموصل ذي الخمسة أسنان الذي قمت بلحامه - وهذا هو الأسلوب القياسي لتوصيل مبرمج خارجي عبر واجهة ISSP.
2.4. النظر إلى الأسلاك
دعونا معرفة ما هو متصل هنا. للقيام بذلك، ما عليك سوى اختبار الأسلاك بمقياس متعدد:
تفسيرات لهذا المخطط المرسوم على الركبة:
تم وصف PSoC في المواصفات الفنية؛
الموصل التالي، الذي على اليمين، هو واجهة ISSP، والتي، بإرادة القدر، تتوافق مع ما هو مكتوب عنها على الإنترنت؛
الموصل الموجود في أقصى اليمين هو الطرف الطرفي لموصل الشريط بلوحة المفاتيح؛
المستطيل الأسود عبارة عن رسم لموصل CN1، المصمم لتوصيل اللوحة الرئيسية بلوحة LCD. يتم توصيل P11 وP13 وP4 بمنافذ PSoC 11 و13 و4 على لوحة LCD.
3. تسلسل خطوات الهجوم
الآن بعد أن عرفنا المكونات التي يتكون منها محرك الأقراص هذا، نحتاج إلى: 1) التأكد من أن وظيفة التشفير الأساسية موجودة بالفعل؛ 2) اكتشف كيفية إنشاء/حفظ مفاتيح التشفير؛ 3) ابحث عن المكان الذي سيتم فيه التحقق من رمز PIN بالضبط.
للقيام بذلك قمت بالخطوات التالية:
أخذ تفريغ البيانات من محرك أقراص فلاش SPI؛
حاولت تفريغ البيانات من محرك أقراص فلاش PSoC؛
التحقق من أن الاتصال بين Cypress PSoC وJMS539 يحتوي بالفعل على ضغطات مفاتيح؛
لقد تأكدت من أنه عند تغيير كلمة المرور، لا يتم الكتابة فوق أي شيء في محرك أقراص فلاش SPI؛
كان كسولًا جدًا بحيث لم يتمكن من عكس البرنامج الثابت 8051 من JMS539.
الاستفادة decode_spi.rbلتحليل النتائج والحصول على تفريغ.
يرجى ملاحظة أن هذا الأسلوب يعمل بشكل جيد بشكل خاص في حالة وحدة التحكم JMS539، حيث تقوم وحدة التحكم هذه بتحميل جميع البرامج الثابتة من محرك الأقراص المحمول في مرحلة التهيئة.
بعد أن قمت بتفريغ محرك أقراص فلاش SPI، توصلت إلى استنتاج مفاده أن مهمته الوحيدة هي تخزين البرامج الثابتة لجهاز التحكم JMicron، المدمج في وحدة التحكم الدقيقة 8051. لسوء الحظ، تبين أن تفريغ محرك أقراص فلاش SPI عديم الفائدة:
عند تغيير رمز PIN، يظل تفريغ محرك الأقراص المحمول كما هو؛
بعد مرحلة التهيئة، لا يتمكن الجهاز من الوصول إلى محرك الأقراص المحمول SPI.
3.2. استنشاق الاتصالات
هذه إحدى الطرق للعثور على الشريحة المسؤولة عن فحص الاتصالات للوقت/المحتوى محل الاهتمام. كما نعلم بالفعل، فإن وحدة التحكم USB-SATA متصلة بشاشة Cypress PSoC LCD عبر الموصل CN1 وشريطين. ولذلك، نقوم بتوصيل المجسات إلى الأرجل الثلاثة المقابلة:
P4، الإدخال/الإخراج العام؛
P11، I2C سكل؛
P13، I2C SDA.
ثم نقوم بتشغيل محلل منطق Saleae وندخل على لوحة المفاتيح: "123456~". ونتيجة لذلك، نرى الرسم البياني التالي.
يمكننا أن نرى عليه ثلاث قنوات لتبادل البيانات:
هناك عدة رشقات نارية قصيرة على القناة P4؛
على P11 وP13 - تبادل البيانات بشكل مستمر تقريبا.
عند تكبير الارتفاع الأول على القناة P4 (المستطيل الأزرق في الشكل السابق)، نرى ما يلي:
هنا يمكنك أن ترى أنه يوجد على P4 ما يقرب من 70 مللي ثانية من الإشارة الرتيبة، والتي بدا لي في البداية أنها تلعب دور إشارة الساعة. ومع ذلك، بعد قضاء بعض الوقت في التحقق من تخميني، اكتشفت أن هذه ليست إشارة على مدار الساعة، ولكنها دفق صوتي يتم إخراجه إلى مكبر الصوت عند الضغط على المفاتيح. ولذلك، فإن هذا القسم من الإشارة في حد ذاته لا يحتوي على معلومات مفيدة بالنسبة لنا. ومع ذلك، يمكن استخدامه كمؤشر لمعرفة متى يقوم PSoC بتسجيل الضغط على المفتاح.
ومع ذلك، فإن أحدث تدفق صوتي لـ P4 مختلف قليلاً: فهو صوت "رقم التعريف الشخصي غير الصالح"!
بالعودة إلى الرسم البياني لضغطات المفاتيح، وتكبير الرسم البياني للتدفق الصوتي الأخير (انظر المستطيل الأزرق مرة أخرى)، نحصل على:
هنا نرى إشارات رتيبة على P11. لذا يبدو أن هذه هي إشارة الساعة. وP13 عبارة عن بيانات. لاحظ كيف يتغير النمط بعد انتهاء الصفارة. سيكون من المثير للاهتمام أن نرى ما يحدث هنا.
البروتوكولات التي تعمل بسلكين هي عادةً SPI أو I2C، وتنص المواصفات الفنية على Cypress على أن هذه الأطراف تتوافق مع I2C، وهو ما نراه صحيحًا في حالتنا:
تقوم مجموعة شرائح USB-SATA باستمرار باستقصاء PSoC لقراءة حالة المفتاح، والتي تكون افتراضيًا "0". وبعد ذلك، عند الضغط على المفتاح "1"، يتغير إلى "1". يختلف الإرسال النهائي مباشرة بعد الضغط على "~" إذا تم إدخال رمز PIN خاطئ. ومع ذلك، في هذه اللحظة لم أتحقق مما يتم نقله بالفعل هناك. لكنني أظن أنه من غير المرجح أن يكون هذا مفتاح تشفير. على أي حال، راجع القسم التالي لفهم كيفية إزالة البرامج الثابتة الداخلية لـ PSoC.