ProHoster > Blog > İdarə > Aigo özünü şifrləyən xarici HDD sürücüsünü geri çevirmək və sındırmaq. 1-ci hissə: hissələrə bölmək
Aigo özünü şifrləyən xarici HDD sürücüsünü geri çevirmək və sındırmaq. 1-ci hissə: hissələrə bölmək
Xarici özünü şifrləyən sürücüləri geri çevirmək və sındırmaq mənim köhnə hobbimdir. Əvvəllər Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500 kimi modellərlə təcrübə keçmək imkanım olub. Bu yaxınlarda bir həmkarım mənə başqa bir eksponat gətirdi: tipik dizayna uyğun qurulmuş Patriot (Aigo) SK8671 - LCD göstərici və PİN kodu daxil etmək üçün klaviatura. Ondan belə çıxdı...
Diskdə saxlanılan və guya şifrələnmiş məlumatlara giriş PİN kodu daxil etdikdən sonra həyata keçirilir. Bu cihaz haqqında bir neçə giriş qeydləri:
PİN kodu dəyişdirmək üçün kilidi açmadan əvvəl F1 düyməsini sıxmalısınız;
PİN kodu 6-dan 9-a qədər rəqəmdən ibarət olmalıdır;
15 yanlış cəhddən sonra disk təmizlənir.
2. Aparat memarlığı
Əvvəlcə cihazın hansı komponentlərdən ibarət olduğunu anlamaq üçün onu hissələrə ayırırıq. Ən yorucu vəzifə işi açmaqdır: çoxlu mikroskopik vintlər və plastik. Kassanı açdıqdan sonra aşağıdakıları görürük (lehimlədiyim beş pinli bağlayıcıya diqqət yetirin):
2.1. Əsas lövhə
Əsas lövhə olduqca sadədir:
Onun ən diqqətəlayiq hissələri (yuxarıdan aşağıya baxın):
SPI flash sürücüsü JMS539 və bəzi parametrlər üçün proqram təminatını saxlayır.
2.2. LCD göstərici lövhəsi
LCD lövhəsində diqqətəlayiq heç nə yoxdur.
Yalnız:
Naməlum mənşəli LCD göstərici (ehtimal ki, Çin şrift dəsti ilə); ardıcıl nəzarət ilə;
Klaviatura lövhəsi üçün lent konnektoru.
2.3. Klaviatura lövhəsi
Klaviatura lövhəsini araşdırarkən işlər daha maraqlı bir dönüş alır.
Budur, arxa tərəfdə bir lent konnektoru, həmçinin Cypress CY8C21434 mikrokontroller PSoC 1 (bundan sonra sadəcə PSoC adlandıracağıq) görürük.
CY8C21434 M8C təlimat dəstindən istifadə edir (bax sənədlər). [məhsul səhifəsində]( (http://www.cypress.com/part/cy8c21434-24ltxi) texnologiyanı dəstəklədiyi göstərilir CapSense (kapasitiv klaviaturalar üçün Cypress-dən həll). Burada lehimlədiyim beş pinli konnektoru görə bilərsiniz - bu, ISSP interfeysi vasitəsilə xarici proqramçının qoşulması üçün standart bir yanaşmadır.
2.4. Tellərə baxır
Gəlin burada nə ilə əlaqəli olduğunu anlayaq. Bunu etmək üçün telləri bir multimetr ilə yoxlayın:
Diz üzərində çəkilmiş bu diaqram üçün izahatlar:
PSoC texniki spesifikasiyada təsvir edilmişdir;
növbəti bağlayıcı, sağdakı biri, taleyin iradəsi ilə İnternetdə bu barədə yazılanlara uyğun gələn ISSP interfeysidir;
Ən sağdakı bağlayıcı klaviatura lövhəsinə lent konnektoru üçün terminaldır;
Qara düzbucaqlı CN1 konnektorunun rəsmidir, əsas lövhəni LCD lövhəsinə qoşmaq üçün nəzərdə tutulmuşdur. P11, P13 və P4 LCD lövhəsində PSoC 11, 13 və 4 pinlərinə qoşulub.
3. Hücum addımlarının ardıcıllığı
İndi bu diskin hansı komponentlərdən ibarət olduğunu bildiyimizə görə, bizə lazımdır: 1) əsas şifrələmə funksiyasının həqiqətən mövcud olduğundan əmin olun; 2) şifrələmə açarlarının necə yaradıldığını/saxlanıldığını öyrənin; 3) PİN kodun dəqiq harada yoxlanılacağını tapın.
Bunu etmək üçün aşağıdakı addımları etdim:
bir SPI flash sürücüsündən məlumat zibilini götürdü;
Məntiq analizatorundan istifadə edərək sniffer ilə ünsiyyəti "iyləmək" (istifadə etdim Saleae Logic Pro 16);
SPI protokolunu deşifrə etmək və nəticələri CSV-yə ixrac etmək;
faydalanın decode_spi.rbnəticələri təhlil etmək və dump almaq.
Nəzərə alın ki, bu yanaşma JMS539 nəzarətçisində xüsusilə yaxşı işləyir, çünki bu nəzarətçi başlatma mərhələsində bütün proqram təminatını flash sürücüdən yükləyir.
SPI flash sürücüsündən bir zibil götürərək belə qənaətə gəldim ki, onun yeganə vəzifəsi 8051 mikrokontrolörünə quraşdırılmış JMicron idarəetmə cihazı üçün proqram təminatını saxlamaqdır. Təəssüf ki, SPI flash sürücüsünün zibilini götürmək faydasız oldu:
PIN kodu dəyişdirildikdə, flash sürücünün zibil qutusu eyni olaraq qalır;
Başlama mərhələsindən sonra cihaz SPI flash sürücüsünə daxil olmur.
3.2. Koklama rabitələri
Bu, maraqlandığınız vaxt/məzmun üçün kommunikasiyaları yoxlamaq üçün hansı çipin cavabdeh olduğunu tapmaq üçün bir yoldur. Artıq bildiyimiz kimi, USB-SATA nəzarətçisi CN1 konnektoru və iki lent vasitəsilə Cypress PSoC LCD-yə qoşulur. Buna görə də, zondları üç uyğun ayağa bağlayırıq:
P4, ümumi giriş/çıxış;
P11, I2C SCL;
P13, I2C SDA.
Sonra Saleae məntiq analizatorunu işə salırıq və klaviaturaya daxil edirik: “123456~”. Nəticədə aşağıdakı diaqramı görürük.
Bunun üzərində üç məlumat mübadiləsi kanalını görə bilərik:
P4 kanalında bir neçə qısa partlayış var;
P11 və P13-də - demək olar ki, davamlı məlumat mübadiləsi.
P4 kanalında (əvvəlki şəkildəki mavi düzbucaqlı) ilk sünbülə yaxınlaşaraq aşağıdakıları görürük:
Burada görə bilərsiniz ki, P4-də demək olar ki, 70 ms monoton bir siqnal var, əvvəlcə mənə saat siqnalı rolunu oynadı. Bununla belə, təxminlərimi yoxlamaq üçün bir müddət sərf etdikdən sonra, bunun saat siqnalı deyil, düymələr basıldığında tweeterə çıxan səs axını olduğunu kəşf etdim. Buna görə də, siqnalın bu bölməsinin özündə bizim üçün faydalı məlumatlar yoxdur. Bununla belə, o, PSoC-nin bir düyməyə basmağı qeydə aldığını bilmək üçün bir göstərici kimi istifadə edilə bilər.
Bununla belə, ən son P4 audio axını bir az fərqlidir: bu, "etibarsız PİN" üçün səsdir!
Klaviatura vuruşu qrafikinə qayıdaraq, son səs axını qrafikini böyüdərək (yenidən mavi düzbucaqlıya baxın) əldə edirik:
Burada P11-də monoton siqnalları görürük. Beləliklə, bu saat siqnalı kimi görünür. Və P13 məlumatdır. Bip səsi bitdikdən sonra nümunənin necə dəyişdiyinə diqqət yetirin. Burada nə baş verdiyini görmək maraqlı olardı.
İki naqillə işləyən protokollar adətən SPI və ya I2C-dir və Cypress-dəki texniki spesifikasiyalar bu sancaqların I2C-yə uyğun olduğunu bildirir, bizim vəziyyətimizdə doğrudur:
USB-SATA çipset, açarın vəziyyətini oxumaq üçün daim PSoC-ni sorğulayır, standart olaraq "0"dır. Sonra "1" düyməsini basdığınız zaman "1"ə dəyişir. Səhv PİN kodu daxil edilərsə, “~” düyməsini basdıqdan dərhal sonra son ötürülmə fərqlidir. Lakin hazırda orada faktiki olaraq nə ötürüldüyünü yoxlamamışam. Amma mən bunun şifrələmə açarı olma ehtimalından şübhələnirəm. Hər halda, PSoC daxili proqram təminatını necə sildiyimi başa düşmək üçün növbəti hissəyə baxın.