Cypress CY62157EV30LL SRAM Veri Okuma

Başlatan EmirKorkmaz, 03 Şubat 2022, 17:13:43

EmirKorkmaz

#15
Alıntı yapılan: z - 03 Şubat 2022, 23:26:13Pilli ramda veri saklamak guvenlik yontemlerinden birisidir fakat her engelin cozumu vardir.

Mesela kritik verilere sahip bir cihazin kutusunun vidalari gevsetilip kapagi biraz aralandiginda ramdaki verileri ucurmak cokca kullanilan tekniklerdendir.

Veriler cok cok kritik ise kartin ustune sadece switch degil, isik sensoru, xray sensoru vs vs de konur.

Hali hazırda uğraştığım cihaz VDO markasının üretmiş olduğu eski model bir cihaz. Eskiyle uğraşmamın sebebi ise en sağlam cihaz eski modeldi fakat üretimi kaldırdı. Eski model olduğu için birçok güvenlik açığı mevcut. Elnec BeeProg+ ile arka taraftaki Flash'da bütün cihazın verileri duruyor. Fakat çalışan bir cihazda pili çektiğiniz de SRAM eğer 3 saniye güç gitmez ise cihaz komple çöküyor. Cihaz işlemcisinde ise cihazın gömülü Ürün kodu olabilir. Fakat benim tahminim SRAM'de sadece cihazı çalıştırma kodları bulunuyor fakat ben çekemiyorum. Bu kodları çekip .bin dosyası şeklinde Flash'a yazabilirsem cihaz çalışabilir. Hem de pilsiz şekilde.

Ram ucmus mu? (*)
Hayir, o zaman her sey olunda.
Evet ucmus. O zaman bu durumu flasima da kaydedeyim.

Bu durum benim de aklıma geldi fakat flash'ı kontrol ettim bütün satırları tek tek çevirdim fakat bu şekilde bir kod görmedim.

Tagli

Tahminimce SRAM aslında runtime verilerini, bir başka deyişle olay kayıtlarını / tarihçesini tutmak için kullanılıyor. İçinde ek olarak ufak bir güvenlik anahtarı da olsa gerek, bu bir şekilde silinirse cihaz çalışmıyor. Ama asıl amacı canlı tarihçe tutmak olduğu için, bunun yerine flash vs. kullanılamaz bence.
Gökçe Tağlıoğlu

HexfeT

#17
Karta harici enerji vermeden, sadece pil takılı iken sram vcc pinine bakıp sram-pil ilişkisini netleştirmeniz lazım.

EmirKorkmaz

#18
Alıntı yapılan: Tagli - 03 Şubat 2022, 23:52:52Tahminimce SRAM aslında runtime verilerini, bir başka deyişle olay kayıtlarını / tarihçesini tutmak için kullanılıyor. İçinde ek olarak ufak bir güvenlik anahtarı da olsa gerek, bu bir şekilde silinirse cihaz çalışmıyor. Ama asıl amacı canlı tarihçe tutmak olduğu için, bunun yerine flash vs. kullanılamaz bence.

Dediğiniz sürücü verilerinin tamamı şuan flash'da kaç saat sürdü kilometre vs. Benim tahminim SRAM 512KB X 16 8.192MB kesinlikle bilgisayarı başlat komutları var. Diğer veriler zaten flash'da.

Alıntı yapılan: HexfeT - 03 Şubat 2022, 23:53:19Karta harici enerji vermeden, sadece pil takılı iken sram vcc pinine bakıp sram-pil ilişkisini netleştirmeniz lazım.

Denedim. Entegrenin 34,12 numaralı bacaklarına 3.2V sürekli geliyor. Pil çıkardıktan 3 saniye sonra 34,12 numaralı bacaklarda 0 volt akabinde cihaz çöküyor.
Çökmüş cihaza tekrar pili takınca aynı bacaklara voltaj geri geliyor. Fakat içerisinde ki bilgiler silindiği için cihaz çalışmıyor.

