Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

O'z-o'zini shifrlaydigan tashqi drayverlarni teskari o'zgartirish va buzish - mening eski sevimli mashg'ulotim. Ilgari Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500 kabi modellar bilan mashq qilish imkoniga ega bo'ldim. Yaqinda bir hamkasb menga yana bir ko'rgazma olib keldi: Patriot (Aigo) SK8671, u odatiy dizaynga muvofiq qurilgan - LCD indikator va PIN kodni kiritish uchun klaviatura. Shundan kelib chiqqan narsa...

1. Kirish
2. Apparat arxitekturasi
– 2.1. Asosiy taxta
– 2.2. LCD ko'rsatkich paneli
– 2.3. Klaviatura paneli
– 2.4. Simlarga qarash
3. Hujum qadamlarining ketma-ketligi
– 3.1. SPI flesh-diskidan ma'lumotlarni yig'ish
– 3.2. Xushbo'y aloqalar

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish


1. Kirish

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish
uy-joy

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish
o'rash

Shifrlangan deb taxmin qilingan diskda saqlangan ma'lumotlarga kirish PIN-kod kiritilgandan so'ng amalga oshiriladi. Ushbu qurilma haqida bir nechta kirish eslatmalari:

  • PIN kodni o'zgartirish uchun qulfni ochishdan oldin F1 tugmasini bosishingiz kerak;
  • PIN-kod 6 dan 9 gacha raqamdan iborat bo'lishi kerak;
  • 15 ta noto'g'ri urinishdan so'ng, disk tozalanadi.

2. Apparat arxitekturasi

