Dosyanın çalışmasına izin verirken başlığı nasıl değiştiririm
normal olarak?
Yapamazsın!
Bir nedeni var MZ
string (16 biti temsil eden 0x5A4D
) "sihirli" bir numara olarak adlandırılır ve gerçekten de EXE / PE spesifikasyonuna göre gereklidir (kökleri DOS biçiminde çalıştırılabilir dosyalara kadar uzanır). Tüm modernlerin düzeni taşınabilir yürütülebilir aşağıdaki gibi görünür ( ref ):
İçinde bu MSDN makalesi Taşınabilir Yürütülebilir biçimiyle ilgili olarak, MS-DOS başlığı ayrıntılı olarak açıklanmıştır:
MS-DOS Başlığı
Her PE dosyası küçük bir MS-DOS® çalıştırılabilir dosyasıyla başlar. Bu saplama çalıştırılabilirliğine olan ihtiyaç, ilk günlerde ortaya çıktı
Windows, önemli sayıda tüketici çalıştırmadan önce.
Windows olmayan bir makinede çalıştırıldığında, program en azından
Windows çalıştırmak için gerekli olduğunu söyleyen bir mesaj yazdır
yürütülebilir.
Bir PE dosyasının ilk baytı, geleneksel MS-DOS başlığı ile başlar,
denilen IMAGE_DOS_HEADER
. Herhangi bir önemi olan sadece iki değer e_magic
ve e_lfanew
. e_lfanew
alan ofset dosyasını içerir
PE başlığı.
e_magic
alan (bir WORD [NB: 16 bit] ) değerine ayarlanması gerekiyor 0x5A4D
. Orada bir #define
bu değer için adlandırılmış IMAGE_DOS_SIGNATURE
.
ASCII temsilinde, 0x5A4D
olduğu MZ
Mark Zbikowski'nin baş harfleri,
MS-DOS'un orijinal mimarlarından biri.
Windows PE / .EXE formatıyla ilgili daha fazla bilgi için, bkz. Windows Yürütülebilir Dosyalar bölümü arasında x86 Sökme Vikikitap . Formatla ilgili geniş bir dizi düşük seviye bilgi içerir.