yas

Alıntı yapılan: Tagli - 03 Şubat 2022, 23:52:52Tahminimce SRAM aslında runtime verilerini, bir başka deyişle olay kayıtlarını / tarihçesini tutmak için kullanılıyor. İçinde ek olarak ufak bir güvenlik anahtarı da olsa gerek, bu bir şekilde silinirse cihaz çalışmıyor. Ama asıl amacı canlı tarihçe tutmak olduğu için, bunun yerine flash vs. kullanılamaz bence.

+Checksum kontrolü yapılıyor olabilir ve doğrulamadan geçmiyor olabilir.

brandice5

Herkes düşüncesini yazmış, bende yazayım :)

Bence RAM de kod filan yok, çünkü işlemcinin datasheet'ini incelerseniz işlemcinin zaten 512K flash belleği var. Kod harici bellekte koşsaydı, 512K flash lı bir işlemci kullanmak hem mantıksız, hem de ekstra maliyetli olurdu.

İkincisi, yine datasheeti incelerseniz işlemcinin zaten harici bellekten kod çalıştırma özelliği de yok :) bu bilgiler ışığında kodun dahili flashda olma olasılığı %99. Yani elinizdeki hurda kartlarda program kodu zaten mevcut.

Peki pil beslemeli harici RAM ne için kullanılıyor? Tabiki sürekli belleğe yazma işlemi gerektiren olay kaydı için. Belleğin RAM olması döngüsel olarak sonsuz sayıda yazma imkanı sunuyor, pilli olması ise cihaz enerjisi kesilse bile daha olay kayıtlarını sonradan okumak için. Kamyon, tanker gibi sürekli yollarda olan araçların olay kayıtları için flash veya eeprom gibi sınırlı yazma saykılı olan hafılazar uygun değil.

Peki pil söklünce neden çalışmıyor? Muhtemelen flashda çalışan kod bootdan hemen sonra RAM den bir seri numarası veya bir tür magic number gibi birşey okuyor, bu magic number ı bulamazsa çalışmaya devam etmiyor.

Ne yapılabilir? bol kanallı bir logic analyzer ile çalışan bir cihazın RAM asdres ve data hatları capture edilir. İşlemci boot esnasında RAM de hangi adresden hangi veriyi okuyup/yazıyor buna bakılır. RAM in asıl amacı olay kaydını tutmak olduğu için boot esnasında çok fazla data alış/verişi olacağını sanmıyorum. Toplasan belki 10/20 byte hadi bilemedin 100 byte okuyordur.

Yukarıdaki işlem çalışmayan cihaz içinde uygulanabilir. Sonuçta RAM boş olsa bile işlemci içindeki kod illaki RAM e bir okuma/yazma girişiminde bulunacaktır.
Çalışan karttan elde edilen veriler çalışmayan kart üzerinde denenir. RAM yerine varsa aynı pakette içine aynı adresde çalışan verilerin yazıldığı flash kullanılabilir. Veya RAM i simüle edecek birşey yapılabilir. Bu kısımda bir çok alternatif var.

Aslında sağlam bir bütçe ayırabiliyorsanız yapılamaycak birşey değil :) (simetrik veya asimetrik herhangi bir şifreleme olmadığını varsayarak)

EmirKorkmaz

Alıntı yapılan: brandice5 - 04 Şubat 2022, 01:02:33Herkes düşüncesini yazmış, bende yazayım :)

Bence RAM de kod filan yok, çünkü işlemcinin datasheet'ini incelerseniz işlemcinin zaten 512K flash belleği var. Kod harici bellekte koşsaydı, 512K flash lı bir işlemci kullanmak hem mantıksız, hem de ekstra maliyetli olurdu.

İkincisi, yine datasheeti incelerseniz işlemcinin zaten harici bellekten kod çalıştırma özelliği de yok :) bu bilgiler ışığında kodun dahili flashda olma olasılığı %99. Yani elinizdeki hurda kartlarda program kodu zaten mevcut.

