عكس القرص الصلب الخارجي للتشفير الذاتي Aigo. الجزء 1: تشريح إلى أجزاء

هوايتي القديمة هي عكس قرصنة محركات الأقراص ذات التشفير الخارجي. في الماضي ، كنت أمارس نماذج مثل Zalman VE-400 و Zalman ZM-SHE500 و Zalman ZM-VE500. في الآونة الأخيرة ، أحضرني أحد الزملاء معرضًا آخر: Patriot (Aigo) SK8671 ، والذي تم تصميمه وفقًا لتصميم نموذجي - مؤشر LCD ولوحة مفاتيح لإدخال رمز PIN. هنا ما جاء منه ...


1. مقدمة
2. هندسة الأجهزة
- 2.1. اللوحة الرئيسية
- 2.2. لوحة LCD
- 2.3. لوحة المفاتيح
- 2.4. نحن ننظر إلى الأسلاك
3. تسلسل خطوات الهجوم
- 3.1. إزالة تفريغ البيانات من محرك أقراص فلاش SPI
- 3.2. شم الاتصالات




1. مقدمة



إسكان



حزم


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


  • لتغيير الرمز السري ، اضغط F1 قبل إلغاء القفل ؛
  • يجب أن يتراوح الرقم السري بين 6 و 9 أرقام ؛
  • بعد 15 محاولة غير صحيحة ، يتم مسح القرص.


2. هندسة الأجهزة


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




2.1. اللوحة الرئيسية


اللوحة الرئيسية بسيطة جدا:



أجزائه البارزة (انظر من الأعلى إلى الأسفل):


  • موصل LCD (CN1) ؛
  • مكبر الصوت (SP1) ؛
  • Pm25LD010 ( مواصفات ) محرك أقراص فلاش SPI (U2) ؛
  • وحدة تحكم Jmicron JMS539 ( مواصفات ) لـ USB-SATA (U1) ؛
  • موصل USB 3 (J1).

يخزن محرك أقراص فلاش SPI البرامج الثابتة لجهاز JMS539 وبعض الإعدادات.



2.2. لوحة LCD


لا يوجد شيء رائع على لوحة LCD.




فقط:


  • مؤشر LCD من أصل غير معروف (ربما مع مجموعة الخطوط الصينية) ؛ مع التحكم التسلسلي.
  • موصل الشريط لوحة المفاتيح.


2.3. لوحة المفاتيح


عندما تنظر إلى لوحة المفاتيح ، تأخذ الأمور لمسة أكثر إثارة للاهتمام.



هنا ، على الجانب الخلفي ، نرى موصل الشريط ، وكذلك Cypress CY8C21434 - متحكم PSoC 1 (يشار إليه فيما يلي باسم PSoC ببساطة)



يستخدم CY8C21434 مجموعة التعليمات M8C (انظر الوثائق ). في صفحة المنتج ، يشار إلى أنها تدعم تقنية CapSense (حل من Cypress ، لوحات المفاتيح بالسعة). هنا أستطيع أن أرى الرابط المكون من خمسة أسنان ملحومًا بي - وهذا هو النهج القياسي لتوصيل مبرمج خارجي عبر واجهة ISSP.



2.4. نحن ننظر إلى الأسلاك


دعنا نتعرف على ما هو مرتبط بهذا. للقيام بذلك ، يكفي رنين الأسلاك بمقياس متعدد:



توضيحات لهذا المخطط المرسوم بالركبة:


  • ويرد وصف PSoC في المواصفات الفنية ؛
  • الموصل التالي ، الموصل الموجود على اليمين هو واجهة ISSP ، والتي تتوافق ، بناءً على إرادة القدر ، مع ما هو مكتوب عنها على الإنترنت ؛
  • الموصل الموجود في أقصى اليمين هو محطة لموصل الشريط مع لوحة مفاتيح ؛
  • المستطيل الأسود عبارة عن رسم للموصل CN1 ، المصمم لتوصيل اللوحة الرئيسية بلوحة LCD. P11 و P13 و P4 - متصل بأرجل PSoC 11 و 13 و 4 على لوحة LCD.


3. تسلسل خطوات الهجوم


الآن بعد أن عرفنا المكونات التي يتكون منها محرك الأقراص هذا ، نحتاج إلى: 1) التأكد من أن وظيفة التشفير الأساسية موجودة بالفعل ؛ 2) اكتشف كيف يتم إنشاء / تخزين مفاتيح التشفير ؛ 3) العثور على المكان الذي يتم التحقق بالضبط pincode.


للقيام بذلك ، قمت بالخطوات التالية:


  • إزالة تفريغ بيانات محرك أقراص فلاش SPI ؛
  • حاولت إزالة تفريغ البيانات من محرك أقراص فلاش PSoC ؛
  • تأكد من أن تبادل البيانات بين Cypress PSoC و JMS539 يحتوي بالفعل على المفاتيح المضغوطة ؛
  • تأكد من أنه عند تغيير كلمة المرور ، لا يتم الكتابة على أي شيء في محرك أقراص فلاش SPI ؛
  • كان كسول جدا لعكس البرامج الثابتة 8051 من JMS539.


