Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Išorinių savaime šifruojančių diskų atsukimas ir nulaužimas buvo senas mano hobis. Anksčiau turėjau galimybę praktikuotis su tokiais modeliais kaip Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Visai neseniai kolega man atnešė dar vieną eksponatą: Patriot (Aigo) SK8671, kuris pastatytas pagal tipišką dizainą - LCD indikatorius ir klaviatūra PIN kodui įvesti. Štai kas iš to išėjo…

1. Įvadas
2. Aparatinės įrangos architektūra
– 2.1. Pagrindinė lenta
– 2.2. LCD ekrano lenta
– 2.3. Klaviatūros lenta
– 2.4. Pažiūrėk į laidus
3. Puolimo žingsnių seka
– 3.1. Pašaliname SPI „flash drive“ duomenų išklotinę
– 3.2. Ryšių uostymas

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas


1. Įvadas

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas
Корпус

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas
Упаковка

Prieiga prie diske saugomų duomenų, kurie tariamai yra užšifruoti, pasiekiama įvedus PIN kodą. Keletas įvadinių pastabų apie šį įrenginį:

  • Norėdami pakeisti PIN kodą, prieš atrakindami turite paspausti F1;
  • PIN kodą turi sudaryti nuo 6 iki 9 skaitmenų;
  • Po 15 neteisingų bandymų diskas išvalomas.

2. Aparatinės įrangos architektūra

Pirmiausia išskaidome įrenginį į dalis, kad suprastume, iš kokių komponentų jis susideda. Nuobodžiausia užduotis – atidaryti korpusą: daug mikroskopinių varžtų ir plastiko. Atidarę korpusą matome taip (atkreipkite dėmesį į mano lituotą penkių kontaktų jungtį):

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

2.1. Pagrindinė lenta

Pagrindinė plokštė yra gana paprasta:

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Žymiausios jo dalys (žr. iš viršaus į apačią):

  • jungtis LCD indikatoriui (CN1);
  • squeaker (SP1);
  • Pm25LD010 (specifikacija) SPI atmintinė (U2);
  • Jmicron JMS539 valdiklis (specifikacija) USB-SATA (U1);
  • USB 3 jungtis (J1).

SPI „flash drive“ saugo JMS539 programinę įrangą ir kai kuriuos nustatymus.

2.2. LCD ekrano lenta

LCD plokštėje nėra nieko nuostabaus.

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas
Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Tik:

  • Neaiškios kilmės LCD indikatorius (tikriausiai su kinišku šriftų rinkiniu); su nuosekliu valdymu;
  • juostos jungtis klaviatūros plokštei.

2.3. Klaviatūros lenta

Nagrinėjant klaviatūros lentą viskas pasisuka įdomiau.

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Čia, galinėje pusėje, matome juostelės jungtį, taip pat Cypress CY8C21434 - PSoC 1 mikrovaldiklį (toliau mes jį tiesiog vadinsime PSoC)

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

CY8C21434 naudoja M8C instrukcijų rinkinį (žr dokumentacija). [produkto puslapyje](http://www.cypress.com/part/cy8c21434-24ltxi) nurodyta, kad ji palaiko technologiją capsense (Cypress sprendimas, skirtas talpinėms klaviatūroms). Čia galite pamatyti penkių kontaktų jungtį, kurią litavau - tai yra standartinis būdas prijungti išorinį programuotoją per ISSP sąsają.

2.4. Pažiūrėk į laidus

Išsiaiškinkime, kas čia su kuo susiję. Norėdami tai padaryti, tiesiog sujunkite laidus multimetru:

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Šios ant kelio nupieštos diagramos paaiškinimai:

  • PSoC aprašytas techninėje specifikacijoje;
  • kita jungtis, esanti dešinėje, yra ISSP sąsaja, kuri likimo valia atitinka tai, kas apie ją parašyta internete;
  • dešiniausia jungtis yra juostos jungties su klaviatūros plokšte gnybtas;
  • juodas stačiakampis yra CN1 jungties, skirtos pagrindinei plokštei prijungti prie LCD plokštės, brėžinys. P11, P13 ir P4 – prijungtas prie LCD plokštės 11, 13 ir 4 PSoC kaiščių.

3. Puolimo žingsnių seka

Dabar, kai žinome, iš kokių komponentų šis diskas susideda, turime: 1) įsitikinti, kad pagrindinė šifravimo funkcija tikrai yra; 2) sužinoti, kaip generuojami/saugomi šifravimo raktai; 3) suraskite, kur tiksliai bus patikrintas PIN kodas.

Norėdami tai padaryti, atlikau šiuos veiksmus:

  • paėmė SPI „flash drive“ duomenų išklotinę;
  • bandė išmesti PSoC „flash drive“ duomenis;
  • įsitikino, kad ryšys tarp Cypress PSoC ir JMS539 iš tikrųjų apima klavišų paspaudimus;
  • įsitikinkite, kad keičiant slaptažodį SPI „flash drive“ niekas neperrašo;
  • buvo per tingus, kad pakeistų 8051 programinę-aparatinę įrangą iš JMS539.

