Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Ulkoisten itsesalaavien asemien kääntäminen ja hakkerointi on vanha harrastukseni. Aiemmin minulla oli mahdollisuus harjoitella sellaisilla malleilla kuin Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Juuri äskettäin kollega toi minulle toisen näyttelyn: Patriot (Aigo) SK8671, joka on rakennettu tyypillisen suunnittelun mukaan - LCD-näyttö ja näppäimistö PIN-koodin syöttämiseen. Siitähän se selvisi…

1. Esittely
2. Laitteistoarkkitehtuuri
– 2.1. Päälevy
– 2.2. LCD-näyttötaulu
– 2.3. Näppäimistö
– 2.4. Johtoja katsomalla
3. Hyökkäysvaiheiden järjestys
– 3.1. Tietovedosten ottaminen SPI-muistitikulta
– 3.2. Viestinnän nuuskiminen

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin


1. Esittely

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin
kotelo

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin
Pakkaus

Pääsy levylle tallennettuihin tietoihin, jotka oletettavasti on salattu, tapahtuu PIN-koodin syöttämisen jälkeen. Muutama johdantohuomautus tästä laitteesta:

  • Jos haluat vaihtaa PIN-koodin, sinun on painettava F1 ennen lukituksen avaamista;
  • PIN-koodin tulee sisältää 6-9 numeroa;
  • 15 virheellisen yrityksen jälkeen levy tyhjennetään.

2. Laitteistoarkkitehtuuri

Ensin hajotamme laitteen osiin ymmärtääksemme, mistä komponenteista se koostuu. Työllisin tehtävä on kotelon avaaminen: paljon mikroskooppisia ruuveja ja muovia. Kun kotelo on avattu, näemme seuraavan (kiinnitä huomiota juottamaani viisinapaiseen liittimeen):

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

2.1. Päälevy

Päälevy on melko yksinkertainen:

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Sen merkittävimmät osat (katso ylhäältä alas):

  • liitin LCD-näytölle (CN1);
  • diskanttikaiutin (SP1);
  • Pm25LD010 (erittely) SPI-muistitikku (U2);
  • Jmicron JMS539 ohjain (erittely) USB-SATA:lle (U1);
  • USB 3 -liitin (J1).

SPI-muistitikku tallentaa JMS539:n laiteohjelmiston ja jotkin asetukset.

2.2. LCD-näyttötaulu

LCD-taulussa ei ole mitään merkittävää.

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin
Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Vain:

  • Tuntemattoman alkuperän LCD-osoitin (todennäköisesti kiinalaisella fonttisarjalla); peräkkäisellä ohjauksella;
  • Nauhaliitin näppäimistölle.

2.3. Näppäimistö

Näppäimistöä tutkiessa asiat saavat mielenkiintoisemman käänteen.

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Täällä, takana, näemme nauhaliittimen sekä Cypress CY8C21434 -mikro-ohjaimen PSoC 1 (jäljempänä kutsumme sitä yksinkertaisesti PSoC:ksi)

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

CY8C21434 käyttää M8C-käskysarjaa (katso dokumentointi). [tuotesivulla]( (http://www.cypress.com/part/cy8c21434-24ltxi) ilmoitetaan, että se tukee tekniikkaa CapSense (Cypressin ratkaisu kapasitiivisille näppäimistöille). Tässä näkyy juottamani viisinapainen liitin - tämä on standardi lähestymistapa ulkoisen ohjelmoijan liittämiseen ISSP-liitännän kautta.

2.4. Johtoja katsomalla

Selvitetään, mikä tähän liittyy. Voit tehdä tämän testaamalla johdot yleismittarilla:

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Selitykset tälle polveen piirretylle kaaviolle:

  • PSoC on kuvattu teknisissä eritelmissä;
  • seuraava liitin, oikealla oleva, on ISSP-rajapinta, joka kohtalon tahdosta vastaa sitä, mitä siitä on kirjoitettu Internetissä;
  • Oikeanpuoleisin liitin on näppäimistön nauhaliittimen liitin;
  • Musta suorakulmio on piirros CN1-liittimestä, joka on suunniteltu yhdistämään emolevy LCD-korttiin. P11, P13 ja P4 on kytketty LCD-levyn PSoC-nastoihin 11, 13 ja 4.

3. Hyökkäysvaiheiden järjestys

Nyt kun tiedämme, mistä osista tämä asema koostuu, meidän on: 1) varmistettava, että salauksen perustoiminto on todella olemassa; 2) selvittää, kuinka salausavaimet luodaan/tallennetaan; 3) selvitä, missä tarkalleen PIN-koodi tarkistetaan.

Tätä varten tein seuraavat vaiheet:

  • otti datavedoksen SPI-muistitikulta;
  • yritti tyhjentää tietoja PSoC-muistitikulta;
  • varmisti, että Cypress PSoC:n ja JMS539:n välinen viestintä sisälsi todella näppäinpainalluksia;
  • Varmistin, että salasanaa vaihdettaessa mitään ei korvata SPI-muistitikulla;
  • oli liian laiska kääntämään 8051-laiteohjelmistoa JMS539:stä.

