Montaj talimatını belirli bir adreste güncellemek istiyorum. örneğinMontaj talimatının nasıl saklandığını inceleme
0x088... jmp 0x88465002
(gdb) x /2b 0x088
0x088... <main+20> 0xeb 0x15
Ben talimatları bayt olarak kodlanmıştır keşfetti: Bunu yapmak için, ben özellikle aşağıda talimat bakarak, montaj talimatları nasıl saklandığını görmek için bir C işlevi demonte JMP
, 0xEB
olarak kodlanmıştır. Ancak, neden JMP
'un yeri 0x15
olarak depolanıyor? Bunun nedeni, 0x15
bayt yığınını aşağı atlıyoruz (yani 0x15
ofset)?
Montajcı/Intel referans kılavuzuna sahip olursanız, hepsi açık olacaktır ... "Hiçbir şey yardımcı olmazsa, kılavuzu okuyun." –
Montaj yönergelerinin, bir program görüntüsünde yalnızca * makine * talimatlarına karşılık geldikleri anlamında adresleri olduğunu unutmayın. Ayrıca, makine yönergelerinin birden fazla bayt olarak kodlanabileceğini de unutmayın (görünüşte yaptığınız gibi herhangi bir işleneni hariç bile). –
Lütfen derleme dili ile ilgili bir kitap okuyun ve referans kılavuzuna sahip olun. – Olaf