3.1. Pašaliname SPI „flash drive“ duomenų išklotinę

Ši procedūra yra labai paprasta:

  • prijunkite zondus prie „flash drive“ kojelių: CLK, MOSI, MISO ir (pasirinktinai) EN;
  • „uostykite“ ryšius su uostikliu naudojant loginį analizatorių (naudojau „Saleae Logic Pro 16“.);
  • iššifruoti SPI protokolą ir eksportuoti rezultatus į CSV;
  • pasinaudoti decode_spi.rbišanalizuoti rezultatus ir gauti išmestą.

Atkreipkite dėmesį, kad šis metodas ypač gerai veikia su JMS539 valdikliu, nes šis valdiklis įkelia visą programinę-aparatinę įrangą iš „flash drive“ inicijavimo fazės metu.

$ 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

Išleidęs SPI „flash drive“, padariau išvadą, kad vienintelė jo užduotis yra saugoti „JMicron“ valdymo įrenginio programinę-aparatinę įrangą, kuri yra įmontuota į 8051 mikrovaldiklį. Deja, SPI atmintinės išleidimas pasirodė nenaudingas:

  • keičiant PIN kodą, „flash drive“ išmetimas išlieka toks pat;
  • po inicijavimo etapo įrenginys nepasiekia SPI atmintinės.

3.2. Ryšių uostymas

Tai yra vienas iš būdų sužinoti, kuris lustas yra atsakingas už ryšių patikrinimą dominančiu laiku / turiniu. Kaip jau žinome, USB-SATA valdiklis yra prijungtas prie Cypress PSoC LCD per CN1 jungtį ir dvi juosteles. Todėl zondus sujungiame prie trijų atitinkamų kojų:

  • P4, bendrasis I/O;
  • P11, I2C SCL;
  • P13, I2C SDA.

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Tada paleidžiame „Saleae“ loginį analizatorių ir klaviatūroje įveskite „123456~“. Dėl to matome tokią diagramą.

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Jame matome tris duomenų mainų kanalus:

  • kanalas P4 turi keletą trumpų serijų;
  • P11 ir P13 beveik nuolatinis keitimasis duomenimis.

Priartindami pirmąjį kanalo P4 seriją (mėlynas langelis ankstesniame paveikslėlyje), matome:

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Čia matosi, kad P4 beveik 70ms monotoniško signalo, kuris, kaip man atrodė iš pradžių, atlieka laikrodžio signalo vaidmenį. Tačiau praleidęs šiek tiek laiko savo spėjimui patikrinti, sužinojau, kad tai ne sinchronizavimo signalas, o garso srautas, kuris išvedamas į garsinį signalą, kai paspaudžiami klavišai. Todėl savaime šiame signalo skyriuje nėra mums naudingos informacijos. Tačiau jis gali būti naudojamas kaip indikatorius – žinoti momentą, kada PSoC užregistruoja klavišo paspaudimą.

Tačiau paskutinis kanalo P4 garso srautas šiek tiek skiriasi nuo kitų: tai „neteisingo PIN kodo“ garsas!

Grįžtant prie klavišų paspaudimo diagramos, padidinus paskutinio garso srauto diagramą (dar kartą žiūrėkite mėlyną stačiakampį), gauname:

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

Čia matome monotoniškus P11 signalus. Taigi atrodo, kad tai yra sinchronizavimo signalas. Ir P13 yra duomenys. Atkreipkite dėmesį, kaip pasikeičia modelis pasibaigus pyptelėjimui. Būtų įdomu pažiūrėti, kas čia vyksta.

Protokolai, kurie veikia su dviem laidais, dažniausiai yra SPI arba I2C, o Cypress duomenų lape rašoma, kad šie kontaktai atitinka I2C, kas, kaip matome, galioja ir mūsų atveju:

Atbulinės eigos ir įsilaužimo Aigo savaime šifruojantis išorinis HDD. 1 dalis: dalių išpjaustymas

USB-SATA mikroschemų rinkinys nuolat apklausia PSoC – kad nuskaitytų rakto būseną, kuri pagal nutylėjimą yra „0“. Tada, paspaudus mygtuką „1“, jis pasikeičia į „1“. Galutinis perdavimas iškart po „~“ paspaudimo skiriasi, jei įvedamas neteisingas PIN kodas. Tačiau šiuo metu aš netikrinau, kas ten iš tikrųjų perduodama. Tačiau įtariu, kad tai vargu ar yra šifravimo raktas. Bet kokiu atveju peržiūrėkite kitą skyrių, kad suprastumėte, kaip pašalinau PSoC vidinės programinės įrangos moteris.

Šaltinis: www.habr.com

Добавить комментарий