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ı...

1. Giriş
2. Aparat memarlığı
– 2.1. Əsas lövhə
– 2.2. LCD göstərici lövhəsi
– 2.3. Klaviatura lövhəsi
– 2.4. Tellərə baxır
3. Hücum addımlarının ardıcıllığı
– 3.1. SPI flash sürücüsündən məlumat zibilinin çıxarılması
– 3.2. Koklama rabitələri

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


1. Giriş

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
Mənzil

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
Упаковка

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):

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

2.1. Əsas lövhə

Əsas lövhə olduqca sadədir:

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

Onun ən diqqətəlayiq hissələri (yuxarıdan aşağıya baxın):

  • LCD göstərici üçün birləşdirici (CN1);
  • tweeter (SP1);
  • Pm25LD010 (spesifikasiya) SPI flash sürücüsü (U2);
  • Jmicron JMS539 nəzarətçi (spesifikasiya) USB-SATA (U1) üçün;
  • USB 3 konnektoru (J1).

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.

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

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.

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

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.

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

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:

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

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ü;
  • PSoC flash sürücüsündən məlumatları atmağa çalışdı;
  • Cypress PSoC və JMS539 arasındakı əlaqənin əslində düymə vuruşlarını ehtiva etdiyini təsdiqlədi;
  • Şifrəni dəyişdirərkən SPI flash sürücüsündə heç bir şeyin üzərinə yazılmadığına əmin oldum;
  • 8051 proqram təminatını JMS539-dan geri qaytarmaq üçün çox tənbəl idi.

3.1. SPI flash sürücüsündən məlumat zibilinin çıxarılması

Bu prosedur çox sadədir:

  • zondları flash sürücünün ayaqlarına birləşdirin: CLK, MOSI, MISO və (isteğe bağlı) EN;
  • 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.

$ 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 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.

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

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.

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

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:

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

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:

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

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:

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

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.

Mənbə: www.habr.com

Добавить комментарий