Peki pil beslemeli harici RAM ne için kullanılıyor? Tabiki sürekli belleğe yazma işlemi gerektiren olay kaydı için. Belleğin RAM olması döngüsel olarak sonsuz sayıda yazma imkanı sunuyor, pilli olması ise cihaz enerjisi kesilse bile daha olay kayıtlarını sonradan okumak için. Kamyon, tanker gibi sürekli yollarda olan araçların olay kayıtları için flash veya eeprom gibi sınırlı yazma saykılı olan hafılazar uygun değil.

Peki pil söklünce neden çalışmıyor? Muhtemelen flashda çalışan kod bootdan hemen sonra RAM den bir seri numarası veya bir tür magic number gibi birşey okuyor, bu magic number ı bulamazsa çalışmaya devam etmiyor.

Ne yapılabilir? bol kanallı bir logic analyzer ile çalışan bir cihazın RAM asdres ve data hatları capture edilir. İşlemci boot esnasında RAM de hangi adresden hangi veriyi okuyup/yazıyor buna bakılır. RAM in asıl amacı olay kaydını tutmak olduğu için boot esnasında çok fazla data alış/verişi olacağını sanmıyorum. Toplasan belki 10/20 byte hadi bilemedin 100 byte okuyordur.

Yukarıdaki işlem çalışmayan cihaz içinde uygulanabilir. Sonuçta RAM boş olsa bile işlemci içindeki kod illaki RAM e bir okuma/yazma girişiminde bulunacaktır.
Çalışan karttan elde edilen veriler çalışmayan kart üzerinde denenir. RAM yerine varsa aynı pakette içine aynı adresde çalışan verilerin yazıldığı flash kullanılabilir. Veya RAM i simüle edecek birşey yapılabilir. Bu kısımda bir çok alternatif var.

Aslında sağlam bir bütçe ayırabiliyorsanız yapılamaycak birşey değil :) (simetrik veya asimetrik herhangi bir şifreleme olmadığını varsayarak)

Fikirleriniz için çok teşekkürler. Fakat anlamadığım kısım SRAM neden 8 MB? Ufak bir yazma işlemi için 8MB bir bellek kullanmak karlı bir iş değil. Önceden işlemci okumuştum fakat çok eski cihazdı onun içerisinde cihazın Ürün numarası gömmüşlerdi. Bunda ise durum çok farklı. Dediğiniz gibi çalışan bir cihazdan Flash hiç çekemedim sebebi ise 48 pin olduğu için araları çok dar. Nasıl bir aparat yapsam ki bunu devre üzerinden verileri çekebileyim.

EmirKorkmaz

Buyrun çökmüş olan cihazdan indirdiğim flashdaki çektiğim .bin dosyası.

https://dosya.co/0t1y17pkltnb/M29DW323DB.bin.html

yas

Alıntı yapılan: EmirKorkmaz - 04 Şubat 2022, 01:47:42Fakat anlamadığım kısım SRAM neden 8 MB? Ufak bir yazma işlemi için 8MB
Yanlış anlaşılmasın bu bahsi geçen sram 8 MegaBayt değil. 8 Megabit eğer MB ifadesi ile yazılırsa MegaByte, Mb ifadesi ile yazılırsa Megabit okunur.
Veri sayfasında bulunan ifade;
Alıntı YapThe CY62157EV30 is a high performance CMOS static RAM
organized as 512K words by 16 bits.
Yani 512 Kword lük bir alana sahip. Bir word 16 bitten oluştuğu için 512k x 16 = 8192Kbit => oda 8Mbit demek oluyor.

EmirKorkmaz

#24
Alıntı yapılan: yas - 04 Şubat 2022, 02:31:50Yanlış anlaşılmasın bu bahsi geçen sram 8 MegaBayt değil. 8 Megabit eğer MB ifadesi ile yazılırsa MegaByte, Mb ifadesi ile yazılırsa Megabit okunur.
Veri sayfasında bulunan ifade;Yani 512 Kword lük bir alana sahip. Bir word 16 bitten oluştuğu için 512k x 16 = 8192Kbit => oda 8Mbit demek oluyor.

