Hex içindeki sabiti değiştirme?

exjra

Üye
Katılım
9 Tem 2009
Mesajlar
10
Puanları
1
Merhabalar,

hi-tech c ile derlediğim bir hex dosyasının (pic16f628 için) içinden c tarafında şu şekilde kodladığım;

#define DATA "DENEME"

sabitinin değerini c# ile yazdığım programla bulup şu şekilde;

#define DATA "EEEEEE"

değiştirmek ve tekrar hex olarak kaydederek bunu hasar bırakmadan yapıp pic'e yüklemek istiyorum. Araştırdım pek bir bilgi bulamadım. Amacım kendi yazdığım bir programla bunu yapabilmek. Bu konuda tavsiyeniz nedir?
 
neden böyle bir şeye ihtiyaç duyuyorsun ki düzeltip tekrar derlemek işini çözmüyormu?
 
Bir yada iki kez yapılan bir işlem olsa haklısınız ancak günde 500 kez tekrarlanması gerek seri üretim gibi düşünün. Yada sadece bunu nasıl yapabilirim? Aslında c kodunu okuyup ilgili satırı değiştirip, kodun son halini de derleyiciye parametrik olarak gönderirsem sorun hallolur ama benim amacım direk hex üzerinde editleme.
 
peki hex editorleri var onlarla dosyayı açmayı denedinizmi?
 
Dosyayı açıyorum ancak DENEME datasını göremedim bir de yarın char dizi şeklinde deneyeceğim. Normalde hex editörlerde stringi görmem gerekirdi. Belki #define olduğu için derleyici farklı yorumluyordur. Stringi bir bütün olarak tutmuyor sanırım.
 
yapılabiliniyor.aynı islemi ben uzaktan kumanda programlarken kullandım.hex dosyası icinde degistirmek istedigim datayı bulup sadece onu degistirdim ve pic e yolladım.hatta pc den tıklamam gereken yerlerıde program otomatık olarak tıklıyordu.

alın bir deneyin
alarmko.net/download
burdan alamko_hex_prog.ex programını indireceksiniz.makina virüs olarak görmemesi icin uzantısını exe yerine ex yaptım düzeltirsiniz.
yapmak istediginiz programı bir kere hex e cevirin sonra üzerinde yapacagınız degisikligi yaptıktan sonra hex olarak farklı bir isimde kaydedin.benim programı calıstırın.iki dosya arasındaki farkı(yani degiskeni)bulacaktır.sonra bu degiskeni hangi aralıkta ve adımda degistirmek istiyorsanız alttaki kutucuklara yazın.güle güle kullanıııııınnnnnnnnn.:)
programda virüs veya herhangibir ıvır zıvır yoktur ama siz yinede tarayıcınızdan gecirin.

alttaki "kayda basla",animasyon" yazan yerler mausla periyodik yapmanız gereken noktaları tanıtıyorsunuz.program br kez ögrendimi daha sonra degiskenleri her seferinde otomatik degistirip tıklamısı gereken yerlere tıklıyor.
takıldıgınız yer olursa sorarsınız.
 
programın 1 byte'lık değişkenleri hex karşılaştırma yoluyla buluyor ancak unsigned int tipindeki bir veriyi bulamıyor sanırım 1 byte olduğunu düşünerek bu şekilde yaptın. Birkaç deneme yaptım hex editör programıyla karşılaştırarak. Örneğin unsigned int k = 1 dedim derledim ardından 2 dedim derledim bu ikisini karşılaştırdığımda hex dosyanın byte bazında gruplandığını düşünürsek 10 ar byte lık satırların (adres 2070) ilk byte ları değişkenin değerini doğru gösterdi yani birinde 1 diğerinde 2 ancak enteresan gelen hemen alttaki satır başı yani 2080 de data 1 iken 7 data, 2 iken 6 ya düşmüş başka da bir fark yok. ayrıca 512 ve 32768 gibi değerler verip 1 e göre karşılaştırdığımda alt alta satır başlarında ya da yan yana byte 'lar şeklinde değil de yakın ancak tuhaf konumlanmış 3 ayrı byte gördüm karşılaştırmada farklılık olan. Bir de sanırım bu şekilde karşılaştırma methodu işme yaramayacak çünkü hex içerisinde editlemek istediğim değişkenlerin 2 adet unsigned int olmasına karar verdim sadece 1 değişken değil. Ne diyorsunuz bu duruma?
 
evet haklısınız,benim yaptıgım program tek bir degiskeni buluyor.birden fazla degiskeni degisitirmek isterseniz aynı mantıkla yapabilirsiniz.tek degisken icin denerken birinci dosyadaki degeri 1 secin sonraki dosyadakini bitis degeri secin.ben sabir kodlu kumanda programlarken degiskeni birden baslatıp 200 e kadar 3 er adım atlamalı programlıyordum mesela.
 

Forum istatistikleri

Konular
128,118
Mesajlar
915,146
Kullanıcılar
449,822
Son üye
hamidettin

Yeni konular

Çevrimiçi üyeler

Geri
Üst