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

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.
 
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
8,002
Mesajlar
131,949
Üyeler
3,191
Son üye
iclal

Son kaynaklar

Son profil mesajları

erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Back
Top