exploit paylaşım grubumuz: t.me/HTTPwnn

ELF Nedir?

  • Konu başlatıcı Konu başlatıcı Nullsans
  • Başlangıç Tarihi Başlangıç Tarihi

Nullsans

WarNight Member
Katılım
26 Haz 2026
Mesaj
5
Reaksiyon
6
Puan
3
xentr_thread_starter

ELF Nedir?​

Selamlar bugün linux malware development kaynağımdan bir kaç kısa bölüm paylaşacağım umarım size yardımcı olur.
Kaynak:https://boxstrikes.gitbook.io/boxstrikes/execution/elf-nedir
Bir eleştirisi varsa acımadan eleştirin canolar ;)
ELF, Executable and Linkable Format anlamına gelir.

Linux sistemlerinde kullanılan standart çalıştırılabilir dosya formatıdır. Windows'taki PE (Portable Executable) dosyaları neyi ifade ediyorsa, Linux'ta da ELF dosyaları benzer bir görevi yerine getirir. Ancak ELF'i yalnızca Linux'un ".exe" karşılığı olarak düşünmek eksik bir yaklaşım olur.

Bir programı GCC gibi bir derleyici ile derlediğinizde kaynak kodunuz makine koduna çevrilir. Ortaya çıkan makine kodu temelde bir bayt dizisidir. Fakat bu baytların hangi bellek adreslerine yükleneceği, programın nereden başlayacağı, hangi bölümlerin çalıştırılabilir olduğu ve hangi kütüphanelerin kullanılacağı gibi bilgilerin de işletim sistemi tarafından bilinmesi gerekir.

İşte ELF formatı bu bilgileri kendi içerisinde barındırır.

ELF dosyalarının içerisinde bulunan header yapıları sayesinde kernel, programın nasıl yükleneceğini ve nasıl çalıştırılacağını anlayabilir. Bir ELF dosyasını çalıştırdığımızda kernel yalnızca makine kodunu çalıştırmaz; öncelikle ELF içerisindeki metadata ve header bilgilerini inceler.

Bu bilgiler arasında:

  • Programın giriş noktası (Entry Point)
  • Bellek yerleşimi
  • Segment ve section bilgileri
  • Dinamik kütüphane bağımlılıkları
  • Programın yüklenme şekli
gibi veriler bulunur.

Bu nedenle ELF dosyası yalnızca makine kodundan oluşmaz. Aynı zamanda işletim sistemine programın nasıl yürütüleceğini anlatan bir yol haritası içerir.

ELF Nasıl Çalıştırılır?​

Bir ELF dosyası çalıştırıldığında süreç kabaca şu şekilde işler:

  1. Kernel, exec çağrısını alır.
  2. Dosya açılır ve ilk birkaç baytı okunur.
  3. İlk baytlar dosyanın formatını belirler.
  4. Kernel dosyanın ELF formatında olduğunu doğrular.
  5. ELF header ve program header bilgileri incelenir.
  6. Gerekli segmentler belleğe yüklenir.
  7. Programın entry point adresine atlanır.
  8. CPU programı çalıştırmaya başlar.
ELF dosyalarının ilk dört baytı özel bir imza içerir:

7f 45 4c 46

Bu değerler sırasıyla:

0x7f E L F
anlamına gelir.

Kernel bir dosyayı çalıştırmaya çalıştığında öncelikle bu imzayı kontrol eder. Eğer beklenen ELF imzasını görürse dosyayı ELF olarak işler. Aksi halde farklı bir format olduğunu varsayar veya çalıştırma işlemini reddeder.

Bu nedenle ilk dört bayt, dosyanın formatını belirleyen en önemli bilgilerden biridir ve genellikle ELF'in sihirli sayısı (Magic Number) olarak adlandırılır.

Teşekkürler okuyan canolara ;)
 
Geri
En Üst