Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Сыртқы өзін-өзі шифрлайтын дискілерді өзгерту және бұзу - менің бұрынғы хоббиім. Бұрын мен Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500 сияқты үлгілермен жаттығуға мүмкіндік алдым. Жақында бір әріптесім маған тағы бір экспонат әкелді: Patriot (Aigo) SK8671, ол типтік дизайн бойынша жасалған - СКД индикаторы және PIN кодты енгізуге арналған пернетақта. Осыдан шыққаны осы…

1. Кіріспе
2. Аппараттық құрал архитектурасы
– 2.1. Негізгі тақта
– 2.2. СКД индикаторлық тақтасы
– 2.3. Пернетақта тақтасы
– 2.4. Сымдарға қарап
3. Шабуыл қадамдарының реттілігі
– 3.1. SPI флэш-дискісінен деректер қоқысын алу
– 3.2. Иістеу коммуникациялары

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу


1. Кіріспе

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу
Тұрғын үй

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу
орауыш

Шифрланған деп болжанған дискіде сақталған деректерге қол жеткізу PIN кодын енгізгеннен кейін жүзеге асырылады. Бұл құрылғы туралы бірнеше кіріспе ескертпелер:

  • PIN кодын өзгерту үшін құлыпты ашпас бұрын F1 пернесін басу керек;
  • PIN-код 6-дан 9-ға дейінгі саннан тұруы керек;
  • 15 қате әрекеттен кейін диск тазаланады.

2. Аппараттық құрал архитектурасы

Алдымен құрылғының қандай компоненттерден тұратынын түсіну үшін оны бөліктерге бөлеміз. Ең жалықтыратын тапсырма - корпусты ашу: көптеген микроскопиялық бұрандалар мен пластик. Корпусты ашқаннан кейін біз мынаны көреміз (мен дәнекерленген бес істікшелі қосқышқа назар аударыңыз):

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

2.1. Негізгі тақта

Негізгі тақта өте қарапайым:

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Оның ең көрнекті бөліктері (жоғарыдан төменге қарай қараңыз):

  • СКД индикаторы үшін қосқыш (CN1);
  • твиттер (SP1);
  • Pm25LD010 (спецификация) SPI флэш-дискісі (U2);
  • Jmicron JMS539 контроллері (спецификация) USB-SATA (U1) үшін;
  • USB 3 қосқышы (J1).

SPI флэш-дискісі JMS539 микробағдарламасын және кейбір параметрлерді сақтайды.

2.2. СКД индикаторлық тақтасы

СКД тақтасында таңғаларлық ештеңе жоқ.

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу
Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Бар болғаны:

  • Белгісіз шыққан СКД индикаторы (мүмкін қытайлық шрифт жиынтығымен); дәйекті бақылаумен;
  • Пернетақта тақтасына арналған таспа қосқышы.

2.3. Пернетақта тақтасы

Пернетақта тақтасын қарастырған кезде, жағдай қызықтырақ болады.

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Мұнда, артқы жағында біз таспа қосқышын, сондай-ақ Cypress CY8C21434 PSoC 1 микроконтроллерін көреміз (бұдан әрі оны жай PSoC деп атаймыз)

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

CY8C21434 M8C нұсқаулар жинағын пайдаланады (қараңыз құжаттама). [өнім бетінде]( (http://www.cypress.com/part/cy8c21434-24ltxi) технологияны қолдайтыны көрсетілген CapSense (сыйымды пернетақталарға арналған Cypress шешімі). Мұнда сіз мен дәнекерленген бес істікшелі қосқышты көре аласыз - бұл ISSP интерфейсі арқылы сыртқы бағдарламашыны қосудың стандартты тәсілі.

2.4. Сымдарға қарап

Мұнда не байланысты екенін анықтайық. Мұны істеу үшін сымдарды мультиметрмен тексеріңіз:

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Тізеде сызылған бұл диаграммаға түсініктемелер:

  • PSoC техникалық сипаттамада сипатталған;
  • келесі қосқыш, оң жақтағы - ISSP интерфейсі, ол тағдырдың қалауымен Интернетте бұл туралы жазылғанға сәйкес келеді;
  • Ең оң жақ қосқыш - пернетақта тақтасына таспа қосқышына арналған терминал;
  • Қара тіктөртбұрыш - негізгі тақтаны СКД тақтасына қосуға арналған CN1 қосқышының сызбасы. P11, P13 және P4 СКД тақтасындағы PSoC 11, 13 және 4 түйреуіштеріне қосылған.

3. Шабуыл қадамдарының реттілігі

Енді біз бұл дискінің қандай құрамдастардан тұратынын білеміз, бізге қажет: 1) негізгі шифрлау функциясының шын мәнінде бар екеніне көз жеткізу; 2) шифрлау кілттері қалай жасалатынын/сақталатынын білу; 3) PIN код нақты қай жерде тексерілетінін табыңыз.

