Windows Portable Executable formatının kendi küçük nüansları vardır, bu yüzden nasıl çalıştıklarına dair hızlı bir kılavuz.
Bir Windows Portable Executable (PE), yürütülebilir dosyalar ve diğer ikili dosya türleri için Windows yerel dosya biçimidir. PE dosya formatı platformdan bağımsız olacak şekilde tasarlanmıştır, bu nedenle herhangi bir Windows makinesinde kullanılabilir. dosyanın ait olduğu aynı işletim sistemi sürümünü ve işlemci mimarisini çalıştıran derlenmiş
Öyleyse, Windows PE dosya biçimini inceleyelim ve yapısı ve bileşen bileşenleri hakkında bilgi edinelim.
Windows Taşınabilir Yürütülebilir Dosya Nedir?
Windows Portable Executable biçimini keşfetmeden önce, temel bilgileri netleştirmek önemlidir. Bir adım geriye gidelim ve Windows PE'nin altında yatan COFF kavramını öğrenelim.
Kaynak kodunu bir programa derlediğinizde, derleyici bir nesne dosyası (.obj) oluşturur. Bu nesne dosyası, bilgisayar için ikili biçimde yönergeler içerir.
COFF veya Ortak Nesne Dosya Biçimi, ikili yönergeleri temsil etmek için standartlaştırılmış bir dizi kuraldır. COFF, tüm COFF dosya biçimleri kod ve verileri düzenlemek için aynı kural ve gelenekleri izlediğinden, platformlar arası uyumluluğun korunmasına yardımcı olur. COFF başlangıçta *NIX sistemlerinde kullanılmak üzere geliştirilmiş olsa da, artık tüm platformlarda her yerde bulunur.
Windows Portable Executable (PE) dosya formatı, COFF'un bir modifikasyonudur ve yalnızca Windows'ta kullanılmak üzere geliştirilmiştir. 32 bit ve 64 bit Windows sistemleri. Nesne dosyaları için standartlaştırılmış bir biçim sağlayan COFF'tan farklı olarak Windows PE, yürütülebilir dosyalar ve kitaplık dosyaları için standartlaştırılmış bir biçim sağlar.
Söz konusu yürütülebilir dosya hakkında bilgi sağlayan ve sistem yükleyicinin yürütülebilir dosyayla ilgili verileri yönetmesine yardımcı olan bölümler ve başlıklar içerir. Bir PE dosyasındaki başlıklar, sistem yükleyicinin dosyayı belleğe eşlemesine, API dışa aktarma/içe aktarma gibi bağımlılıkları çözmesine, kaynakları yönetmesine ve dosyayı yürütme için hazırlamasına yardımcı olur.
Linux ayrıca kendi COFF yinelemesine sahiptir; Yürütülebilir Bağlantı Dosyası veya kısaca ELF ikilisi olarak adlandırılır. Çalıştırarak bir dosyanın ELF olup olmadığını kontrol edebilirsiniz. dosya komutu Linux'ta ilk argüman olarak dosya adı ile.
Windows Taşınabilir Yürütülebilir Dosyanın Yapısı
Portable Executable dosya biçimi, her biri belirli bir amaca sahip birkaç bileşenden oluşur. Bu bileşenler şunları içerir:
- Dosyanın her bir bölümünün düzenini ve özelliklerini açıklayan bölüm başlıkları Yürütülebilir kod, veri ve kaynakları içeren bölümlerin kendisi.
- Dosyanın genel yapısı ve gereksinimleri hakkında bilgi sağlayan PE başlığı.
- Dosya bir DOS sisteminde yürütüldüğünde çalışan küçük bir program içeren DOS başlığı.
- Ve son olarak, dosya içindeki her bölümün konumunu ve özniteliklerini açıklayan PE bölüm başlıkları.
Genel olarak, bu bileşenler, işletim sisteminin dosyada bulunan yürütülebilir kodu düzgün bir şekilde yüklemesine, yürütmesine ve yönetmesine izin veren yapılandırılmış bir biçim oluşturmak için birlikte çalışır. Her bileşenin tam olarak ne yaptığını öğrenelim.
DOS Başlığı
Bir PE dosyasının ilk bölümü DOS Başlığı olarak adlandırılır. DOS başlığında, bir DOS makinesinde de çalıştırılabilen az miktarda yürütülebilir kod depolanır.
Bu koda MS-DOS saplaması da denir ve PE dosyasını desteklemeyen sistemlerde hata mesajı atmak için kullanılır.
PE Başlığı
Portable Executable başlığı, dosyanın ne kadar büyük olduğu, farklı bölümlerin nerede bulunduğu ve yürütülebilir dosyanın hangi kaynaklara ihtiyaç duyduğu gibi yürütülebilir dosya hakkında bilgi verir. PE üstbilgisi, yürütülebilir dosyanın türü hakkında da bilgi içerir. Windows .DLL dosyası veya bir .EXE.
Bölüm Başlıkları
Kod, veri ve metin dizileri, resimler gibi kaynaklar gibi yürütülebilir bir dosyanın birçok bileşenini düzenlemek için bölümler uygulanır. Bölüm başlıkları, her bir bölümün boyutu ve konumu ile ilgili tüm bayraklarla ilgili bilgileri içerir.
Her bölüm başlığıyla ilişkili işaretler, bölümün çalıştırılabilir, yazılabilir veya okunabilir olup olmadığı gibi çeşitli niteliklerini gösterebilir. Bu bayraklar, işletim sisteminin programın yürütülmesi sırasında her bölümün içeriğini düzgün bir şekilde yüklemesine ve yönetmesine yardımcı olur.
Bölümler
Bölümlerin kendileri yürütülebilir dosyanın gerçek kodunu, verilerini ve kaynaklarını içerir. Her segment, belirli bir bellek sınırına göre hizalanmıştır ve işletim sisteminin bunu nasıl ele aldığını etkileyen kendi özniteliklerine sahiptir.
Artık Windows Taşınabilir Yürütülebilir Dosya Biçimi Hakkında Her Şeyi Biliyorsunuz
Windows Portable Executable, çok çeşitli Windows uygulamaları ve sistem bileşenleri üretmek için kullanılan sağlam ve çok yönlü bir dosya biçimidir. Geliştiriciler, PE dosya biçiminin yapısını anlayarak, Windows'un ayırt edici özelliklerinden yararlanan verimli uygulamalar oluşturabilir.
Birkaç standart ürünü izleyerek uygulamanızın üzerinde çalışacağı platform hakkında derinlemesine bir anlayış edinmenin yanı sıra kodlama uygulamaları, çalıştırıldığı platformdan bağımsız olarak uygulamanın kalitesini en üst düzeye çıkarabileceksiniz Açık.