Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Inversigi kaj haki eksterajn mem-ĉifrajn diskojn estas mia malnova ŝatokupo. En la pasinteco, mi havis la ŝancon praktiki kun tiaj modeloj kiel Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Ĵus, kolego alportis al mi alian ekspoziciaĵon: Patriot (Aigo) SK8671, kiu estas konstruita laŭ tipa dezajno - LCD-indikilo kaj klavaro por enigi PIN-kodon. Jen kio eliris el ĝi...

1. Enkonduko
2. Aparataro arkitekturo
– 2.1. Ĉefa tabulo
– 2.2. LCD indikila tabulo
– 2.3. Klavaro-tabulo
– 2.4. Rigardante la dratojn
3. Sekvenco de atakaj paŝoj
– 3.1. Prenante datuman rubejon de SPI-eksmemorilo
– 3.2. Flarante komunikadojn

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn


1. Enkonduko

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn
Loĝado

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn
Упаковка

Aliro al la datumoj stokitaj sur la disko, kiu estas supozeble ĉifrita, estas farita post enigo de la PIN-kodo. Kelkaj enkondukaj notoj pri ĉi tiu aparato:

  • Por ŝanĝi la PIN-kodon, vi devas premi F1 antaŭ malŝlosi;
  • La PIN-kodo devas enhavi de 6 ĝis 9 ciferoj;
  • Post 15 malĝustaj provoj, la disko estas forigita.

2. Aparataro arkitekturo

Unue, ni dissekcas la aparaton en partojn por kompreni el kiuj komponantoj ĝi konsistas. La plej teda tasko estas malfermi la kazon: multe da mikroskopaj ŝraŭboj kaj plasto. Malferminte la kazon, ni vidas la jenon (atentu la kvin-stiftan konektilon, kiun mi lutis):

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

2.1. Ĉefa tabulo

La ĉefa tabulo estas sufiĉe simpla:

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Ĝiaj plej rimarkindaj partoj (vidu de supre ĝis malsupre):

  • konektilo por LCD-indikilo (CN1);
  • tweeter (SP1);
  • Pm25LD010 (specifo) SPI-poŝmemoro (U2);
  • Jmicron JMS539 regilo (specifo) por USB-SATA (U1);
  • Konektilo USB 3 (J1).

La flash drive SPI konservas la firmware por JMS539 kaj iujn agordojn.

2.2. LCD indikila tabulo

Estas nenio rimarkinda sur la LCD-tabulo.

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn
Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Nur:

  • LCD-indikilo de nekonata origino (verŝajne kun ĉina tiparo aro); kun sinsekva kontrolo;
  • Rubando-konektilo por klavartabulo.

2.3. Klavaro-tabulo

Ekzamenante la klavartabulon, aferoj prenas pli interesan turnon.

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Ĉi tie, sur la malantaŭa flanko, ni vidas rubandkonektilon, same kiel Cypress CY8C21434 mikroregilon PSoC 1 (ĉi-poste ni simple nomos ĝin PSoC)

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

CY8C21434 uzas la instrukciaĵon M8C (vidu dokumentado). Sur [produkta paĝo]( (http://www.cypress.com/part/cy8c21434-24ltxi) estas indikite ke ĝi subtenas la teknologion CapSense (solvo de Cypress, por kapacivaj klavaroj). Ĉi tie vi povas vidi la kvin-pinglan konektilon, kiun mi lutis - ĉi tio estas norma aliro por konekti eksteran programiston per la ISSP-interfaco.

2.4. Rigardante la dratojn

Ni eltrovu, kio estas konektita ĉi tie. Por fari tion, simple provu la dratojn per multimetro:

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Klarigoj por ĉi tiu diagramo desegnita sur la genuo:

  • La PSoC estas priskribita en la teknika specifo;
  • la sekva konektilo, tiu dekstre, estas la ISSP-interfaco, kiu laŭ la volo de la sorto respondas al tio, kio estas skribita pri ĝi en la Interreto;
  • La plej dekstra konektilo estas la terminalo por la rubandkonektilo al la klavartabulo;
  • La nigra rektangulo estas desegnaĵo de la CN1-konektilo, desegnita por ligi la ĉefan tabulo al la LCD-tabulo. P11, P13 kaj P4 estas konektitaj al PSoC-stiftoj 11, 13 kaj 4, sur la LCD-tabulo.

3. Sekvenco de atakaj paŝoj

Nun kiam ni scias, el kiuj komponantoj konsistas ĉi tiu disko, ni devas: 1) certigi, ke la baza ĉifrada funkcio efektive ĉeestas; 2) eksciu kiel ĉifradaj ŝlosiloj estas generitaj/konservataj; 3) trovi kie precize la PIN-kodo estos kontrolita.