Özür dilerim yanlış okumuşum  :)  bin dosyasını kontrol edebildiniz mi? altta @brandice5 söylemiş olduğu magic number kodunun SRAM'de bulunduğunu düşünüyorum. Kartı kontrol ettiğim de SRAM deki bazı bacaklar direk arkadaki Flash'a gidiyor ve bu yollar başka hiçbir yere gitmiyor net olarak emin değilim fakat tekrardan kontrol edeceğim.

Alıntı yapılan: brandice5 - 04 Şubat 2022, 01:02:33Herkes düşüncesini yazmış, bende yazayım :)

Bence RAM de kod filan yok, çünkü işlemcinin datasheet'ini incelerseniz işlemcinin zaten 512K flash belleği var. Kod harici bellekte koşsaydı, 512K flash lı bir işlemci kullanmak hem mantıksız, hem de ekstra maliyetli olurdu.

İkincisi, yine datasheeti incelerseniz işlemcinin zaten harici bellekten kod çalıştırma özelliği de yok :) bu bilgiler ışığında kodun dahili flashda olma olasılığı %99. Yani elinizdeki hurda kartlarda program kodu zaten mevcut.

Peki pil beslemeli harici RAM ne için kullanılıyor? Tabiki sürekli belleğe yazma işlemi gerektiren olay kaydı için. Belleğin RAM olması döngüsel olarak sonsuz sayıda yazma imkanı sunuyor, pilli olması ise cihaz enerjisi kesilse bile daha olay kayıtlarını sonradan okumak için. Kamyon, tanker gibi sürekli yollarda olan araçların olay kayıtları için flash veya eeprom gibi sınırlı yazma saykılı olan hafılazar uygun değil.

Peki pil söklünce neden çalışmıyor? Muhtemelen flashda çalışan kod bootdan hemen sonra RAM den bir seri numarası veya bir tür magic number gibi birşey okuyor, bu magic number ı bulamazsa çalışmaya devam etmiyor.

Ne yapılabilir? bol kanallı bir logic analyzer ile çalışan bir cihazın RAM asdres ve data hatları capture edilir. İşlemci boot esnasında RAM de hangi adresden hangi veriyi okuyup/yazıyor buna bakılır. RAM in asıl amacı olay kaydını tutmak olduğu için boot esnasında çok fazla data alış/verişi olacağını sanmıyorum. Toplasan belki 10/20 byte hadi bilemedin 100 byte okuyordur.

Yukarıdaki işlem çalışmayan cihaz içinde uygulanabilir. Sonuçta RAM boş olsa bile işlemci içindeki kod illaki RAM e bir okuma/yazma girişiminde bulunacaktır.
Çalışan karttan elde edilen veriler çalışmayan kart üzerinde denenir. RAM yerine varsa aynı pakette içine aynı adresde çalışan verilerin yazıldığı flash kullanılabilir. Veya RAM i simüle edecek birşey yapılabilir. Bu kısımda bir çok alternatif var.

Aslında sağlam bir bütçe ayırabiliyorsanız yapılamaycak birşey değil :) (simetrik veya asimetrik herhangi bir şifreleme olmadığını varsayarak)

Size nasıl ulaşabilirim? Tavsiyeleriniz neler.

brandice5

@EmirKorkmaz SRAM 8 megabyte değil 8 megabit, yani 1 megabyte. SRAM'in asıl amacı ufak veri okumak/yazmak değil, asıl amacı olay kayıtlarını tutmak. Yani bu kadar büyük olması normal. Ufak veri okuma/yazma kısmı cihaza özel bir seri numarası veya bir magic number filan olabilir.

