ProHoster > Блог > Administrado > 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
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...
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):
2.1. Ĉefa tabulo
La ĉefa tabulo estas sufiĉe simpla:
Ĝiaj plej rimarkindaj partoj (vidu de supre ĝis malsupre):
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.
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.
Ĉi tie, sur la malantaŭa flanko, ni vidas rubandkonektilon, same kiel Cypress CY8C21434 mikroregilon PSoC 1 (ĉi-poste ni simple nomos ĝin PSoC)
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:
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.
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.
Poste ni lanĉas la logikan analizilon Saleae kaj enigu sur la klavaro: "123456~". Kiel rezulto, ni vidas la sekvan diagramon.
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:
Ĉ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:
Ĉ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:
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.