EXP-101: 5-Debug{ger,ging} ve Disassembler

Debugger Debugger (Hata Ayıklayıcı), çalışan bir programı analiz etmek, hataları tespit etmek ve yazılımın nasıl davrandığını daha iyi anlamak için kullanılan bir araçtır. Geliştiriciler ve güvenlik araştırmacıları, programın yürütülme sürecini adım adım izleyerek sorunları çözmek ya da yazılımın derinlemesine davranışını incelemek için debugger kullanır. Debugger’lar sayesinde: Popüler Debugger’lar: Debugging Debugging (hata ayıklama), bir yazılımın çalışması … Devamını oku

EXP-101: 4-LIFO (Last In, First Out) Nedir ?

Bilgisayar bilimlerinde birçok veri yapısı ve sistemin çalışma prensibi, belirli kurallara göre organize edilmiştir. Bu kurallardan biri olan LIFO (Last In, First Out), özellikle yığın (stack) veri yapısının temelini oluşturur. Bu yazıda LIFO’nun ne olduğunu, nasıl çalıştığını, hangi alanlarda kullanıldığını ve neden önemli olduğunu detaylı olarak inceleyeceğiz. LIFO Nedir? LIFO (Last In, First Out) ifadesi, … Devamını oku

EXP-101: 3-Bellek Yerleşimi (Memory Layout) ve Stack Operasyonları

Modern işletim sistemlerinde bir program çalıştırıldığında, işletim sistemi program için belirli bir bellek alanı ayırır. Bu bellek alanı, memory layout (bellek yerleşimi) adı verilen yapıya sahiptir. Bellek yerleşimi, programın farklı ihtiyaçlarına göre ayrılmış bölümlerden oluşur. Bu yazıda, bu bölümleri detaylarıyla inceleyecek ve özellikle stack yapısı ve stack operasyonlarına (PUSH, POP) odaklanacağız. 1. Bellek Yerleşiminin Bölümleri … Devamını oku

EXP-101: 2-Temel x86 Talimat Seti (Basic x86 Instructions Set)

Veri Hareketi Talimatları (Data Movement Instructions) Veri hareketi talimatları, verilerin farklı konumlara (kayıtlar, bellek vb.) taşınmasını sağlar. Aritmetik Talimatlar (Arithmetic Instructions) Aritmetik talimatlar, sayılar üzerinde temel matematiksel işlemler gerçekleştirir. Mantıksal Talimatlar (Logical Instructions) Bu talimatlar ikili (binary) seviyede mantıksal işlemler yapar. Kontrol Transfer Talimatları (Control Transfer Instructions) Programın yürütülme sırasını değiştiren talimatlardır. Hem koşullu hem … Devamını oku

EXP-101: 1-Intel x86 Mimarisi

CPU Kayıtları (Registers) 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 … Devamını oku