Hva er EXE-filformatet?
En fil med filendelsen .exe inneholder et kompilert program og dets ressurser for Microsoft Windows, DOS, eller (historisk sett) OS/2. .exe-filer kan lagre applikasjoner, spill, installasjonsprogrammer eller skadevare. De kan startes fra kommandolinjen eller via det grafiske brukergrensesnittet ved å dobbeltklikke. .exe-filer er systemavhengige - de lagrer data i binært format, og deres interne signatur bestemmer den eksekverbare undertypen.
Enhver .exe starter med den to-byte lange «magiske signaturen» MZ (hex 4D 5A) ved posisjon 0, oppkalt etter medutvikleren Mark Zbikowski. Moderne Windows-filer har i tillegg en PE\0\0-signatur ved posisjonen som er lagret på adressen 0x3C, noe som bekrefter at filen er en «Portable Executable». Det finnes fem historiske hovedformater for .exe:
MZ- 16-bit format for DOS.NE- 16-bit «New Executable»-format brukt av 16-bit Windows (1.x-3.x) og OS/2 1.x; kan ikke kjøre på ren DOS, men støttes av kompatibilitetslag i 32-bit Windows og OS/2.LX- 32-bit format for OS/2 2.0 og senere.LE- 16/32-bit format hovedsakelig brukt for VxD-drivere i eldre Windows-systemer (utgitt før år 2000).PE- «Portable Executable», som dekker både 32-bit (PE32) og 64-bit (PE32+) versjoner; introdusert med Windows NT og er det dominerende formatet i dag. ARM- og ARM64-varianter utvider PE for Windows på ARM-enheter.
.exe-filer kan lagre ressurser som ikoner, dialogbokser, versjonsinformasjon, lyd og applikasjonsmanifester. Det er viktig å huske at ikke alle typer .exe-filer kan kjøres på et gitt system, da slike filer er plattformavhengige. For å kjøre en .exe på et annet operativsystem, kreves et passende emuleringsverktøy som Wine eller CrossOver. Selvutpakkende arkiver bruker også filendelsen .exe, og starter med en MZ/PE-stubbe som inneholder en ZIP-arkiv, 7z, eller CAB-last internt.
Moderne Windows .exe-filer har ofte en Authenticode-signatur for å verifisere utgiverens identitet, og operativsystemet håndhever sikkerhetsfunksjoner inkludert ASLR, DEP/NX og Control Flow Guard. Importer fra .dll-filer løses ved oppstart av Windows PE-lasteren. .exe-filer fra ukjente eller utrolige kilder må håndteres med forsiktighet, da de utgjør en risiko for infeksjon av skadevare hvis de kjøres.
Sikkerhet og trygghet
RISIKO: HIGHEXE er den viktigste vektoren for skadevare på Windows: den kan kjøre hvilken som helst kode med dine rettigheter, så virus, trojanere, løsepengevirus og «cracks/keygens» er typisk EXE-filer. Sjekkliste for sikkerhet: kjør kun EXE-filer fra den offisielle leverandøren eller en betrodd butikk; før du kjører, sjekk den digitale signaturen (høyreklikk → Egenskaper → Digitale signaturer) - legitim programvare er kodesignert og utgivernavnet stemmer; vær svært mistenksom overfor EXE-filer som kommer via e-post, chat eller er buntet med «gratis» nedlastinger. Advarsler fra Windows SmartScreen og antivirus på en ukjent EXE bør tas på alvor. For å inspisere en nedlasting uten å kjøre den, åpne den som et arkiv i 7-Zip, eller skann den på VirusTotal. Se opp for doble filendelser som «faktura.pdf.exe» og EXE-filer forkledd med dokumentikoner.
Formatdetaljer
i et nøtteskallProgrammer som åpner EXE-filer
Tekniske detaljer
dyp spesifikasjon| Magiske bytes | MZ (4D 5A) ved posisjon 0; PE-signaturen PE\0\0 (50 45 00 00) vises ved posisjonen lagret i MZ-stubben ved 0x3C |
| MIME-type | application/vnd.microsoft.portable-executable |
| Arkitekturstøtte | x86 (32-bit), x86-64/AMD64 (64-bit), ARM, ARM64; målmaskinen er kodet i feltet COFF File Header Machine |
| Varianter av underformater | MZ (MS-DOS 16-bit), NE (16-bit Windows/OS/2 1.x), LX (OS/2 2.x 32-bit), LE (VxD-drivere), PE32 (32-bit Windows), PE32+ (64-bit Windows) |
| PE-seksjonsoppsett | Seksjoner inkluderer .text (eksekverbar kode), .data (initialisert data), .rdata (skrivebeskyttet data), .rsrc (ressurser) og .reloc (baserelokeringer) |
| Inngangspunkt | Relativ virtuell adresse (RVA) for den første instruksjonen, lagret i AddressOfEntryPoint i PE Optional Header |
| Importtabell | Lister opp DLL-er og navngitte eller ordinale funksjonseksportene binærfilen krever; løses av Windows-lasteren ved oppstart |
| Eksporttabell | Eksponerer valgfritt funksjoner eller datasymboler for bruk av andre eksekverbare filer eller DLL-er; finnes hovedsakelig i DLL-er, men av og til i EXE-filer |
| Ressursseksjon (.rsrc) | Bygger inn ikoner, bitmapelementer, dialoger, strengtabeller, versjonsinformasjon og applikasjonsmanifester i et tre strukturert etter type/navn/språk |
| Kodesignering | Authenticode (PKCS#7/CMS) digital signatur lagret i Security Directory; validert av Windows SmartScreen, UAC og kjernen ved lasting av drivere |
| Sikkerhetstiltak | DllCharacteristics-flagg i Optional Header aktiverer ASLR, DEP/NX, Control Flow Guard (CFG), SafeSEH og High-Entropy VA for 64-bit binærfiler |
| PE-sjekksum | Fire-byte CheckSum-felt i Optional Header; håndheves av Windows-lasteren for drivere i kjernemodus og systemfiler |
| Subsystem-typer | Windows GUI, Windows konsoll (CUI), native (kjernemodus), EFI-applikasjon, EFI boot service driver, EFI runtime driver |
| Bruk som selvutpakkende arkiv | SFX-pakker bygger inn en ZIP, 7z eller CAB-last etter PE-stubben; filen kjører som en vanlig eksekverbar fil og pakker ut innholdet automatisk |
| Utgitt | 1985 (MS-DOS MZ); PE format since Windows NT 3.1, 1993 |
| Spesifikasjon | learn.microsoft.com |