Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Það er gamla áhugamálið mitt að snúa við og hakka utanaðkomandi sjálfkóðunardrif. Í fortíðinni hafði ég tækifæri til að æfa með slíkum gerðum eins og Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Nýlega færði samstarfsmaður mér aðra sýningu: Patriot (Aigo) SK8671, sem er byggð í samræmi við dæmigerða hönnun - LCD-vísir og lyklaborð til að slá inn PIN-kóða. Það er það sem kom út úr því…

1. Inngangur
2. Vélbúnaðararkitektúr
– 2.1. Aðalborð
– 2.2. LCD vísir borð
– 2.3. Lyklaborð
– 2.4. Er að horfa á vírana
3. Röð sóknarþrepa
– 3.1. Að taka gagnadump af SPI-drifi
– 3.2. Þefa fjarskipti

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta


1. Inngangur

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta
Húsnæði

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta
Pökkun

Aðgangur að gögnum sem geymd eru á disknum, sem er talið vera dulkóðuð, fer fram eftir að PIN-númerið er slegið inn. Nokkrar kynningar athugasemdir um þetta tæki:

  • Til að breyta PIN-númerinu verður þú að ýta á F1 áður en þú opnar;
  • PIN-númerið verður að innihalda frá 6 til 9 tölustafi;
  • Eftir 15 rangar tilraunir er diskurinn hreinsaður.

2. Vélbúnaðararkitektúr

Fyrst krufum við tækið í hluta til að skilja úr hvaða íhlutum það samanstendur. Erfiðasta verkefnið er að opna hulstrið: mikið af smásjárskrúfum og plasti. Eftir að hafa opnað hulstrið sjáum við eftirfarandi (fylgstu með fimm pinna tenginu sem ég lóðaði):

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

2.1. Aðalborð

Aðalborðið er frekar einfalt:

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Athyglisverðustu hlutar þess (sjá ofan frá og niður):

  • tengi fyrir LCD vísir (CN1);
  • tweeter (SP1);
  • Pm25LD010 (forskrift) SPI glampi drif (U2);
  • Jmicron JMS539 stjórnandi (forskrift) fyrir USB-SATA (U1);
  • USB 3 tengi (J1).

SPI glampi drifið geymir fastbúnaðinn fyrir JMS539 og sumar stillingar.

2.2. LCD vísir borð

Það er ekkert merkilegt á LCD borðinu.

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta
Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Aðeins:

  • LCD vísir af óþekktum uppruna (líklega með kínversku letursetti); með raðstýringu;
  • Borðatengi fyrir lyklaborð.

2.3. Lyklaborð

Þegar lyklaborðið er skoðað taka hlutirnir áhugaverðari stefnu.

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Hér á bakhliðinni sjáum við borðtengi, auk Cypress CY8C21434 örstýringar PSoC 1 (hér eftir munum við einfaldlega kalla það PSoC)

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

CY8C21434 notar M8C leiðbeiningasettið (sjá skjöl). Á [vörusíðu]((http://www.cypress.com/part/cy8c21434-24ltxi) það er gefið til kynna að það styðji tæknina CapSense (lausn frá Cypress, fyrir rafrýmd lyklaborð). Hér má sjá fimm pinna tengið sem ég lóðaði - þetta er staðlað nálgun til að tengja utanaðkomandi forritara í gegnum ISSP viðmótið.

2.4. Er að horfa á vírana

Við skulum finna út hvað er tengt hér. Til að gera þetta skaltu bara prófa vírin með multimeter:

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Skýringar á þessari skýringarmynd sem teiknuð er á hné:

  • PSoC er lýst í tækniforskriftinni;
  • næsta tengi, það sem er til hægri, er ISSP viðmótið, sem, samkvæmt vilja örlaganna, samsvarar því sem skrifað er um það á netinu;
  • Tengið lengst til hægri er tengi fyrir borðatengið við lyklaborðið;
  • Svarti rétthyrningurinn er teikning af CN1 tenginu, hannað til að tengja aðalborðið við LCD borðið. P11, P13 og P4 eru tengd við PSoC pinna 11, 13 og 4, á LCD borðinu.

3. Röð sóknarþrepa

Nú þegar við vitum úr hvaða íhlutum þetta drif samanstendur, þurfum við að: 1) ganga úr skugga um að grunn dulkóðunarvirkni sé í raun til staðar; 2) komdu að því hvernig dulkóðunarlyklar eru búnir til/vistaðir; 3) finndu hvar nákvæmlega PIN-númerið verður athugað.

Til að gera þetta gerði ég eftirfarandi skref:

  • tók gagnadump af SPI-drifi;
  • reynt að henda gögnum frá PSoC-drifi;
  • staðfest að samskipti Cypress PSoC og JMS539 innihalda í raun lyklana sem ýtt er á;
  • Ég passaði upp á að þegar lykilorðinu var breytt er ekkert skrifað yfir í SPI flash-drifinu;
  • var of latur til að snúa við 8051 fastbúnaðinum frá JMS539.

