Skip to main content

Exploitation Basics - Memory

En basit anlatımıyla memory, üzerinde yazma ve okuma işlemleri gibi işlemlerin gerçekleştirildiği bir elektronik donanımdır. PC donanımları üzerinde birçok hafıza mekanizması kullanılmaktadır. Bu yazıda RAM (Random Access Memory ) ve bir sonraki yazımızda da yazmaçlar üzerinde duracağız. RAM – Random Access Memory RAM olarak bilinen rastgele erişimli hafıza alanları geçici hafıza alanlarıdır ve işlemci ile birlıkte çalışan, donanımsal olarak işlemciye yakın duran bir alandır. Yazmaçlardan sonra en hızlı çalışan hafıza alanıdır.

Exploitation Basics - Registers

Yazmaçlar fiziksel olarak işlemcinin içinde bulunan hafıza alanlarıdır. Bu türden hafıza alanları işlem hızı en yüksek hafıza alanlarıdır. Ancak hızın yüksekliğinin yanında bu alanların boyutları da aynı oranda düşüktür. Burada ağırlıklı olarak 32 bit sistemler üzerinde kısaca durmaya çalışacağız. Genel Amaçlı Registerlar | EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP Segment Registerları | CS, DS, SS, ES, FS, GS Bayrak Registerları | Zero Flag, Negative Flag Instruction Pointer | EIP Kontrol Registerları | CR0 – CR4, CR3*

Exploitation Basics - x86 Assembly

Assembly programlama dili, C++, C# ve Java gibi programlama dilleri ile makine dili arasında bulunan düşük seviyeli bir programlama dilidir. Bu programlama dilinde işlemci türü ve mimarisine göre kod ve komutlar değişmektedir. Assembly dili ile donanım seviyesine erişimin çok hızlı olması nedeniyle yüksek seviyeli dillere göre çok daha hızlı çalışan uygulamalar gerçekleştirilebilmektedir. Birçok uygulamada performans ve hız gerektiren kısımlar çoğu zaman assembly ile geliştirilmiştir. Aygıt sürücüleri, video oyunları gibi alanlar bu dilin sık kullanıldığı alanlardır.

Linux System Programming - Part 7

Modern ve Yeni Paylaşılan Bellek Alanı Fonksiyonları Daha önceden de belirtildiği gibi paylaşılan bellek alanlarıiçin iki grup fonksiyon kullanılabilmektedir Bunlardan biri klasik ve eski SystemV fonksiyonlarıdır. Diğeri yeni fonksiyonlardır. Bu yeni fonksiyonlara POSIX paylaşılan bellek alanı fonksiyonları da denilmektedir. Fakat her her iki fonksiyon grubu da posix standartlarınca tescil edilmiş fonksiyonlardır. POSIX Paylaşılan bellek alanı fonksiyonları şöyle kullanılmaktadır. shm_open fonksiyonu ile sankipaylaşılan bellek alanı bir dosyaymış gibi yaratılır yada oluşturulur.

Linux System Programming - Part 6

Prosesler Arası Haberleşme (Interprocess Communication) Bir prosesin başka bir prosese bilgi gönderip almasına prosesler arası haberleşme denilmektedir. Prosesler arası haberleşme ikiye ayrılmaktadır. Aynı PC’de prosesler arası haberleşme Network altında birbirine bağlı farklı makinaların prosesler arası haberleşme. Aynı makinanın prosesleri arasında haberleşömelerde işletim sistemine özgü çeşitli sistemler kullanılmaktadır. Her nekadar sistemden sisteme değişse de pekcok sistem benzer yöntemleri kullanmaktadır. Farklı makinaların prosesleri arasındaki haberleşmelerde belirlenmiş bir takım kurallara uyulması gerekmektedir.

Linux System Programming - Part 5

Dosya Betimleyicilerinin Anlami BIr dosya acildiginda kernel o dosya ile ilgili islem yapabilmek icin bir veru yapisi olusturur. Buna dosya nesnesi (File object) denilmektedir. Bu dosya nesnesinin adresi dosya betimleyici tablosu denilen bir tabloya yazilir. Dosya betimleyici tablosu bir gosterici dizisidir. Dosya betimleyici tablosunun adresi de proses kontrol blogunda saklanmaktadir. Iste dosya betimleyicisi dosya betimleyicisi tablosunda bir index belirtir. O halde dosya betimleyicisini kullanan bir fonksiyonu cagirdigimizda (read fonksiyonu gibi) sirasiyla sunlar olur.