Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

It omkearjen en hacken fan eksterne selsfersiferjende skiven is myn âlde hobby. Yn it ferline hie ik de kâns om te oefenjen mei sokke modellen as Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Krekt koartlyn brocht in kollega my in oare eksposysje: Patriot (Aigo) SK8671, dat is boud neffens in typysk ûntwerp - in LCD-yndikator en in toetseboerd foar it ynfieren fan in PIN-koade. Dat kaam der út...

1. Yntroduksje
2. Hardware arsjitektuer
– 2.1. Haadboerd
– 2.2. LCD indicator board
– 2.3. Keyboard board
– 2.4. Sjoch nei de triedden
3. Sequence fan oanfal stappen
– 3.1. Nim in gegevens dump fan in SPI flash drive
– 3.2. Sniffing kommunikaasje

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen


1. Yntroduksje

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen
Housing

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen
Packing

Tagong ta de gegevens opslein op 'e skiif, dy't sabeare fersifere is, wurdt útfierd nei it ynfieren fan de PIN-koade. In pear ynliedende notysjes oer dit apparaat:

  • Om de PIN-koade te feroarjen, moatte jo op F1 drukke foardat jo ûntskoattelje;
  • De PIN-koade moat fan 6 oant 9 sifers befetsje;
  • Nei 15 ferkearde besykjen wurdt de skiif wiske.

2. Hardware arsjitektuer

Earst dissearje wy it apparaat yn dielen om te begripen út hokker komponinten it bestiet. De meast ferfeelsume taak is it iepenjen fan de saak: in protte mikroskopyske skroeven en plestik. Nei it iepenjen fan 'e saak, sjogge wy it folgjende (betink de fiif-pin-connector dy't ik solderearre):

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

2.1. Haadboerd

It haadboerd is frij simpel:

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

De meast opmerklike dielen (sjoch fan boppen nei ûnderen):

  • ferbining foar LCD-yndikator (CN1);
  • tweeter (SP1);
  • Pm25LD010 (spesifikaasje) SPI flash drive (U2);
  • Jmicron JMS539 controller (spesifikaasje) foar USB-SATA (U1);
  • USB 3-ferbining (J1).

It SPI-flashdrive bewarret de firmware foar JMS539 en guon ynstellingen.

2.2. LCD indicator board

D'r is neat opmerklik op it LCD-boerd.

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen
Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Allinnich:

  • LCD-yndikator fan ûnbekende komôf (wierskynlik mei in Sineeske lettertype set); mei sekwinsjele kontrôle;
  • Ribbon Connector foar toetseboerd board.

2.3. Keyboard board

By it ûndersykjen fan it toetseboerd nimme dingen in nijsgjirriger beurt.

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Hjir, op 'e efterkant, sjogge wy in lintferbining, lykas in Cypress CY8C21434 mikrocontroller PSoC 1 (hjirnei sille wy it gewoan PSoC neame)

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

