ProHoster > Блог > басқарма > Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу
Aigo өзін-өзі шифрлайтын сыртқы қатты дискіні кері қайтару және бұзу. 1-бөлім: Бөлшектерді бөлу
Сыртқы өзін-өзі шифрлайтын дискілерді өзгерту және бұзу - менің бұрынғы хоббиім. Бұрын мен Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500 сияқты үлгілермен жаттығуға мүмкіндік алдым. Жақында бір әріптесім маған тағы бір экспонат әкелді: Patriot (Aigo) SK8671, ол типтік дизайн бойынша жасалған - СКД индикаторы және PIN кодты енгізуге арналған пернетақта. Осыдан шыққаны осы…
Шифрланған деп болжанған дискіде сақталған деректерге қол жеткізу PIN кодын енгізгеннен кейін жүзеге асырылады. Бұл құрылғы туралы бірнеше кіріспе ескертпелер:
PIN кодын өзгерту үшін құлыпты ашпас бұрын F1 пернесін басу керек;
PIN-код 6-дан 9-ға дейінгі саннан тұруы керек;
15 қате әрекеттен кейін диск тазаланады.
2. Аппараттық құрал архитектурасы
Алдымен құрылғының қандай компоненттерден тұратынын түсіну үшін оны бөліктерге бөлеміз. Ең жалықтыратын тапсырма - корпусты ашу: көптеген микроскопиялық бұрандалар мен пластик. Корпусты ашқаннан кейін біз мынаны көреміз (мен дәнекерленген бес істікшелі қосқышқа назар аударыңыз):
2.1. Негізгі тақта
Негізгі тақта өте қарапайым:
Оның ең көрнекті бөліктері (жоғарыдан төменге қарай қараңыз):
SPI флэш-дискісі JMS539 микробағдарламасын және кейбір параметрлерді сақтайды.
2.2. СКД индикаторлық тақтасы
СКД тақтасында таңғаларлық ештеңе жоқ.
Бар болғаны:
Белгісіз шыққан СКД индикаторы (мүмкін қытайлық шрифт жиынтығымен); дәйекті бақылаумен;
Пернетақта тақтасына арналған таспа қосқышы.
2.3. Пернетақта тақтасы
Пернетақта тақтасын қарастырған кезде, жағдай қызықтырақ болады.
Мұнда, артқы жағында біз таспа қосқышын, сондай-ақ Cypress CY8C21434 PSoC 1 микроконтроллерін көреміз (бұдан әрі оны жай PSoC деп атаймыз)
CY8C21434 M8C нұсқаулар жинағын пайдаланады (қараңыз құжаттама). [өнім бетінде]( (http://www.cypress.com/part/cy8c21434-24ltxi) технологияны қолдайтыны көрсетілген CapSense (сыйымды пернетақталарға арналған Cypress шешімі). Мұнда сіз мен дәнекерленген бес істікшелі қосқышты көре аласыз - бұл ISSP интерфейсі арқылы сыртқы бағдарламашыны қосудың стандартты тәсілі.
2.4. Сымдарға қарап
Мұнда не байланысты екенін анықтайық. Мұны істеу үшін сымдарды мультиметрмен тексеріңіз:
Тізеде сызылған бұл диаграммаға түсініктемелер:
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 контроллері жағдайында жақсы жұмыс істейтінін ескеріңіз, өйткені бұл контроллер баптандыру сатысында флэш-дискіден барлық микробағдарламаны жүктейді.
SPI флэш-дискісінен қоқысты алып, мен оның жалғыз міндеті - 8051 микроконтроллеріне орнатылған JMicron басқару құрылғысының микробағдарламасын сақтау деген қорытындыға келдім. Өкінішке орай, SPI флэш-дискісін алып тастау пайдасыз болып шықты:
PIN коды өзгертілгенде, флэш-дискінің қоқысы өзгеріссіз қалады;
Баптандыру кезеңінен кейін құрылғы SPI флэш-дискісіне кірмейді.
3.2. Иістеу коммуникациялары
Бұл қызықтыратын уақыт/мазмұн бойынша байланыстарды тексеруге қандай чип жауапты екенін табудың бір жолы. Біз білетіндей, USB-SATA контроллері Cypress PSoC LCD-ге CN1 қосқышы және екі таспа арқылы қосылған. Сондықтан біз зондтарды үш сәйкес аяққа қосамыз:
P4, жалпы енгізу/шығару;
P11, I2C SCL;
P13, I2C SDA.
Содан кейін біз Saleae логикалық анализаторын іске қосып, пернетақтаға енгіземіз: «123456~». Нәтижесінде біз келесі диаграмманы көреміз.
Онда біз үш деректер алмасу арнасын көре аламыз:
P4 арнасында бірнеше қысқа жарылыстар бар;
P11 және P13 бойынша - дерлік үздіксіз деректер алмасу.
P4 арнасындағы бірінші тікбұрышты үлкейту (алдыңғы суреттегі көк тіктөртбұрыш), біз келесіні көреміз:
Мұнда сіз P4-де шамамен 70 мс монотонды сигнал бар екенін көре аласыз, ол маған бастапқыда сағат сигналының рөлін атқаратын сияқты көрінді. Дегенмен, менің болжамымды тексеруге біраз уақыт жұмсағаннан кейін, мен бұл сағаттық сигнал емес, пернелер басылған кезде твиттерге шығатын аудио ағын екенін білдім. Сондықтан сигналдың бұл бөлімінде біз үшін пайдалы ақпарат жоқ. Дегенмен, оны PSoC пернені басуды қашан тіркейтінін білу үшін индикатор ретінде пайдалануға болады.
Дегенмен, соңғы P4 аудио ағыны сәл өзгеше: бұл «жарамсыз PIN коды» дыбысы!
Пернелерді басу графигіне оралып, соңғы дыбыс ағынының графигін үлкейту (қайтадан көк тіктөртбұрышты қараңыз), біз мынаны аламыз:
Мұнда біз P11-де монотонды сигналдарды көреміз. Демек, бұл сағат сигналы сияқты. Ал P13 – деректер. Дыбыстық сигнал аяқталғаннан кейін үлгінің қалай өзгеретініне назар аударыңыз. Мұнда не болып жатқанын көру қызықты болар еді.
Екі сыммен жұмыс істейтін хаттамалар әдетте SPI немесе I2C болып табылады және Cypress-тегі техникалық спецификацияда бұл түйреуіштер I2C-ке сәйкес келетінін айтады, бұл біздің жағдайда дұрыс:
USB-SATA чипсеті әдепкі бойынша «0» болып табылатын кілт күйін оқу үшін PSoC-ны үнемі сұрайды. Содан кейін «1» пернесін басқан кезде ол «1» болып өзгереді. PIN коды қате енгізілсе, «~» түймесін басқаннан кейін бірден соңғы жіберу басқаша болады. Дегенмен, мен қазір ол жерде шын мәнінде не таралып жатқанын тексерген жоқпын. Бірақ бұл шифрлау кілті болуы екіталай деп ойлаймын. Қалай болғанда да, PSoC ішкі микробағдарламасын қалай жойғанымды түсіну үшін келесі бөлімді қараңыз.