3.1. Að taka gagnadump af SPI-drifi

Þessi aðferð er mjög einföld:

  • tengja nema við fætur flassdrifsins: CLK, MOSI, MISO og (valfrjálst) EN;
  • „þefa“ samskipti við sniffer með því að nota rökfræðigreiningartæki (ég notaði Saleae Logic Pro 16);
  • afkóða SPI samskiptareglur og flytja niðurstöður út í CSV;
  • nýta sér decode_spi.rbtil að flokka niðurstöðurnar og fá dump.

Vinsamlegast athugaðu að þessi nálgun virkar sérstaklega vel þegar um er að ræða JMS539 stjórnandi, þar sem þessi stjórnandi hleður öllum fastbúnaði frá flash-drifinu á upphafsstigi.

$ 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

Eftir að hafa tekið dump úr SPI-drifinu, komst ég að þeirri niðurstöðu að eina verkefni þess er að geyma fastbúnaðinn fyrir JMicron stýribúnaðinn, sem er innbyggður í 8051 örstýringuna. Því miður reyndist það gagnslaust að taka SPI glampi drifið:

  • þegar PIN-númerinu er breytt er tappið á flassdrifinu óbreytt;
  • Eftir upphafsstigið hefur tækið ekki aðgang að SPI glampi drifinu.

3.2. Þefa fjarskipti

Þetta er ein leið til að finna hvaða flís er ábyrgur fyrir því að athuga samskipti fyrir þann tíma/innihald sem vekur áhuga. Eins og við vitum nú þegar er USB-SATA stjórnandi tengdur við Cypress PSoC LCD með tengi CN1 og tveimur tætlur. Þess vegna tengjum við rannsakana við þrjá samsvarandi fætur:

  • P4, almennt inntak/úttak;
  • P11, I2C SCL;
  • P13, I2C SDA.

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Síðan ræsum við Saleae rökfræðigreiningartækið og sláum inn á lyklaborðið: "123456~". Fyrir vikið sjáum við eftirfarandi skýringarmynd.

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Á henni getum við séð þrjár gagnaskiptarásir:

  • það eru nokkrir stuttir þættir á rás P4;
  • á P11 og P13 - nánast samfelld gagnaskipti.

Með því að þysja inn á fyrsta toppinn á rás P4 (blái rétthyrningurinn á fyrri myndinni) sjáum við eftirfarandi:

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Hér má sjá að á P4 er næstum 70ms af eintóna merki, sem mér fannst í fyrstu gegna hlutverki klukkumerkis. Hins vegar, eftir að hafa eytt smá tíma í að athuga getgátuna mína, komst ég að því að þetta er ekki klukkumerki, heldur hljóðstraumur sem kemur út á tweeterinn þegar ýtt er á takkana. Þess vegna inniheldur þessi hluti merkisins sjálfs ekki gagnlegar upplýsingar fyrir okkur. Hins vegar er hægt að nota það sem vísbendingu til að vita hvenær PSoC skráir takka.

Hins vegar er nýjasta P4 hljóðstraumurinn aðeins öðruvísi: það er hljóðið fyrir „ógilt PIN“!

Þegar farið er aftur í ásláttarritið, aðdráttur inn á síðasta hljóðstraumsgrafið (sjá bláa rétthyrninginn aftur), fáum við:

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

Hér sjáum við einhæf merki á P11. Svo það lítur út fyrir að þetta sé klukkumerkið. Og P13 er gögn. Taktu eftir hvernig mynstrið breytist eftir að pípinu lýkur. Það væri fróðlegt að sjá hvað gerist hér.

Samskiptareglur sem virka með tveimur vírum eru venjulega SPI eða I2C, og tækniforskriftin á Cypress segir að þessir pinnar samsvari I2C, sem við sjáum er satt í okkar tilviki:

Snúa og hakka Aigo sjálfdulkóðandi utanaðkomandi HDD drif. Hluti 1: Krufning í hluta

USB-SATA kubbasettið skoðar stöðugt PSoC til að lesa stöðu lykilsins, sem sjálfgefið er „0“. Síðan, þegar þú ýtir á "1" takkann breytist hann í "1". Lokasending strax eftir að ýtt er á „~“ er önnur ef rangt PIN-númer er slegið inn. Ég hef hins vegar ekki kannað í augnablikinu hvað er raunverulega verið að senda þarna. En mig grunar að ólíklegt sé að þetta sé dulkóðunarlykill. Engu að síður, sjáðu næsta kafla til að skilja hvernig ég fjarlægði PSoC innri fastbúnaðinn.

Heimild: www.habr.com

Bæta við athugasemd