Bir .exe dosyasının başlık baytlarını düzenleyebilir miyim, ancak yine de çalışan bir programı koruyabilir miyim?


2

Bildiğimiz gibi, exe dosyaları genellikle ASCII'de 4D5A veya 'MZ' ile başlar. Dosyanın normal çalışmasına izin verirken başlığı nasıl değiştiririm?

Şu an ccleaner'in exe dosyasına bakıyorum. Maalesef 10 rep'um yok, bu yüzden bir ekran görüntüsünü gönderemiyorum. Fakat sağdaki ASCII, programın ASCII'de çalıştırılamayacağını ve dolayısıyla 4D5A'nın işe yaramaz olduğunu söylüyor? Teknik olarak 4D5A'yı başka bir şeyle değiştirebilir miyim ve yine de işe yarayabilir mi?

Herhangi bir eski okul çocuğu burada olsaydı, 'DOS MZ' hakkında çok fazla bilgi sahibi olurdum.

Baktığım resim bu:

CCleaner Hex View

Yanıtlar:


3

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 ):

enter image description here

İç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 MZMark 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.


Cevap için teşekkürler. X86 kitabı harika görünüyor. Tam bir okuma veriyor olacak.
BubbleMonster

@BubbleMonster Kabul ediyorum, x86 Sökme kitabı çok yararlı ve bilgilendirici. Ayrıca bulabilirsiniz x86 Meclisi Vikikitap x86 Sökme Vikikitapını oldukça iyi bir şekilde tamamlayan bir başka harika kaynak.
Breakthrough
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.