„Windows Portable Executable“ formatas turi savo nedidelių niuansų, todėl čia pateikiamas trumpas jų veikimo vadovas.
„Windows Portable Executable“ (PE) yra Windows vietinis vykdomųjų failų ir kitų dvejetainių failų tipų failų formatas. PE failo formatas sukurtas taip, kad būtų nepriklausomas nuo platformos, todėl jį galima naudoti bet kuriame „Windows“ kompiuteryje veikia ta pati operacinės sistemos versija ir procesoriaus architektūra, kuriai buvo skirtas failas sudarytas.
Taigi, išskirkime „Windows PE“ failo formatą ir sužinokime apie jo struktūrą bei sudedamąsias dalis.
Kas yra „Windows Portable“ vykdomasis failas?
Prieš tyrinėdami „Windows Portable Executable“ formatą, svarbu išsiaiškinti pagrindus. Ženkime žingsnį atgal ir sužinokime apie pagrindinę Windows PE – COFF koncepciją.
Kai kompiliuojate programos šaltinio kodą, kompiliatorius sugeneruoja objekto failą (.obj). Šiame objekto faile yra kompiuterio instrukcijos dvejetainiu formatu.
COFF arba Common Object File Format yra standartizuotas dvejetainių komandų vaizdavimo konvencijų rinkinys. COFF padeda išlaikyti kelių platformų suderinamumą, nes visi COFF failų formatai laikosi tų pačių taisyklių ir susitarimų tvarkant kodą ir duomenis. Nors COFF iš pradžių buvo sukurta naudoti *NIX sistemose, dabar ji yra visur paplitusi visose platformose.
„Windows Portable Executable“ (PE) failo formatas yra COFF modifikacija ir buvo sukurtas naudoti tik 32 bitų ir 64 bitų Windows sistemos. Skirtingai nuo COFF, kuris suteikia standartizuotą objektų failų formatą, Windows PE teikia standartizuotą vykdomųjų ir bibliotekos failų formatą.
Jame yra skyriai ir antraštės, kuriuose pateikiama informacija apie atitinkamą vykdomąjį failą ir padedama sistemos įkrovikliui tvarkyti su vykdomuoju failu susijusius duomenis. PE failo antraštės padeda sistemos įkrovikliui susieti failą su atmintimi, išspręsti priklausomybes, pvz., API eksportą / importavimą, valdyti išteklius ir paruošti failą vykdyti.
Linux taip pat turi savo COFF iteraciją; tai vadinama vykdomuoju nuorodos failu arba trumpai tariant, ELF dvejetainiu. Galite patikrinti, ar failas yra ELF, ar ne, paleisdami failo komanda „Linux“ su failo pavadinimu kaip pirmuoju argumentu.
„Windows“ nešiojamojo vykdomojo failo struktūra
„Portable Executable“ failo formatas susideda iš kelių komponentų, kurių kiekvienas turi tam tikrą paskirtį. Šie komponentai apima:
- Skyrių antraštės, apibūdinančios kiekvienos failo dalies išdėstymą ir charakteristikas Patys skyriai, kuriuose yra vykdomasis kodas, duomenys ir ištekliai.
- PE antraštė, kurioje pateikiama informacija apie bendrą failo struktūrą ir reikalavimus.
- DOS antraštė, kurioje yra nedidelė programa, kuri paleidžiama, kai failas vykdomas DOS sistemoje.
- Ir galiausiai, PE skyriaus antraštės, apibūdinančios kiekvienos sekcijos vietą ir atributus faile.
Apskritai šie komponentai veikia kartu, kad sukurtų struktūrinį formatą, leidžiantį operacinei sistemai tinkamai įkelti, vykdyti ir valdyti faile esantį vykdomąjį kodą. Sužinokime, ką tiksliai daro kiekvienas komponentas.
DOS antraštė
Pirmoji PE failo dalis vadinama DOS antrašte. Nedidelis vykdomojo kodo kiekis saugomas DOS antraštėje, kurią taip pat galima paleisti DOS įrenginyje.
Šis kodas taip pat vadinamas MS-DOS stuburu ir naudojamas klaidos pranešimui pateikti sistemose, kurios nepalaiko PE failo.
PE antraštė
Portable Executable antraštė suteikia informacijos apie vykdomąjį failą, pvz., koks failo dydis, kur yra skirtingos dalys ir kokių išteklių reikia vykdomajam failui. PE antraštėje taip pat yra informacijos apie vykdomojo failo tipą, ar tai a Windows .DLL failas arba .EXE.
Skyrių antraštės
Skiltys yra įdiegtos siekiant organizuoti daugybę vykdomojo failo komponentų, tokių kaip kodas, duomenys ir ištekliai, pvz., teksto eilutės, vaizdai ir kt. Skilčių antraštėse pateikiama informacija apie kiekvienos sekcijos dydį ir vietą, taip pat visas susijusias vėliavas.
Su kiekviena sekcijos antrašte susietos vėliavėlės gali nurodyti įvairius skyriaus atributus, pvz., ar ji vykdoma, rašoma ar skaitoma. Šios vėliavėlės padeda operacinei sistemai tinkamai įkelti ir valdyti kiekvieno skyriaus turinį programos vykdymo metu.
Skyriai
Patys skyriai apima tikrąjį vykdomosios programos kodą, duomenis ir išteklius. Kiekvienas segmentas yra suderintas su tam tikra atminties riba ir turi savo atributų rinkinį, kuris turi įtakos operacinės sistemos tvarkymui.
Dabar jūs žinote viską apie „Windows Portable“ vykdomojo failo formatą
„Windows Portable Executable“ yra tvirtas ir universalus failo formatas, naudojamas įvairioms „Windows“ programoms ir sistemos komponentams gaminti. Suprasdami PE failo formato struktūrą, kūrėjai gali sukurti efektyvias programas, kurios išnaudotų išskirtines Windows savybes.
Vadovaudamiesi keletu standartinių ypatybių, įgysite išsamų supratimą apie platformą, kurioje jūsų programa veiks kodavimo praktiką, galėsite maksimaliai padidinti programos kokybę, nepaisant platformos, kurioje ji veikia įjungta.