DL3021A elektronik yükü DL3031A haline getirmek

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
22,069
Daha önce elimdeki DL3021 elektronik yükü, eevblog'daki bilgilerle DL3021A haline getirmiştim. Ama bu elektronik yükün tamirini yaptığım zaman, iç yapısında 200 W yerine 350 W tüketecek kadar ilave MOSFET konulabildiğini gördüm. Ama sadece MOSFET'leri ilave etmekle iş muhtemelen olmayacak, bir konfigürasyon değişikliği falan da gerekecektir.

Bugün DL3021'in güncel firmware zip dosyasını indirdim. DL3000 diye geçiyor, yani 200 W ve 350 W modelin firmware'i ortak, bu da ümitlendiriyor. Zip dosyasını açınca içinde bir GEL dosya ile karşılaştım. Bir hex dosya görüntüleyici ile bakınca, içinde mantıklı bir kod olmadığını gördüm, yani bir şekilde bir şifreleme var. Gene eevblog'da bu hack işleri ile ilgili konuları inceleyince, birilerinin bu GEL formatının yapısını çözdüklerini gördüm. Bunun için bir de Visual Studio C++ kaynak kodu koymuşlar. Bu dosyayı linux altında derleyecek hale getirdim ve çıkan programla GEL dosyasını işledim. Çıkan dosyanın içinde bu sefer mantıklı bir makina dili kodu var gibi duruyordu, çünkü bir sürü hata mesaji, ekran mesajı string'leri vardı.
 
Sonra elektronik yükte kullanılan işlemci olan iMX283'ün reference manual dosyasında boot metotlarına baktım. Bu işlemci birçok boot metodu destekliyor. Kontrol kartı üzerinde hem EEPROM var hem de NAND flash var. Ama binary dosyanın boyutuna bakınca bu binary EEPROM'da yer alıyor olamaz çünkü EEPROM Winbond 25X40CL ve bunun kapasitesi 512 KByte, binary boyutu ise 8 MByte'tan fazla.

Demekki NAND flash'tan boot ediyor diye düşündüm. iMX283 ün NAND boot süreçlerine bakınca, NAND yapısının belli bir şekilde olması gerektiği belirtiliyor. İlk sektörde belli bir header'in olması gerekiyor. Ama ben hex viewer ile bu şifresi açılmış GEL'e bakınca böyle bir header göremiyorum.
 
Sonra elektronik yükü ON yapıp kurcalamaya başladım, bir yandan da düşünüyorum ... Sistem information'a bakınca, bir firmware version, bir de boot versiyon görünüyor. Firmware versiyon string'i GEL'in içinde var, ama boot versiyon string'i GEL'de yok. O zaman bu NAND'den boot etmiyor, gene EEPROM'dan boot ediyor olduğunu düşünmeye başladım.

GEL dosyasındaki string'leri biraz daha inceledim ve şu bölgede birşey dikkatimi çekti: Burada UFFS diye bir filesistem'den bahsediyor ve bu string birçok yerde daha geçiyor. Demekki bu işlemci EEPROM'dan boot ediyor, EEPROM'daki program da NAND flash'ı UFFS olarak mount ediyor, sonra da oradaki uygulama programı çalıştırılıyor.

1622146260366.png
 
Yani bu GEL dosyasının şirfesinin açılmış hali, bir UFFS filesystem image gibi duruyor. Bunu linux'ta mount etmenin bir yolunu göremedim. Aşağıdaki var:


Ama bu sanki bir dosyayı mount etmek için değil, bir UFFS filesystem'i simule etmek için sadece işe yarar gibi. Buna biraz daha bakacağım.
 
Ama bu işi kesin olarak ne olduğunu anlamak için, power on ve boot'tan itibaren neler oluyor ona bakmak lazım. O yüzden rahat duramadım, daha önce tamir ettiğim DL3021A yı tekrar söktüm ve kontrol kartını çıkardım. Sonra da üzerindeki EEPROM'u söktüm ve şimdi onun içeriğini dump edeceğim. Sonra da bu hex dump üzerinden incelemeye devam edeceğim.

IMG_20210527_232144.jpg


IMG_20210527_232451.jpg
 
Başından beri söylüyorum bence bütün olay bu EEPROM üzerinde saklanıyor.

Belki de sadece model numarasını HACK ederken DL3021A yerine DL3031A ayarlasaydın çalışacaktı.

Yedekleri alınca bi denesen mi? :D
 
Okutacaktım ama benim programlayıcıda bu entegreye göre soket yok :mad:
 
Soket adaptörünü ısmarladım bakalım. 13 dolar tuttu, gümrük engelini de hayırlısıyla atlatırsa işimiz tamam.
 
@taydin, beklerken seni boşta bırakmamak için benim cihazın spi flashını(25x40clnig) okudum :). Dosyayı aşağıya bıraktım.
Dosyanın ilk bölümüne baktığımız zaman, 0x14 den itibaren "STMP" ve 0x34 den itibaren "sgtl" ibareleri görülüyor. Bunlara göre araştırma yapıldığında ise, https://www.rockbox.org/wiki/SbFileFormat ve benzer dokümanlarda geçtiğine göre, bu dosya nxp nin elftosb programı ile oluşturulmuş secure boot dosyası. Bu işlerden pek anlamam. Dosya şifreli galiba. Ama sen çözersin diye umuyorum....