3.1. Tietovedosten ottaminen SPI-muistitikulta

Tämä menettely on hyvin yksinkertainen:

  • yhdistä anturit flash-aseman jalkoihin: CLK, MOSI, MISO ja (valinnainen) EN;
  • "haistele" viestintää haistajan kanssa logiikka-analysaattorilla (käytin Saleae Logic Pro 16);
  • purkaa SPI-protokolla ja viedä tulokset CSV-muotoon;
  • hyödyntää decode_spi.rbjäsentääksesi tulokset ja saadaksesi kaatopaikan.

Huomaa, että tämä lähestymistapa toimii erityisen hyvin JMS539-ohjaimen tapauksessa, koska tämä ohjain lataa kaikki laiteohjelmistot muistitikulta alustusvaiheessa.

$ 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

Otettuaan kaaoksen SPI-muistitikulta, tulin siihen tulokseen, että sen ainoa tehtävä on tallentaa laiteohjelmisto JMicron-ohjauslaitteelle, joka on sisäänrakennettu 8051-mikrokontrolleriin. Valitettavasti SPI-flash-aseman poistaminen osoittautui hyödyttömäksi:

  • kun PIN-koodi vaihdetaan, flash-aseman tyhjennys pysyy samana;
  • Alustusvaiheen jälkeen laite ei käytä SPI-flash-asemaa.

3.2. Viestinnän nuuskiminen

Tämä on yksi tapa selvittää, mikä siru vastaa viestinnän tarkistamisesta kiinnostavan ajan/sisällön osalta. Kuten jo tiedämme, USB-SATA-ohjain on kytketty Cypress PSoC LCD:hen liittimen CN1 ja kahden nauhan kautta. Siksi yhdistämme anturit kolmeen vastaavaan jalkaan:

  • P4, yleinen tulo/lähtö;
  • P11, I2C SCL;
  • P13, I2C SDA.

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Sitten käynnistämme Saleae-logiikka-analysaattorin ja kirjoitamme näppäimistölle: "123456~". Tämän seurauksena näemme seuraavan kaavion.

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Siinä näemme kolme tiedonvaihtokanavaa:

  • kanavalla P4 on useita lyhyitä purskeita;
  • P11:ssä ja P13:ssa - lähes jatkuva tiedonvaihto.

Lähentämällä kanavan P4 ensimmäistä piikkiä (sininen suorakulmio edellisessä kuvassa), näemme seuraavan:

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Tästä näkee, että P4:llä on lähes 70ms monotonista signaalia, joka minusta aluksi näytti toimivan kellosignaalina. Tarkastettuani arvaukseni kuitenkin huomasin, että tämä ei ole kellosignaali, vaan äänivirta, joka lähetetään diskanttikaiuttimeen, kun näppäimiä painetaan. Siksi tämä signaalin osa ei sisällä meille hyödyllistä tietoa. Sitä voidaan kuitenkin käyttää ilmaisimena, joka tietää, milloin PSoC rekisteröi näppäinpainalluksen.

Uusin P4-äänivirta on kuitenkin hieman erilainen: se on "virheellisen PIN-koodin" ääni!

Kun palataan näppäinpainalluskaavioon, lähennetään viimeistä äänivirran kaaviota (katso sininen suorakulmio uudelleen), saadaan:

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

Tässä näemme monotonisia signaaleja P11:ssä. Joten näyttää siltä, ​​​​että tämä on kellosignaali. Ja P13 on dataa. Huomaa kuinka kuvio muuttuu äänimerkin jälkeen. Olisi mielenkiintoista nähdä mitä täällä tapahtuu.

Protokollat, jotka toimivat kahdella johdolla, ovat yleensä SPI tai I2C, ja Cypressin tekniset tiedot ilmoittavat, että nämä nastat vastaavat I2C:tä, mikä on totta meidän tapauksessamme:

Kääntäminen ja hakkerointi Aigon itsesalaava ulkoinen HDD-asema. Osa 1: Leikkaaminen osiin

USB-SATA-piirisarja kyselee jatkuvasti PSoC:tä lukeakseen avaimen tilan, joka oletuksena on "0". Sitten, kun painat "1"-näppäintä, se muuttuu "1". Lopullinen lähetys välittömästi “~”-painikkeen painamisen jälkeen on erilainen, jos syötetään väärä PIN-koodi. Tällä hetkellä en kuitenkaan ole tarkistanut, mitä siellä todella lähetetään. Mutta epäilen, että tämä ei todennäköisesti ole salausavain. Joka tapauksessa, katso seuraava osa ymmärtääksesi, kuinka poistin PSoC:n sisäisen laiteohjelmiston.

Lähde: will.com

Lisää kommentti