Birinchidan, biz qaysi komponentlardan iboratligini tushunish uchun qurilmani qismlarga ajratamiz. Eng zerikarli vazifa - bu ishni ochish: juda ko'p mikroskopik vintlardek va plastmassa. Kosonni ochib, biz quyidagilarni ko'ramiz (men lehimli besh pinli ulagichga e'tibor bering):

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

2.1. Asosiy taxta

Asosiy plata juda oddiy:

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Uning eng diqqatga sazovor qismlari (yuqoridan pastga qarab):

  • LCD indikator uchun ulagich (CN1);
  • tweeter (SP1);
  • Pm25LD010 (spetsifikatsiya) SPI flesh-disk (U2);
  • Jmicron JMS539 boshqaruvchisi (spetsifikatsiya) USB-SATA (U1) uchun;
  • USB 3 ulagichi (J1).

SPI flesh-diski JMS539 va ba'zi sozlamalar uchun proshivkani saqlaydi.

2.2. LCD ko'rsatkich paneli

LCD platada hech qanday diqqatga sazovor narsa yo'q.

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish
Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Bor yo `g` i:

  • Noma'lum kelib chiqishi LCD ko'rsatkichi (ehtimol, Xitoy shriftlari to'plami bilan); ketma-ket nazorat bilan;
  • Klaviatura paneli uchun lenta ulagichi.

2.3. Klaviatura paneli

Klaviatura panelini ko'zdan kechirayotganda, ishlar yanada qiziqarliroq tus oladi.

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Bu erda, orqa tomonda biz lenta ulagichini, shuningdek, Cypress CY8C21434 mikrokontroller PSoC 1 (bundan keyin biz uni oddiygina PSoC deb ataymiz)

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

CY8C21434 M8C ko'rsatmalar to'plamidan foydalanadi (qarang hujjatlar). [mahsulot sahifasida]( (http://www.cypress.com/part/cy8c21434-24ltxi) texnologiyani qo'llab-quvvatlashi ko'rsatilgan CapSense (Cypress-dan, sig'imli klaviaturalar uchun yechim). Bu erda siz men lehimlangan besh pinli ulagichni ko'rishingiz mumkin - bu tashqi dasturchini ISSP interfeysi orqali ulashning standart usuli.

2.4. Simlarga qarash

Keling, bu erda nima bog'liqligini aniqlaylik. Buning uchun simlarni multimetr bilan sinab ko'ring:

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Tiz ustida chizilgan ushbu diagramma uchun tushuntirishlar:

  • PSoC texnik spetsifikatsiyada tasvirlangan;
  • keyingi ulagich, o'ng tomonda, ISSP interfeysi bo'lib, u taqdirning irodasi bilan Internetda bu haqda yozilgan narsalarga mos keladi;
  • Eng o'ngdagi ulagich - bu klaviatura paneliga lenta ulagichi uchun terminal;
  • Qora to'rtburchak asosiy platani LCD plataga ulash uchun mo'ljallangan CN1 konnektorining chizilgan rasmidir. P11, P13 va P4 LCD platadagi PSoC pinlari 11, 13 va 4 ga ulangan.

3. Hujum qadamlarining ketma-ketligi

Endi biz ushbu disk qanday komponentlardan iboratligini bilamiz, biz quyidagilarni bajarishimiz kerak: 1) asosiy shifrlash funksiyasi haqiqatda mavjudligiga ishonch hosil qilish; 2) shifrlash kalitlari qanday yaratilishi/saqlanishini bilib oling; 3) PIN kod aniq qayerda tekshirilishini toping.

Buning uchun men quyidagi amallarni bajardim:

  • SPI flesh-diskidan ma'lumotlar to'plamini oldi;
  • PSoC flesh-diskidan ma'lumotlarni tashlashga harakat qildi;
  • Cypress PSoC va JMS539 o'rtasidagi aloqada aslida bosilgan tugmalar mavjudligi tasdiqlandi;
  • Parolni o'zgartirganda, SPI flesh-diskida hech narsa yozilmasligiga ishonch hosil qildim;
  • 8051 proshivkasini JMS539 dan qaytarish uchun juda dangasa edi.

3.1. SPI flesh-diskidan ma'lumotlarni yig'ish

Ushbu protsedura juda oddiy:

  • problarni flesh-diskning oyoqlariga ulang: CLK, MOSI, MISO va (ixtiyoriy) EN;
  • Mantiqiy analizator yordamida sniffer bilan aloqani "sniff" qiling (men ishlatganman Saleae Logic Pro 16);
  • SPI protokolini dekodlash va natijalarni CSV ga eksport qilish;
  • foydalaning decode_spi.rbnatijalarni tahlil qilish va dump olish.

Shuni esda tutingki, ushbu yondashuv JMS539 kontrollerida ayniqsa yaxshi ishlaydi, chunki bu kontroller ishga tushirish bosqichida flesh-diskdan barcha proshivkalarni yuklaydi.

$ 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 flesh-diskidan axlatni olib, men uning yagona vazifasi 8051 mikrokontrolleriga o'rnatilgan JMicron boshqaruv moslamasi uchun dasturiy ta'minotni saqlash degan xulosaga keldim. Afsuski, SPI flesh-diskini olib tashlash foydasiz bo'lib chiqdi:

  • PIN-kod o'zgartirilganda, flesh-disk chiqindisi bir xil bo'lib qoladi;
  • Ishga tushirish bosqichidan so'ng, qurilma SPI flesh-diskiga kirmaydi.

3.2. Xushbo'y aloqalar

Bu qiziqtirgan vaqt/mazmun uchun aloqalarni tekshirish uchun qaysi chip mas'ul ekanligini aniqlashning bir usuli. Biz allaqachon bilganimizdek, USB-SATA kontrolleri Cypress PSoC LCD-ga CN1 ulagichi va ikkita lenta orqali ulangan. Shuning uchun biz zondlarni uchta mos keladigan oyoqqa ulaymiz:

  • P4, umumiy kirish/chiqish;
  • P11, I2C SCL;
  • P13, I2C SDA.

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Keyin biz Saleae mantiqiy analizatorini ishga tushiramiz va klaviaturaga kiritamiz: "123456~". Natijada biz quyidagi diagrammani ko'ramiz.

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Unda biz uchta ma'lumot almashish kanalini ko'rishimiz mumkin:

  • P4 kanalida bir nechta qisqa portlashlar mavjud;
  • P11 va P13 da - deyarli uzluksiz ma'lumotlar almashinuvi.

P4 kanalidagi birinchi boshoqni (oldingi rasmdagi ko'k to'rtburchak) kattalashtirib, biz quyidagilarni ko'ramiz:

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Bu erda siz P4-da deyarli 70 ms monoton signal mavjudligini ko'rishingiz mumkin, bu menga dastlab soat signali rolini o'ynagandek tuyuldi. Biroq, taxminlarimni tekshirishga biroz vaqt sarflaganimdan so'ng, men bu soat signali emas, balki tugmalar bosilganda tvitterga chiqadigan audio oqim ekanligini aniqladim. Shuning uchun signalning ushbu bo'limining o'zi biz uchun foydali ma'lumotlarni o'z ichiga olmaydi. Biroq, u PSoC tugmani bosishni qachon qayd etishini bilish uchun indikator sifatida ishlatilishi mumkin.

Biroq, so'nggi P4 audio oqimi biroz boshqacha: bu "yaroqsiz PIN" uchun audio!

Klaviatura bosish grafigiga qaytsak, oxirgi audio oqim grafigini kattalashtirib (yana ko'k to'rtburchakka qarang), biz quyidagilarni olamiz:

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

Bu erda biz P11 da monoton signallarni ko'ramiz. Demak, bu soat signali kabi ko'rinadi. Va P13 ma'lumotdir. Ovozli signal tugagandan so'ng naqsh qanday o'zgarganiga e'tibor bering. Bu erda nima sodir bo'lishini ko'rish qiziq bo'lar edi.

Ikki sim bilan ishlaydigan protokollar odatda SPI yoki I2C bo'lib, Cypress-dagi texnik tavsifda bu pinlar I2C ga to'g'ri kelishi aytiladi, biz ko'rib turganimizdek, bu bizning holatlarimizda to'g'ri:

Aigo o'z-o'zini shifrlaydigan tashqi HDD diskini orqaga qaytarish va buzish. 1-qism: qismlarga ajratish

USB-SATA chipseti kalitning holatini o'qish uchun PSoC-ni doimiy ravishda so'raydi, sukut bo'yicha "0". Keyin, "1" tugmachasini bosganingizda, u "1" ga o'zgaradi. Agar noto'g'ri PIN kod kiritilgan bo'lsa, "~" tugmasini bosgandan so'ng darhol yakuniy uzatish boshqacha bo'ladi. Biroq, hozircha men u erda aslida nima uzatilayotganini tekshirmadim. Lekin bu shifrlash kaliti bo'lishi dargumon deb o'ylayman. Qanday bo'lmasin, PSoC ichki dasturiy ta'minotini qanday olib tashlaganimni tushunish uchun keyingi bo'limga qarang.

Manba: www.habr.com

a Izoh qo'shish