Bu çökmüş dediğiniz bin dosyasını aldığınız cihaz fotoğrafını attığınız cihaz mı? yoksa başka bir cihaz mı? Çünkü chip adı (M29DW323DB) 4 megabyte flash olduğunu gösteriyor.
Aynı board üzerinde hem 512K flash hafızalı işlemci, hem 4 MB harici flash, hem de 1MB SRAM mi var? Burası benim için biraz karıştı. Kartın önlü arkalı fotoğrafını atabilirseniz belki daha iyi anlaşışabilir.

Attığınız bin dosyası içinde de olay kayıtları var gibi görünüyor. Eğer bu bin dosyası eski model cihaza ait ise, daha önce bahsettiğim flash silme/yazma sınırından dolayı yeni modelde tasarım değişikliğine gidip olay kayıtlarını silme/yazma sınırı olmayan SRAM'e taşımış olabilirler. Bin dosyası içinde hem kod hem de data var. Buradan sanki eski cihazda tamamen harici bellekten çalışan bir işlemci kullanılmış gibi görünüyor.

Tabi bunların hepsi birer tahmin :) yarım bir fotoğraf ve kısıtlı bilgi ile birşeyler bulup çıkarmaya çalışıyoruz :)
%100 olur diyemem ama bu işi gerçekten yapmak istiyorsanız ciddi bir zaman ve para yatırımı yapmanız gerek. Bu şekilde uzaktan forum üzerinde çözülmesi zor :)

yas

Bence takografın içerisini bile açmaya gerek yok.

Servislere yada üretime özel yapılmış buna benzer bir erişimle cihaz aktif hale geliyor olabilir.

resmi burdan aldım

Sozuak

#27
En basitinden şu yapılabilir ki her cihaza firmware yüklenirken o cihazın donanımından seri no da  yazılıma eklenir id şeklinde. Sramdaki programı kopyalasanız da id tutmayacağı için başka kartta çalışmaz.
Tahmin ettim böyle bir çapanoğlu çıkar diye de yazmadım. Veriler de şifrelenmiştir vs dışarıdan manipüle edilemesin diye.

Yazarkasaların da mali hafızası benzer

kimlenbu

Madem güzel para kazandıracak bir iş, bütün olay işlemcide. Bastır parayı, bir kaç bin dolara işlemciden kodu al, hex veya assembly olarak. Sonra bakarsın, nereye dallanıyor, ne yapıyor, nereden veri okuyor. Ram'in aktif bir görevi var mı.

Hatta freelancer'a ilan ver, yolla kartı çinliler direkt reverse engineering ile sana şematik yolluyorlar. İstersen kartın aynısını kopyalayıp yolluyorlar.

Bu kadar kazandıracaksa yatırım yapmaya değer.

Sozuak

Böyle yasal düzenlemelere tabi bir cihazın kopyasını yapıp satıp ruhsatlandıramazsınız idari makamlar kabul etmez. Yeri geliyor adamlar özel çip ürettirip kullanıyorlar ne olduğunu bile bulamazsınız. Öyle olsa pos cihazları da kopyalanır, yazarkasalar da kopyalanır. Hadi halledip sattınız, karşınızda VDO var. Anasını ağlatır yapanın. Bir kaza durumunda bu ortaya çıkınca al sana başka bela. Sahtecilikten de başınız belaya girer.
Kullan at tarzı birşey olsa uğraşılırdı ekonomik olarak fayda sağlar. Mesela bir hayvan çiftliğinde hayvanların boynuna darbelere dayanıklık kasası olan bir aparat takılıyordu içi açılamayan presli. Oradan cihazlar hayvanın kimliğini bilip yerini, verdiği süt miktarını hatta süt makinesine girince hayvanın varlığını kodunu tespit ediyordu. Pil bitince cihaz iptaldi. Cihazların  yapısını anlattık pillerini uygun noktadan kesip taktılar hepsi geri kullanıma girdi.
Bu tip bir cihaz olsa sorun yok ama bahsettiğiniz iş bence olmaz.