EXP-101: 1-Intel x86 Mimarisi

CPU Kayıtları (Registers)

  • CPU içinde bulunan küçük, yüksek hızlı depolama alanlarıdır.
  • Verileri geçici olarak saklar ve CPU işlemlerini kontrol eder.
  • Kesmeleri (interrupts) ve bellek işlemlerini (memory operations) yönetir.
  • Verileri depolamak, üzerinde işlem yapmak ve talimatları yürütmek için hayati öneme sahiptir.

Genel Amaçlı Kayıtlar (General Purpose Registers)

Sekiz adet genel amaçlı kayıt bulunmaktadır:

eax → Accumulator (Toplayıcı)
Genellikle aritmetik ve mantıksal işlemlerde kullanılır. Ayrıca çoğu zaman fonksiyonların dönüş değerini tutar.

ebx → Base Register (Taban Kaydı)
Genellikle bazı bellek alanlarının (örneğin bir dizinin başlangıç adresi) taban adresini tutar.
Verilere erişimde etkili adresin hesaplanmasına yardımcı olur

ecx → Counter (Sayaç)
Genellikle sayaç olarak kullanılır; örneğin, döngülerin yineleme sayısını veya bir dizgenin uzunluğunu saymak için.

edx → Data Register (Veri Kaydı)
Genellikle eax ile birlikte kullanılarak 64 bitlik değerlerin saklanması veya işlenmesinde görev alır.
edx:eax biçiminde birlikte çalışırlar.

esp → Stack Pointer (Yığın Göstergesi)
Daima yığının (stack) en üst noktasını işaret ede

ebp → Stack Base Pointer (Yığın Taban Göstergesi)
Mevcut fonksiyonun yığın çerçevesinin taban göstergesidir.
Yerel değişkenlere ve parametrelere erişmek için kullanılır

esi → Source Index (Kaynak İndeksi)
Veri blokları kopyalanırken, genellikle kaynak adresi göstergesi olarak kullanılır.

edi → Destination Index (Hedef İndeksi)
Veri blokları kopyalanırken, genellikle hedef adresi göstergesi olarak kullanılır.

Özel Amaçlı Kayıtlar (Special Purpose Registers)

eip → Instruction Pointer (Talimat Göstergesi)
Program sayacı gibi davranır; CPU tarafından yürütülecek bir sonraki talimatın bellek adresini gösterir.

Kaynakça:

https://www.corelan.be

Exploit Geliştirme 101 (2. Baskı) – M. ALPARSLAN AKYILDIZ

Hacking: The Art of Exploitation, 2nd Edition