3.1. إزالة تفريغ البيانات من محرك أقراص فلاش SPI


هذا الإجراء بسيط للغاية:


  • توصيل المجسات بأرجل محرك الفلاش: CLK ، MOSI ، MISO و (اختياري) EN ؛
  • الاتصالات "الشم" باستخدام الشم باستخدام محلل المنطق (كنت Saleae Logic Pro 16 ) ؛
  • فك تشفير بروتوكول SPI وتصدير النتائج إلى CSV ؛
  • استخدم decode_spi.rb لتحليل النتائج والحصول على تفريغ.

يرجى ملاحظة أن هذا النهج في حالة جهاز التحكم JMS539 يعمل بشكل جيد ، نظرًا لأن وحدة التحكم هذه تقوم بتحميل البرنامج الثابت بالكامل من محرك أقراص فلاش USB أثناء مرحلة التهيئة.


$ decode_spi.rb boot_spi1.csv dump 0.039776 : WRITE DISABLE 0.039777 : JEDEC READ ID 0.039784 : ID 0x7f 0x9d 0x21 --------------------- 0.039788 : READ @ 0x0 0x12,0x42,0x00,0xd3,0x22,0x00, [...] $ ls --size --block-size=1 dump 49152 dump $ sha1sum dump 3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump 

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


  • عند تغيير رمز PIN ، يظل تفريغ محرك الأقراص المحمول كما هو ؛
  • بعد مرحلة التهيئة ، لا يصل الجهاز إلى محرك أقراص فلاش SPI.


3.2. شم الاتصالات


هذه هي إحدى الطرق للعثور على الشريحة المسؤولة عن التحقق من الاتصالات للوقت / المحتوى محل الاهتمام. كما نعلم بالفعل ، يتم توصيل وحدة تحكم USB-SATA بشاشة LCD Cypress PSoC من خلال موصل CN1 وشريطين. لذلك ، فإننا نربط المجسات بالأرجل الثلاثة المقابلة:


  • P4 ، المدخلات / المخرجات العامة ؛
  • P11، I2C SCL؛
  • P13 ، I2C SDA.


ثم نبدأ تشغيل محلل منطق Saleae ، وأدخل على لوحة المفاتيح: "123456 ~". نتيجة لذلك ، نرى الرسم البياني التالي.



على ذلك يمكننا أن نرى ثلاث قنوات لتبادل البيانات:


  • تحتوي القناة P4 على عدة رشقات قصيرة ؛
  • على P11 و P13 - تبادل البيانات المستمر تقريبا.

بزيادة الدفعة الأولى على القناة P4 (المستطيل الأزرق من الشكل السابق) ، نرى ما يلي:



هنا يمكنك أن ترى أنه في P4 يوجد ما يقرب من 70 مللي ثانية من الإشارة الموحدة ، والتي ، كما بدا لي في البداية ، تلعب دور إشارة الساعة. ومع ذلك ، بعد أن قضيت بعض الوقت في محاولة التحقق من حدسي ، وجدت أن هذه ليست إشارة ساعة ، ولكن دفق الصوت الذي يتم إخراج إلى squeaker عند الضغط على المفاتيح. لذلك ، لا يحتوي قسم الإشارة نفسه على معلومات مفيدة لنا. ومع ذلك ، يمكن استخدامه كمؤشر - لمعرفة اللحظة التي يسجل فيها PSoC ضغطة مفتاح.


ومع ذلك ، فإن الدفق الصوتي الأخير لقناة P4 يختلف قليلاً عن الآخر: هذا هو صوت "الرمز السري الخاطئ"!


بالعودة إلى مخطط ضربات المفاتيح ، عند زيادة الرسم البياني لآخر دفق صوتي (انظر مرة أخرى المستطيل الأزرق) نحصل على:



هنا نرى إشارات رتابة على P11. لذلك يبدو أن هذه هي الساعة. و P13 هي البيانات. لاحظ كيف يتغير النمط بعد نهاية الصفير. سيكون من المثير للاهتمام معرفة ما يحدث هنا.


عادةً ما تكون البروتوكولات التي تعمل مع سلكين هي SPI أو I2C ، وتقول المواصفات التقنية لـ Cypress أن هذه الاتصالات تتوافق مع I2C ، وهو ، كما نرى ، صحيح بالنسبة لحالتنا:



تقوم مجموعة شرائح USB-SATA باستقصاء PSoC باستمرار - لقراءة حالة المفتاح ، والتي يتم تعيينها افتراضيًا على "0". ثم ، عندما تضغط على المفتاح "1" ، يتغير إلى "1". يختلف ناقل الحركة النهائي ، بعد الضغط مباشرة على "~" ، في حالة إدخال رمز PIN غير الصحيح. ومع ذلك ، في الوقت الحالي لم أفحص ما الذي تم نقله بالفعل هناك. لكني أظن أن هذا بالكاد مفتاح تشفير. على أي حال ، راجع القسم التالي لفهم كيفية إزالة تفريغ البرامج الثابتة PSoC الداخلية.

Source: https://habr.com/ru/post/ar455515/


All Articles