Мұны істеу үшін мен келесі қадамдарды орындадым:

  • SPI флэш-дискісінен деректер қалдықтарын алды;
  • PSoC флэш-дискісінен деректерді шығаруға тырысты;
  • Cypress PSoC және JMS539 арасындағы байланыстың шын мәнінде перне басулары бар екенін растады;
  • Мен құпия сөзді өзгерту кезінде SPI флэш-дискісіне ештеңе жазылмағанына көз жеткіздім;
  • 8051 микробағдарламасын JMS539 нұсқасынан өзгертуге тым жалқау болды.

3.1. SPI флэш-дискісінен деректер қоқысын алу

Бұл процедура өте қарапайым:

  • зондтарды флэш-дискінің аяқтарына қосыңыз: CLK, MOSI, MISO және (қосымша) EN;
  • Логикалық анализаторды пайдаланып иісшілмен байланыстарды «иіскеу» (мен қолдандым Saleae Logic Pro 16);
  • SPI хаттамасын декодтау және нәтижелерді CSV-ге экспорттау;
  • артықшылығы бар decode_spi.rbнәтижелерді талдау және қоқыс алу.

Бұл әдіс әсіресе JMS539 контроллері жағдайында жақсы жұмыс істейтінін ескеріңіз, өйткені бұл контроллер баптандыру сатысында флэш-дискіден барлық микробағдарламаны жүктейді.

$ 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

SPI флэш-дискісінен қоқысты алып, мен оның жалғыз міндеті - 8051 микроконтроллеріне орнатылған JMicron басқару құрылғысының микробағдарламасын сақтау деген қорытындыға келдім. Өкінішке орай, SPI флэш-дискісін алып тастау пайдасыз болып шықты:

  • PIN коды өзгертілгенде, флэш-дискінің қоқысы өзгеріссіз қалады;
  • Баптандыру кезеңінен кейін құрылғы SPI флэш-дискісіне кірмейді.

3.2. Иістеу коммуникациялары

Бұл қызықтыратын уақыт/мазмұн бойынша байланыстарды тексеруге қандай чип жауапты екенін табудың бір жолы. Біз білетіндей, USB-SATA контроллері Cypress PSoC LCD-ге CN1 қосқышы және екі таспа арқылы қосылған. Сондықтан біз зондтарды үш сәйкес аяққа қосамыз:

  • P4, жалпы енгізу/шығару;
  • P11, I2C SCL;
  • P13, I2C SDA.

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Содан кейін біз Saleae логикалық анализаторын іске қосып, пернетақтаға енгіземіз: «123456~». Нәтижесінде біз келесі диаграмманы көреміз.

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Онда біз үш деректер алмасу арнасын көре аламыз:

  • P4 арнасында бірнеше қысқа жарылыстар бар;
  • P11 және P13 бойынша - дерлік үздіксіз деректер алмасу.

P4 арнасындағы бірінші тікбұрышты үлкейту (алдыңғы суреттегі көк тіктөртбұрыш), біз келесіні көреміз:

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Мұнда сіз P4-де шамамен 70 мс монотонды сигнал бар екенін көре аласыз, ол маған бастапқыда сағат сигналының рөлін атқаратын сияқты көрінді. Дегенмен, менің болжамымды тексеруге біраз уақыт жұмсағаннан кейін, мен бұл сағаттық сигнал емес, пернелер басылған кезде твиттерге шығатын аудио ағын екенін білдім. Сондықтан сигналдың бұл бөлімінде біз үшін пайдалы ақпарат жоқ. Дегенмен, оны PSoC пернені басуды қашан тіркейтінін білу үшін индикатор ретінде пайдалануға болады.

Дегенмен, соңғы P4 аудио ағыны сәл өзгеше: бұл «жарамсыз PIN коды» дыбысы!

Пернелерді басу графигіне оралып, соңғы дыбыс ағынының графигін үлкейту (қайтадан көк тіктөртбұрышты қараңыз), біз мынаны аламыз:

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

Мұнда біз P11-де монотонды сигналдарды көреміз. Демек, бұл сағат сигналы сияқты. Ал P13 – деректер. Дыбыстық сигнал аяқталғаннан кейін үлгінің қалай өзгеретініне назар аударыңыз. Мұнда не болып жатқанын көру қызықты болар еді.

Екі сыммен жұмыс істейтін хаттамалар әдетте SPI немесе I2C болып табылады және Cypress-тегі техникалық спецификацияда бұл түйреуіштер I2C-ке сәйкес келетінін айтады, бұл біздің жағдайда дұрыс:

Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу

USB-SATA чипсеті әдепкі бойынша «0» болып табылатын кілт күйін оқу үшін PSoC-ны үнемі сұрайды. Содан кейін «1» пернесін басқан кезде ол «1» болып өзгереді. PIN коды қате енгізілсе, «~» түймесін басқаннан кейін бірден соңғы жіберу басқаша болады. Дегенмен, мен қазір ол жерде шын мәнінде не таралып жатқанын тексерген жоқпын. Бірақ бұл шифрлау кілті болуы екіталай деп ойлаймын. Қалай болғанда да, PSoC ішкі микробағдарламасын қалай жойғанымды түсіну үшін келесі бөлімді қараңыз.

Ақпарат көзі: www.habr.com

пікір қалдыру