Por fari tion mi faris la jenajn paŝojn:

  • prenis datuman rubejon de SPI-poŝmemoro;
  • provis forĵeti datumojn de PSoC-poŝmemorilo;
  • kontrolis, ke la komunikado inter Cypress PSoC kaj JMS539 efektive enhavas klavopremojn;
  • Mi certigis, ke kiam oni ŝanĝas la pasvorton, nenio estas anstataŭita en la SPI-ekbrilo;
  • estis tro maldiligenta por inversigi la 8051-firmware de JMS539.

3.1. Prenante datuman rubejon de SPI-eksmemorilo

Ĉi tiu proceduro estas tre simpla:

  • konekti sondilojn al la kruroj de la poŝmemoro: CLK, MOSI, MISO kaj (laŭvola) EN;
  • "flaru" komunikadojn kun flaristo uzante logikan analizilon (mi uzis Saleae Logic Pro 16);
  • malkodi SPI-protokolon kaj eksporti rezultojn al CSV;
  • utiligi decode_spi.rbanalizi la rezultojn kaj akiri rubejon.

Bonvolu noti, ke ĉi tiu aliro funkcias precipe bone en la kazo de la regilo JMS539, ĉar ĉi tiu regilo ŝarĝas la tutan firmvaron de la flash drive en la komenca stadio.

$ 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

Preninte rubejon de la SPI-ekbrilo, mi alvenis al la konkludo, ke ĝia sola tasko estas stoki la firmvaro por la kontrola aparato JMicron, kiu estas enkonstruita en la mikroregilon 8051. Bedaŭrinde, preni rubejon de la SPI-eksmemorilo montriĝis senutila:

  • kiam la PIN-kodo estas ŝanĝita, la forĵetaĵo de flash drive restas la sama;
  • Post la komenca etapo, la aparato ne aliras la SPI-poŝmemorilon.

3.2. Flarante komunikadojn

Ĉi tio estas unu maniero trovi kiu blato respondecas pri kontrolado de komunikadoj por la tempo/enhavo de intereso. Kiel ni jam scias, la USB-SATA-regilo estas konektita al la Cypress PSoC LCD per konektilo CN1 kaj du rubandoj. Tial ni ligas la sondilojn al la tri respondaj gamboj:

  • P4, ĝenerala enigo/eligo;
  • P11, I2C SCL;
  • P13, I2C SDA.

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Poste ni lanĉas la logikan analizilon Saleae kaj enigu sur la klavaro: "123456~". Kiel rezulto, ni vidas la sekvan diagramon.

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Sur ĝi ni povas vidi tri kanalojn de interŝanĝo de datumoj:

  • estas pluraj mallongaj ekestoj sur kanalo P4;
  • sur P11 kaj P13 - preskaŭ daŭra interŝanĝo de datumoj.

Zomante la unuan pikilon sur kanalo P4 (blua rektangulo en la antaŭa figuro), ni vidas la jenon:

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Ĉi tie vi povas vidi, ke ĉe P4 estas preskaŭ 70ms de monotona signalo, kiu komence ŝajnis al mi ludi la rolon de horloĝa signalo. Tamen, post iom da tempo kontrolanta mian divenon, mi malkovris, ke ĉi tio ne estas horloĝa signalo, sed sona fluo, kiu estas eligita al la tweeter kiam la klavoj estas premataj. Tial ĉi tiu sekcio de la signalo mem ne enhavas utilajn informojn por ni. Tamen, ĝi povas esti uzata kiel indikilo por scii kiam la PSoC registras klavan premon.

Tamen, la plej nova sona fluo de P4 estas iom malsama: ĝi estas la sonaĵo por la "nevalida PIN"!

Revenante al la klavoprema grafeo, zomante la lastan sonfluan grafeon (vidu la bluan rektangulon denove), ni ricevas:

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

Ĉi tie ni vidas monotonajn signalojn sur P11. Do ŝajnas, ke ĉi tio estas la horloĝsignalo. Kaj P13 estas datumoj. Rimarku kiel la ŝablono ŝanĝiĝas post kiam la bipo finiĝas. Estus interese vidi kio okazas ĉi tie.

Protokoloj, kiuj funkcias kun du dratoj, estas kutime SPI aŭ I2C, kaj la teknika specifo pri Cypress deklaras, ke ĉi tiuj pingloj respondas al I2C, kion ni vidas estas vera en nia kazo:

Inversigi kaj haki Aigo mem-ĉifradan eksteran HDD-diskon. Parto 1: Dissekcado en partojn

La pecetaro USB-SATA konstante sondas la PSoC por legi la staton de la ŝlosilo, kiu defaŭlte estas "0". Tiam, kiam vi premas la klavon "1", ĝi ŝanĝiĝas al "1". La fina transdono tuj post premado de "~" estas malsama se la malĝusta PIN-kodo estas enigita. Tamen, nuntempe mi ne kontrolis tion, kio efektive estas transdonita tie. Sed mi suspektas, ke ĉi tio verŝajne ne estas ĉifrada ŝlosilo. Ĉiuokaze, vidu la sekvan sekcion por kompreni kiel mi forigis la internan firmware de PSoC.

fonto: www.habr.com

Aldoni komenton