İlgileneler için: Elimde herhangi bir programlayıcı olmadığı için basit bir programla arduino due ile okuma yaptım. Arduino due kullanmamın nedeni, spi bus'ın 3.3volt olması. Okuma yaptığımız spi flash da 3.3 volt ile besleniyor. Veri yakalama ve dosyaya yazma için CoolTerm programını kullandım...



20210531_231243.jpg
20210531_232557.jpg

20210601_182810.jpg
 

Ekler

  • DL3021_25X40.txt
    512 KB · Görüntüleme: 99
  • DUMP.ino
    1.1 KB · Görüntüleme: 82
Eline sağlık Ümit, bizim adaptörün gelmesi kesin birkaç hafta sürerdi ...

Yalnız dikkatimi çekti, senin yükü A ya yükseltmemişsin :)
 
Hmm şimdi IDA ile baktım. Hiçbir yerde ARM makina kodu görülmüyor. Hiçbir string sabit de görünmüyor. Bu kötü haber ... Eğer HAB denen secure boot seçeneğini kullandılarsa EEPROM'un içi tamamen şifrelenmiş bir kod demektir.

1622565563592.png
 
Acaba SPI dan okurken MSB/LSB ayarını ters vermiş olabilir misin? Eğer öyle ise bütün byte'ler ters sırada olacak.
 
Valla aynısını düşünüp bu chip i arduinoya bağlamadan önce eski bi laptop kartında benzer bir bios chip vardı onu söküp programı öyle oluşturdum. Bu chip içerisinde bios la ilgili bi sürü anlamlı mesaj vardı. Ondan sonra bizim chip e geçtim. Program değişmedi. Ayrıca yukarıda verdiğim linkteki dokümanda 0x14 den itibaren "STMP" ve 0x34 den itibaren "sgtl" ibareleri aynen bu dosyada da var. Bunları görünce ters olmadığı kanısına varmıştım. Büyük ihtimalle dosya şifreli internette bununla ilgili bir çok örnek var malesef.
 
Tamam şimdi gördüm STMP ile ilgili yazdıklarını. NAND flash şifreli değil onu mount edip bakmaya çalışmak lazım o zaman. Bunda kriptografik anahtarlar falan kullanılmış, pek hack edilecek birşeye benzemiyor ...
 
Yanlış mı biliyorum, bu spi flash da uboot benzeri bi bootloader var. Bootloader da NAND flash a USB üzerinden uygulamayı yüklüyor. Öyleyse neden NAND flash a yüklenen program şifreli değil?
 
uboot linux olan sistemlerde kullanılıyor. Bu SPI EEPROM sadece 512 KByte, linux sığmaz buna. Burada görünüşe göre doğrudan secure boot ile bir firmware çalışıyordur.

Eğer bütün hardware init ve FPGA yapılandırma SPI EEPROM'daki kod ile yapılıyorsa, artık NAND deki uygulama programının şifreli olmasıne gerek kalmıyor.
 
  • Beğen
Reactions: umk
Bu STMP şifreleme işini yapan programın github deposu aşağıda:


Bunu buid ettim. elftosb, keygen, ve sbtool diye üç program üretti.
 
@umk senin elde ettiğin şifrelenmiş dosyayı sbtool'a verince şöyle bir çıktı veriyor:

Bash:
[ta@bonsai elftosb]$ bld/linux/sbtool DL3021_25X40.enc
---- Boot image header ----
Signature 1:           STMP
Signature 2:           sgtl
Format version:        1.1
Flags:                 0x0000
Image blocks:          17286
First boot tag block:  9
First boot section ID: 0x00000000
Key count:             1
Key dictionary block:  7
Header blocks:         6
Section count:         1
Section header size:   1
Timestamp:             546448314000000
Product version:       999.999.999
Component version:     999.999.999
Drive tag:             0x0000
SHA-1 digest of header:
    0x00000000: b6 49 82 63 0a 3a 99 58 91 0e 65 23 3a 44 23 a7
    0x00000010: 71 b1 5b b5
Header digest is correct.

---- Section table ----
Section 0:
    Identifier: 0x0
    Offset:     10 blocks (160 bytes)
    Length:     17274 blocks (276384 bytes)
    Flags:      0x00000001
                0x1 = ROM_SECTION_BOOTABLE

---- Key dictionary ----
error: the image is encrypted but no key was provided
[ta@bonsai elftosb]$
 
  • Beğen
Reactions: umk
Bu şifreyi açmak için şimdi bize bir key lazım :) Bu noktada şöyle düşünüyorum: Bu adamlar (Rigol ahalisi) ürünlerinin hacklenmesini özellikle istiyorlar. Bu kadar şifreleme olaylarına girdiklerine bile şaşırdım. Ama bu key büyük ihtimalle bir yerlerde ipucu olarak açıklanmıştır. Biraz EEVBlog okumak lazım, böyle şeyler orada bulunur.
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,985
Mesajlar
102,105
Üyeler
2,517
Son üye
Dzenit

Son kaynaklar

Son profil mesajları

deneyci wrote on hakan8470's profile.
Sibonge uNkulunkulu ngokuhlukahluka asinike kona.

Bu hangi dil? :)
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
Back
Top