EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

VĂ€liste isekodeerivate seadmete tagasipööramine ja hĂ€kkimine on minu pikaajaline hobi. Varem olen katsetanud selliste mudelitega nagu Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Hiljuti tĂ”i kolleeg mulle veel ĂŒhe nĂ€idise: Patriot (Aigo) SK8671, mis on loodud tĂŒĂŒpilises disainis – LCD-indikaator ja klaviatuur PIN-koodi sisestamiseks. Siit saate teada, mis vĂ€lja tuli


1. Sissejuhatus
2. Riistvaraarhitektuur
– 2.1. Emaplaat
– 2.2. LCD-indikaatori plaat
– 2.3. Klaviatuuriplaat
– 2.4. Vaata kaableid
3. RĂŒnnakute jĂ€rjestus
– 3.1. SPI-mĂ€lupulga andme dump'imine
– 3.2. Kommunikatsioonide nuhkimine

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.


1. Sissejuhatus

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.
Korpus

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.
Pakend

Juhtimine salvestatud kettal olevate andmete juurde, mis vĂ€idetavalt on krĂŒpteeritud, toimub pĂ€rast PIN-koodi sisestamist. Siin on mĂ”ned sisendkommentaarid selle seadme kohta:

  • PIN-koodi muutmiseks tuleb enne avamist vajutada F1;
  • PIN-koodis peab olema 6 kuni 9 numbrit;
  • PĂ€rast 15 vale katset kustutatakse ketas.

2. Riistvaraarhitektuur

Esmaltame seadme tĂŒkkideks, et mĂ”ista, millistest komponentidest see koosneb. KĂ”ige igavam tegevus on korpuse avamine: palju mikroskoopilisi kruvi ja plastikut. Korpuse avamisel nĂ€eme jĂ€rgmist (pöörake tĂ€helepanu minu jootetud viie kontaktiga pistikule):

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

2.1. Peamine plaat

Peamine plaat on ĂŒsna lihtne:

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Selle kĂ”ige tĂ€helepanuvÀÀrsemad osad (vt ĂŒlevalt alla):

  • LCD-indikaatori pistik (CN1);
  • kĂ”lar (SP1);
  • Pm25LD010 (spetsifikatsioon) SPI-mĂ€Chip (U2);
  • Jmicron JMS539 kontroller (spetsifikatsioon) USB-SATA jaoks (U1);
  • USB 3 pistik (J1).

SPI-mÀChip hoiab JMS539 jaoks vajaliku tarkvara ja teatud seadeid.

2.2. LCD-indikaatori plaat

LCD-plaadil pole midagi tÀhelepanuvÀÀrset.

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.
EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Lihtsalt:

  • Tundmatu pĂ€ritoluga LCD-indikaator (tĂ”enĂ€oliselt Hiina fondikomplektiga); jĂ€rjestikuse juhtimisega;
  • lint-ĂŒhendus klaviatuuriplaadile.

2.3. Klaviatuuriplaat

Klaviatuuriplaati uurides muutuvad asjad huvitavamaks.

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Siin, plaadi tagakĂŒljel, nĂ€eme lint-ĂŒhendust, samuti Cypress CY8C21434 – PSoC 1 mikrokontrollerit (edaspidi nimetame seda lihtsalt PSoC-iks).

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

CY8C21434 kasutab M8C kĂ€skude komplekti (vt. dokumentatsiooni). [toote lehel]((http://www.cypress.com/part/cy8c21434-24ltxi) on sĂ€testatud, et see toetab tehnoloogiat CapSense (lahendus Cypress'i poolt, mĂ”eldud puutetundlike klaviatuuride jaoks). Siin on nĂ€ha, et olen keevitanud viie kontaktiga pistiku – see on tavaline lĂ€henemine vĂ€lise programmeerija ĂŒhendamiseks ISSP-liidese kaudu.

2.4. Vaatame kaableid

Selgitame vÀlja, mis millega seondub. Selleks piisab, kui mÔÔta kaableid multimeetriga:

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Selgitused selle joonistatud skeemi kohta:

  • PSoC on kirjas tehnilises spetsifikatsioonis;
  • jĂ€rgmine pistik, see, mis on paremal – ISSP-liides, mis juhuslikult vastab sellele, mis selle kohta Internetis kirjutatud on;
  • ÀÀrmine paremal olev pistik – on klaviatuuriplati lintĂŒhenduse terminal;
  • must ristkĂŒlik – joonis pistikust CN1, mis on ette nĂ€htud pĂ”hiplati ĂŒhenduseks LCD-plaatidega. P11, P13 ja P4 – on ĂŒhendatud PSoC jalgadega 11, 13 ja 4, LCD-plaatidel.

3. RĂŒnnakute jĂ€rjestus

NĂŒĂŒd, kui teame, millistest komponentidest see mĂ€lu koosneb, peame: 1) veenduma, et krĂŒpteerimise pĂ”hifunktsionaalsus on tĂ”eliselt olemas; 2) teada saama, kuidas krĂŒpteerimise vĂ”tmed genereeritakse/salvestatakse; 3) leidma, kus tĂ€pselt kontrollitakse PIN-koodi.

