ARM Cortex M3 icin disassembler

Bilinenler arasında Ghidra var. Ben de birkaç sene önce çok araştırmıştım, ama sonunda IDA Pro aldım. IDA piyasadaki işlemcilerin neredeyse tamamını destekliyor.
 
Sadece ARM little endian, ARMv7-M ve THUMB modudan disassemble yaptım, bir de vektör tablosundaki ilk 32 bit (stack) ve ikinci 32 bit (entry) olarak yapılandırdım. Stack SRAM içinde 0x20000800 adresine denk geliyor, ama entry point'da saçma sapan instruction'lar var. Orasını daha ayrıntılı incelemek lazım.
 

Ekler

  • STLinkV2.J16.S4.bin.lst.zip
    251.8 KB · Görüntüleme: 68
Tesekkurler. Fakat disassembler gordugu her hex degeri mnemonik'e cevirmeden dogrudan DCB ile hex deger olarak yazmis.
Yani benim bin dosyayi text halin cok az otesine cevirmis.
 
Neresinin kod neresinin data olduğunu bir yere kadar yorumlayabiliyor. Kullanıcının analiz yapıp bunları programa söylemesi gerekiyor.
 
Bu hic bir seyi yorumlayamamis.

Zamaninda 8051 ve TMS320C50 icin cok basarili bir disassembler yazmistim. Umarim zamanim olur CM3 icin de yazarim.
 
Son düzenleme:
Senin dediğin gibi programın çoğunu yorumlayıp gereken yerden assember gereken yerde data tanımlayan bir disassembler ben hiç duymadım. İstersen binary datanın tamamını program olarak çıktısını alayım. Ama olması gereken o değil. Olması gereken, reverse engineer eden kişi analiz sonucu belirlemesi lazım data neresi program neresi.
 
Mumkun. yukarida adlarini verdigim islemciler icin yazdim.

Reverse engineering zaten basli asina bir is. Bu yuzden disasseblerin olabildigince guzel sonuc cikartmasi lazim.

Boyle bir disassembler yazabilmek icin mimariyi iyi bilmek gerekiyor.
 
Mumkun. yukarida adlarini verdigim islemciler icin yazdim.

Yani rastgele bir binary veriyorsun, ve data/program olarak ayırabiliyor öyle mi? O zaman sen dünyada reverse engineering'in referans standardı olan IDA Pro'dan çok daha iyi bir disassembler yazmışsın demektir.
 
Yok oyle degil.

Bana Flash romu bastan sona okuyup bin olarak veriyorsun, ben de disasm edip asm olarak derlediginde ayni kodlari uretecek sekilde asm kodu geri veriyorum. Data, prog ayrilmis sekilde tabiki.
 
Son düzenleme:
Tamam şimdi anladım. Senin amaç tersine mühendislik yapmak, oradaki yazılımın tüm işlevlerini anlamak değil. Sen öyle bir assembler kaynak kod istiyorsun ki, onu derleyince aynı binary'yi geri versin. Bunun için tabiki ghidra veya ida ya ihtiyaç yok.
 
Assembly çıktı aldırdım. Derler mi bilemiyorum ama denemeye değer.
 

Ekler

  • STLinkV2.J16.S4.bin.asm.zip
    79.6 KB · Görüntüleme: 73
DCB, DCD, DCW gibi on eklerin ardina flash datalari eklersen asm derleyici derler.

Ama benim istedigim bu degil.

Bin verileri okuyup bunun karsiligi olan mnemonik kodu, operandlari tespit edebilmeli. Hatta cok daha fazlasini.

LDR R0, [R1, #10]

gibi asm kodlara donusmeli.

Boylece kodlara bakinca kodu yazan adamin ne yapmak istedigini takip edebilmeliyim.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,833
Mesajlar
99,481
Üyeler
2,477
Son üye
krmz

Son kaynaklar

Son profil mesajları

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.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top