Windows Portable Executable vormingus on oma väikesed nüansid, nii et siin on nende toimimise lühijuhend.
Windows Portable Executable (PE) on Windowsi algne failivorming täitmisfailide ja muude binaarfailitüüpide jaoks. PE-failivorming on loodud platvormist sõltumatuks, nii et seda saab kasutada kõigis Windowsi masinates töötab sama operatsioonisüsteemi versiooni ja protsessori arhitektuuriga, mille jaoks fail oli koostatud.
Niisiis, lahkame Windows PE-failivormingut ning tutvume selle struktuuri ja koostisosadega.
Mis on Windowsi kaasaskantav käivitatav fail?
Enne Windows Portable Executable vorminguga tutvumist on oluline selgeks teha põhitõed. Astume sammu tagasi ja tutvume Windows PE-COFF-i põhikontseptsiooniga.
Kui kompileerite lähtekoodi programmi, genereerib kompilaator objektifaili (.obj). See objektifail sisaldab binaarvormingus juhiseid arvuti jaoks.
COFF ehk Common Object File Format on binaarkäskude esitamise standardiseeritud tavade kogum. COFF aitab säilitada platvormidevahelist ühilduvust, kuna kõik COFF-failivormingud järgivad koodi ja andmete korraldamisel samu reegleid ja tavasid. Kuigi COFF töötati algselt välja *NIX-süsteemides kasutamiseks, on see nüüd levinud kõikidel platvormidel.
Windows Portable Executable (PE) failivorming on COFF-i modifikatsioon ja on välja töötatud kasutamiseks ainult 32-bitised ja 64-bitised Windowsi süsteemid. Erinevalt COFF-ist, mis pakub objektifailidele standardvormingut, pakub Windows PE täitmis- ja teegifailide jaoks standardvormingut.
See sisaldab jaotisi ja päiseid, mis annavad teavet kõnealuse käivitatava faili kohta ja aitavad süsteemilaaduril hallata käivitatava failiga seotud andmeid. PE-faili päised aitavad süsteemilaaduril faili mällu vastendada, lahendada sõltuvusi, nagu API eksport/import, hallata ressursse ja valmistada fail ette täitmiseks.
Linuxil on ka oma COFF-i iteratsioon; seda nimetatakse käivitatavaks lingifailiks või lühidalt ELF-i kahendfailiks. Saate kontrollida, kas fail on ELF või mitte, käivitades faili faili käsk Linuxis esimese argumendina failinimega.
Windowsi kaasaskantava käivitatava faili struktuur
Portable Executable failivorming koosneb mitmest komponendist, millest igaühel on konkreetne eesmärk. Need komponendid hõlmavad järgmist:
- Sektsioonide päised, mis kirjeldavad faili iga jaotise paigutust ja omadusi. Sektsioonid ise, mis sisaldavad käivitatavat koodi, andmeid ja ressursse.
- PE-päis, mis annab teavet faili üldise struktuuri ja nõuete kohta.
- DOS-i päis, mis sisaldab väikest programmi, mis töötab faili käivitamisel DOS-süsteemis.
- Ja lõpuks PE sektsiooni päised, mis kirjeldavad iga jaotise asukohta ja atribuute failis.
Üldiselt töötavad need komponendid koos, et luua struktureeritud vorming, mis võimaldab operatsioonisüsteemil failis sisalduvat täitmiskoodi õigesti laadida, käivitada ja hallata. Õppime täpselt, mida iga komponent teeb.
DOS-i päis
PE-faili esimest osa nimetatakse DOS-i päiseks. Väike kogus käivitatavat koodi on salvestatud DOS-i päisesse, mida saab käivitada ka DOS-masinas.
Seda koodi nimetatakse ka MS-DOS-i tübiks ja seda kasutatakse veateate saatmiseks süsteemidele, mis ei toeta PE-faili.
PE päis
Päis Portable Executable annab teavet käivitatava faili kohta, näiteks kui suur on fail, kus asuvad erinevad osad ja milliseid ressursse käivitatav fail vajab. PE-päises on ka teave käivitatava faili tüübi kohta, olgu see siis a Windowsi .DLL-fail või .EXE.
Sektsioonide päised
Sektsioone rakendatakse käivitatava failide paljude komponentide, nagu kood, andmed ja ressursid, nagu tekstistringid, pildid jne, korraldamiseks. Jaotise päised sisaldavad teavet iga jaotise suuruse ja asukoha kohta, samuti kõiki seotud lippe.
Iga jaotise päisega seotud lipud võivad näidata jaotise erinevaid atribuute, näiteks seda, kas see on käivitatav, kirjutatav või loetav. Need lipud aitavad operatsioonisüsteemil programmi täitmise ajal iga jaotise sisu korralikult laadida ja hallata.
Sektsioonid
Sektsioonid ise sisaldavad käivitatava faili tegelikku koodi, andmeid ja ressursse. Iga segment on joondatud teatud mälupiiriga ja sellel on oma atribuutide komplekt, mis mõjutab seda, kuidas operatsioonisüsteem seda käsitleb.
Nüüd teate kõike Windowsi kaasaskantava käivitatava failivormingu kohta
Windows Portable Executable on tugev ja mitmekülgne failivorming, mida kasutatakse paljude Windowsi rakenduste ja süsteemikomponentide loomiseks. Mõistes PE-failivormingu struktuuri, saavad arendajad luua tõhusaid rakendusi, mis kasutavad ära Windowsi eristavaid omadusi.
Lisaks sellele, et omandate põhjaliku arusaamise platvormist, millel teie rakendus töötab, järgides mõnda standardset head kodeerimistavade abil saate maksimeerida rakenduse kvaliteeti, olenemata platvormist, mida see töötab peal.