Selleks lÀbisin jÀrgmised sammud:

  • vĂ”ttis SPI-puhversette andmed;
  • ĂŒritas vĂ”tta PSoC-puhversette andmeid;
  • veendus, et andmevahetus Cypress PSoC ja JMS539 vahel sisaldab tegelikult vajutatud klahve;
  • veendus, et parooli muutmisel SPI-puhversette midagi ĂŒmber ei kirjutata;
  • olles liiga laisk, et JMS539 8051-firmware'it tagasi pöörata.

3.1. VÔtame SPI-puhversette andmed

See protseduur on vÀga lihtne:

  • ĂŒhenda sondid mĂ€lukiibi jalgadele: CLK, MOSI, MISO ja (valikuline) EN;
  • "nuusuta" suhtlust nuhikulogiga, kasutades loogikaanalĂŒsaatorit (kasutasin Saleae Logic Pro 16);
  • SPI-protokolli dekodeerimiseks ja tulemuste eksportimiseks CSV-formaadis;
  • kasutada decode_spi.rb, et tulemusi parseerida ja dump saada.

Pange tÀhele, et selline lÀhenemine töötab JMS539 kontrolleri puhul eriti hÀsti, kuna see kontroller laadib alglaadimise faasis kogu firmware'i mÀlukiibilt.

$ 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-mĂ€lust pildistades jĂ”udsin jĂ€reldusele, et selle ainus ĂŒlesanne on salvestada JMicroni juhtimisseadme join. See on integreeritud 8051-mikrokontrollerisse. Kahjuks osutus SPI-mĂ€lu dumpi tegemine kasutuks:

  • PIN-koodi muutes jÀÀb mĂ€lu dump samaks;
  • pĂ€rast initsialiseerimise etappi ei pöördu seade SPI-mĂ€lu poole.

3.2. Uurime side teid

See on ĂŒks viis teada saada, milline chip vastutab side kontrollimise eest, huvitavate ajakava/konkreetse sisu jaoks. Nagu me juba teame, on USB-SATA kontroller ĂŒhendatud Cypress PSoC LCD-ga, lĂ€bi CN1 pesani ja kahe ribaga. Seega ĂŒhendame sondid kolme vastava jala kĂŒlge:

  • P4, ĂŒldine I/O;
  • P11, I2C SCL;
  • P13, I2C SDA.

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

SeejĂ€rel kĂ€ivitame Saleae loogikanalĂŒsaatori ja sisestame klaviatuurile: "123456~". Tulemuseks nĂ€eme jĂ€rgmist diagrammi.

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Sellest diagrammist saame nÀha kolme andmevahetuse kanalit:

  • kanalis P4 on mitu lĂŒhikest plahvatust;
  • kanalitel P11 ja P13 on peaaegu katkematu andmevahetus.

Suurendades kanali P4 (eelmise joonise sinine ristkĂŒlik) esimest plahvatust, nĂ€eme jĂ€rgmist:

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Siit on nĂ€ha, et P4-l on peaaegu 70 ms ĂŒhtlast signaali, mis esialgu nĂ€is olevat sĂŒnkroonsignaal. Kuid veetes veidi aega oma oletuse kontrollimisel, avastasin, et see ei ole sĂŒnkroonsignaal, vaid helivoog, millel on klahvide tĂ”stmisel hÀÀl klakiga. Seega ei sisalda see signaali osa iseenesest meie jaoks kasulikku teavet. Siiski saab seda kasutada indikaatorina – et teada, millal PSoC registreerib klahvi vajutamise.

Kuid P4 kanali viimane helivoog erineb teiste omast veidi: see on heli „vale PIN-koodi” jaoks!

Tagasi klahvivajutuste diagrammi juurde, suurendades viimase helivoog diagrammi (vaata jĂ€lle sinist ristkĂŒlikut), saame:

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

Siit nĂ€eme P11-l ĂŒhtlasi signaale. Nii et tundub, et see on sĂŒnkroonsignaal. Ja P13 – andmed. Pange tĂ€hele, kuidas muster muutub pĂ€rast helisignaali lĂ”ppu. Oleks huvitav nĂ€ha, mis siin toimub.

Kaksijuhtmelised protokollid on tavaliselt SPI vĂ”i I2C, ning Cypressi tehnilises spetsifikatsioonis ĂŒteldakse, et need kontaktid vastavad I2C-le, mis, nagu nĂ€eme, kehtib ka meie puhul:

EnesekrĂŒpteeriva vĂ€lise HDD-ketta Aigo tagasipööramine ja hĂ€kkimine. Osa 1: Lahti vĂ”tmine.

USB-SATA kiibistik kĂŒsib pidevalt PSoC-i, et lugeda nupu seisundit, mis vaikimisi on "0". Siis, kui nuppu vajutada, muutub see "1"-ks. LĂ”plik edastus, kohe pĂ€rast klahvi "~" vajutamist, erineb, kui sisestatud on vale PIN-kood. Siiski pole ma hetkel kontrollinud, mis seal tegelikult edastatakse. Kuid kahtlen, et see on krĂŒpteerimisvĂ”ti. Sellegipoolest, vaata jĂ€rgmist lĂ”iku, et mĂ”ista, kuidas ma sain PSoC-i sisemise pĂŒsivara.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster