Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Ārējo paššifrējošo disku apgriešana un uzlaušana ir mans vecais hobijs. Agrāk man bija iespēja praktizēt ar tādiem modeļiem kā Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Pavisam nesen kolēģis man atveda vēl vienu eksponātu: Patriot (Aigo) SK8671, kas ir uzbūvēts pēc tipiska dizaina - LCD indikators un tastatūra PIN koda ievadīšanai. Tas ir tas, kas no tā iznāca…

1. Ievads
2. Aparatūras arhitektūra
– 2.1. Galvenā plate
– 2.2. LCD indikatoru panelis
– 2.3. Tastatūras dēlis
– 2.4. Skatoties uz vadiem
3. Uzbrukuma soļu secība
– 3.1. Datu izgāztuves noņemšana no SPI zibatmiņas diska
– 3.2. Sakaru šņaukšana

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana


1. Ievads

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana
Корпус

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana
Iepakojums

Piekļuve diskā saglabātajiem datiem, kas it kā ir šifrēti, tiek veikta pēc PIN koda ievadīšanas. Dažas ievada piezīmes par šo ierīci:

  • Lai mainītu PIN kodu, pirms atbloķēšanas jānospiež F1;
  • PIN kodā jābūt no 6 līdz 9 cipariem;
  • Pēc 15 nepareiziem mēģinājumiem disks tiek notīrīts.

2. Aparatūras arhitektūra

Pirmkārt, mēs sadalām ierīci daļās, lai saprastu, no kādiem komponentiem tā sastāv. Nogurdinošākais uzdevums ir korpusa atvēršana: daudz mikroskopisku skrūvju un plastmasas. Atverot korpusu, mēs redzam sekojošo (pievērsiet uzmanību piecu kontaktu savienotājam, kuru pielodēju):

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

2.1. Galvenā plate

Galvenā plate ir pavisam vienkārša:

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Tās ievērojamākās daļas (skatīt no augšas uz leju):

  • savienotājs LCD indikatoram (CN1);
  • tweeter (SP1);
  • Pm25LD010 (specifikācija) SPI zibatmiņas disks (U2);
  • Jmicron JMS539 kontrolieris (specifikācija) USB-SATA (U1);
  • USB 3 savienotājs (J1).

SPI zibatmiņas disks saglabā JMS539 programmaparatūru un dažus iestatījumus.

2.2. LCD indikatoru panelis

LCD panelī nav nekā ievērības cienīga.

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana
Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Tikai:

  • Nezināmas izcelsmes LCD indikators (iespējams, ar ķīniešu fontu komplektu); ar secīgu vadību;
  • Lentes savienotājs tastatūras platei.

2.3. Tastatūras dēlis

Izpētot tastatūru, lietas iegūst interesantāku pagriezienu.

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Šeit, aizmugurē, mēs redzam lentes savienotāju, kā arī Cypress CY8C21434 mikrokontrolleri PSoC 1 (turpmāk mēs to vienkārši sauksim par PSoC)

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

CY8C21434 izmanto M8C instrukciju kopu (sk dokumentācija). [produkta lapā]( (http://www.cypress.com/part/cy8c21434-24ltxi) ir norādīts, ka tas atbalsta tehnoloģiju CapSense (risinājums no Cypress, kapacitatīvām tastatūrām). Šeit jūs varat redzēt piecu kontaktu savienotāju, kuru es pielodēju - tā ir standarta pieeja ārējā programmētāja pievienošanai, izmantojot ISSP interfeisu.

2.4. Skatoties uz vadiem

Noskaidrosim, kas šeit ir saistīts. Lai to izdarītu, vienkārši pārbaudiet vadus ar multimetru:

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Paskaidrojumi šai diagrammai, kas uzzīmēta uz ceļa:

  • PSoC ir aprakstīts tehniskajā specifikācijā;
  • nākamais savienotājs, pa labi, ir ISSP interfeiss, kas pēc likteņa gribas atbilst tam, kas par to rakstīts internetā;
  • Galējais labais savienotājs ir tastatūras plates lentes savienotāja spaile;
  • Melnais taisnstūris ir CN1 savienotāja zīmējums, kas paredzēts galvenās plates savienošanai ar LCD paneli. P11, P13 un P4 ir savienoti ar PSoC tapām 11, 13 un 4 LCD panelī.

3. Uzbrukuma soļu secība

Tagad, kad mēs zinām, no kādiem komponentiem šis disks sastāv, mums ir: 1) jāpārliecinās, ka pamata šifrēšanas funkcionalitāte patiešām ir pieejama; 2) noskaidrot, kā tiek ģenerētas/saglabātas šifrēšanas atslēgas; 3) atrodiet, kur tieši tiks pārbaudīts PIN kods.

Lai to izdarītu, es veicu šādas darbības:

  • paņēma datu izgāztuvi no SPI zibatmiņas diska;
  • mēģinājis izmest datus no PSoC zibatmiņas diska;
  • pārbaudīja, vai saziņa starp Cypress PSoC un JMS539 patiešām satur taustiņu nospiešanu;
  • Pārliecinājos, ka, mainot paroli, SPI zibatmiņas diskā nekas netiek pārrakstīts;
  • bija pārāk slinks, lai mainītu 8051 programmaparatūru no JMS539.

3.1. Datu izgāztuves noņemšana no SPI zibatmiņas diska

Šī procedūra ir ļoti vienkārša:

  • pievienojiet zondes zibatmiņas diska kājām: CLK, MOSI, MISO un (pēc izvēles) EN;
  • “nosaukt” sakarus ar šņaukšanas ierīci, izmantojot loģisko analizatoru (es izmantoju Saleae Logic Pro 16);
  • atšifrēt SPI protokolu un eksportēt rezultātus uz CSV;
  • izmantot priekšrocības decode_spi.rblai parsētu rezultātus un iegūtu izgāztuvi.

Lūdzu, ņemiet vērā, ka šī pieeja īpaši labi darbojas JMS539 kontrollera gadījumā, jo šis kontrolleris inicializācijas stadijā ielādē visu programmaparatūru no zibatmiņas diska.

$ 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

Izņemot SPI zibatmiņas disku, es nonācu pie secinājuma, ka tā vienīgais uzdevums ir saglabāt programmaparatūru JMicron vadības ierīcei, kas ir iebūvēta mikrokontrollerī 8051. Diemžēl SPI zibatmiņas diska izņemšana izrādījās bezjēdzīga:

  • mainot PIN kodu, zibatmiņas diska izgāztuve paliek nemainīga;
  • Pēc inicializācijas posma ierīce nepiekļūst SPI zibatmiņas diskam.

3.2. Sakaru šņaukšana

Šis ir viens no veidiem, kā noskaidrot, kura mikroshēma ir atbildīga par saziņas pārbaudi interesējošo laiku/saturu. Kā jau zinām, USB-SATA kontrolleris ir savienots ar Cypress PSoC LCD, izmantojot savienotāju CN1 un divas lentes. Tāpēc mēs savienojam zondes ar trim atbilstošajām kājām:

  • P4, vispārējā ievade/izvade;
  • P11, I2C SCL;
  • P13, I2C SDA.

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Pēc tam palaižam Saleae loģisko analizatoru un tastatūrā ievadām: “123456~”. Rezultātā mēs redzam šādu diagrammu.

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Tajā mēs redzam trīs datu apmaiņas kanālus:

  • kanālā P4 ir vairāki īsi pārrāvumi;
  • uz P11 un P13 - gandrīz nepārtraukta datu apmaiņa.

Tuvinot pirmo smaili kanālā P4 (zils taisnstūris iepriekšējā attēlā), mēs redzam sekojošo:

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Šeit var redzēt, ka uz P4 ir gandrīz 70ms monotons signāls, kas man sākumā likās pulksteņa signāla lomu. Tomēr pēc tam, kad pavadīju kādu laiku, pārbaudot savu minējumu, es atklāju, ka tas nav pulksteņa signāls, bet gan audio straume, kas tiek izvadīta uz tweeter, kad tiek nospiesti taustiņi. Tāpēc šī signāla sadaļa mums nesatur noderīgu informāciju. Tomēr to var izmantot kā indikatoru, lai uzzinātu, kad PSoC reģistrē taustiņu nospiešanu.

Tomēr jaunākā P4 audio straume ir nedaudz atšķirīga: tā ir "nederīga PIN" skaņa!

Atgriežoties pie taustiņsitiena grafika, tuvinot pēdējo audio straumes grafiku (atkal skatiet zilo taisnstūri), iegūstam:

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

Šeit mēs redzam monotonus signālus uz P11. Tātad izskatās, ka tas ir pulksteņa signāls. Un P13 ir dati. Ievērojiet, kā modelis mainās pēc pīkstiena beigām. Būtu interesanti redzēt, kas šeit notiek.

Protokoli, kas darbojas ar diviem vadiem, parasti ir SPI vai I2C, un Cypress tehniskajā specifikācijā ir norādīts, ka šīs tapas atbilst I2C, kas mūsu gadījumā ir taisnība:

Reversēšana un uzlaušana Aigo paššifrējošais ārējais HDD. 1. daļa: gabalu sadalīšana

USB-SATA mikroshēmojums pastāvīgi aptauj PSoC, lai nolasītu atslēgas stāvokli, kas pēc noklusējuma ir “0”. Pēc tam, nospiežot taustiņu "1", tas mainās uz "1". Pēdējā pārraide uzreiz pēc “~” nospiešanas atšķiras, ja tiek ievadīts nepareizs PIN kods. Taču šobrīd neesmu pārbaudījis, kas tur īsti tiek pārraidīts. Bet man ir aizdomas, ka šī, visticamāk, nebūs šifrēšanas atslēga. Jebkurā gadījumā skatiet nākamo sadaļu, lai saprastu, kā es noņēmu PSoC iekšējo programmaparatūru.

Avots: www.habr.com

Pievieno komentāru