CY8C21434 brûkt de M8C ynstruksje set (sjoch dokumintaasje). Op [produktside]((http://www.cypress.com/part/cy8c21434-24ltxi) wurdt oanjûn dat it de technology stipet CapSense (oplossing fan Cypress, foar kapasitive toetseboerden). Hjir kinne jo de fiif-pin-connector sjen dy't ik solderearre - dit is in standert oanpak foar it ferbinen fan in eksterne programmeur fia de ISSP-ynterface.

2.4. Sjoch nei de triedden

Litte wy útfine wat hjir ferbûn is. Om dit te dwaan, gewoan testje de triedden mei in multimeter:

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Taljochtingen foar dit diagram tekene op 'e knibbel:

  • De PSoC wurdt beskreaun yn 'e technyske spesifikaasje;
  • de folgjende ferbining, de iene nei rjochts, is de ISSP-ynterface, dy't, troch de wil fan it needlot, oerienkomt mei wat der oer skreaun is op it ynternet;
  • De rjochterste connector is de terminal foar it lintferbining nei it toetseboerdboerd;
  • De swarte rjochthoek is in tekening fan de CN1 Connector, ûntwurpen om te ferbinen de wichtichste bestjoer oan de LCD board. P11, P13 en P4 binne ferbûn mei PSoC-pins 11, 13 en 4, op it LCD-boerd.

3. Sequence fan oanfal stappen

No't wy witte út hokker komponinten dit stasjon bestiet, moatte wy: 1) soargje dat de basisfersiferingsfunksjonaliteit eins oanwêzich is; 2) fyn út hoe't fersifering kaaien wurde oanmakke / bewarre; 3) fine wêr't krekt de PIN-koade sil wurde kontrolearre.

Om dit te dwaan haw ik de folgjende stappen dien:

  • naam in gegevens dump út in SPI flash drive;
  • besocht te dumpen gegevens fan in PSoC flash drive;
  • ferifiearre dat de kommunikaasje tusken Cypress PSoC en JMS539 eins befettet toetsoanslagen;
  • Ik soarge derfoar dat by it feroarjen fan it wachtwurd, neat wurdt oerskreaun yn it SPI flash drive;
  • wie te lui om de 8051-firmware fan JMS539 te kearen.

3.1. Nim in gegevens dump fan in SPI flash drive

Dizze proseduere is hiel ienfâldich:

  • ferbine sondes oan 'e skonken fan' e flash drive: CLK, MOSI, MISO en (opsjoneel) EN;
  • "sniff" kommunikaasje mei in sniffer mei in logyske analysator (ik brûkte Saleae Logic Pro 16);
  • dekodearje SPI protokol en eksportearje resultaten nei CSV;
  • foardiel nimme fan decode_spi.rbom de resultaten te parsearjen en in dump te krijen.

Tink derom dat dizze oanpak benammen goed wurket yn 't gefal fan' e JMS539-controller, om't dizze controller alle firmware fan 'e flash-drive laadt yn' e inisjalisaasjestadium.

$ 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

Nei't ik in dump fan 'e SPI-flashdrive naam, kaam ik ta de konklúzje dat har ienige taak is om de firmware op te slaan foar it JMicron-kontrôleapparaat, dat is ynboud yn' e 8051-mikrocontroller. Spitigernôch, it nimmen fan in dump fan 'e SPI-flashdrive wie nutteloos:

  • as de PIN-koade wurdt feroare, bliuwt de flash drive dump itselde;
  • Nei it inisjalisaasjestadium hat it apparaat gjin tagong ta it SPI-flashdrive.

3.2. Sniffing kommunikaasje

Dit is ien manier om te finen hokker chip ferantwurdlik is foar it kontrolearjen fan kommunikaasje foar de tiid / ynhâld fan belang. Lykas wy al witte, is de USB-SATA-controller ferbûn mei de Cypress PSoC LCD fia connector CN1 en twa linten. Dêrom ferbine wy ​​de probes oan 'e trije oerienkommende skonken:

  • P4, algemiene ynfier / útfier;
  • P11, I2C SCL;
  • P13, I2C SDA.

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Dan starte wy de Saleae logyske analyzer en fiere op it toetseboerd yn: "123456~". As resultaat sjogge wy it folgjende diagram.

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Dêrop kinne wy ​​​​trije gegevensútwikselingskanalen sjen:

  • der binne ferskate koarte bursts op kanaal P4;
  • op P11 en P13 - hast trochgeande gegevens útwikseling.

Ynzoomen op de earste spike op kanaal P4 (blauwe rjochthoek yn 'e foarige figuer), sjogge wy it folgjende:

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Hjir kinne jo sjen dat der op P4 hast 70ms fan in ientoanich sinjaal is, wat my earst de rol fan in kloksinjaal like te spyljen. Nei't ik lykwols wat tiid haw trochbrocht om myn rieden te kontrolearjen, ûntduts ik dat dit gjin kloksinjaal is, mar in audiostream dy't wurdt útstjoerd nei de tweeter as de toetsen yndrukt wurde. Dêrom befettet dizze seksje fan it sinjaal sels gjin nuttige ynformaasje foar ús. It kin lykwols brûkt wurde as in yndikator om te witten wannear't de PSoC in toetsdruk registrearret.

De lêste P4-audiostream is lykwols in bytsje oars: it is de audio foar de "ûnjildige PIN"!

Werom nei de toetsoanslaggrafyk, ynzoomen op de lêste audiostreamgrafyk (sjoch de blauwe rjochthoek nochris), krije wy:

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

Hjir sjogge wy monotone sinjalen op P11. Dat it liket derop dat dit it kloksinjaal is. En P13 is gegevens. Merk op hoe't it patroan feroaret nei't de piep einiget. It soe nijsgjirrich wêze om te sjen wat hjir bart.

Protokollen dy't wurkje mei twa triedden binne meastentiids SPI of I2C, en de technyske spesifikaasje op Cypress stelt dat dizze pins oerienkomme mei I2C, dat wy sjogge is wier yn ús gefal:

Omkearje en hacking Aigo sels-fersiferje eksterne HDD drive. Diel 1: Disseksje yn dielen

De USB-SATA-chipset ûndersiket de PSoC konstant om de steat fan 'e kaai te lêzen, dy't standert "0" is. Dan, as jo op de "1" kaai drukke, feroaret it nei "1". De definitive oerdracht direkt nei it drukken op "~" is oars as de ferkearde PIN-koade wurdt ynfierd. Op dit stuit haw ik lykwols net kontrolearre wat dêr eins oerstjoerd wurdt. Mar ik tink dat dit net wierskynlik in fersiferingskaai is. Hoe dan ek, sjoch de folgjende seksje om te begripen hoe't ik de PSoC ynterne firmware fuorthelle.

Boarne: www.habr.com

Add a comment