Hvad er EXE-filformatet?
En fil med filendelsen .exe indeholder et kompileret program og dets ressourcer til Microsoft Windows, DOS eller (historisk set) OS/2. .exe-filer kan indeholde applikationer, spil, installationsprogrammer eller malware. De kan startes fra kommandolinjen eller via den grafiske brugerflade ved at dobbeltklikke. .exe-filer er systemafhængige - de gemmer data i binært format, og deres interne signatur bestemmer den eksekverbare undertype.
Enhver .exe starter med den to-byte magiske signatur MZ (hex 4D 5A) ved offset 0, opkaldt efter meddesigneren Mark Zbikowski. Moderne Windows-eksekverbare filer bærer desuden en PE\0\0-signatur ved det offset, der er gemt på position 0x3C, hvilket bekræfter filen som en Portable Executable. Der findes fem historiske hovedtyper af .exe-underformater:
MZ- 16-bit format indfødt til DOS.NE- 16-bit «New Executable»-format brugt af 16-bit Windows (1.x-3.x) og OS/2 1.x; kan ikke køre på ren DOS, men understøttes af 32-bit Windows-kompatibilitetslag og OS/2.LX- 32-bit format til OS/2 2.0 og senere.LE- 16/32-bit format hovedsageligt brugt til VxD-drivere i ældre Windows-systemer (frigivet før år 2000).PE- «Portable Executable», der dækker både 32-bit (PE32) og 64-bit (PE32+) versioner; introduceret med Windows NT og det dominerende format i dag. ARM- og ARM64-varianter udvider PE til Windows på ARM-enheder.
.exe-filer kan gemme ressourcer såsom ikoner, dialogbokse, versionsinformation, lyd og applikationsmanifester. Det er vigtigt at huske, at ikke alle typer .exe-filer kan eksekveres på et givet system, da sådanne filer er platformafhængige. For at køre en .exe på et andet operativsystem kræves et passende emuleringsværktøj som Wine eller CrossOver. Selvextraherende arkiver bruger også filendelsen .exe, og starter med en MZ/PE-stub og indeholder en ZIP-arkiv, 7z eller CAB nyttelast internt.
Moderne Windows .exe-filer bærer ofte en Authenticode-kodesignatur for at verificere udgiverens identitet, og operativsystemet håndhæver sikkerhedsfunktioner herunder ASLR, DEP/NX og Control Flow Guard. Importer fra .dll-filer løses ved indlæsning af Windows PE-loaderen. .exe-filer fra ukendte eller upålidelige kilder skal håndteres med forsigtighed, da de udgør en risiko for malware-infektion, hvis de eksekveres.
Sikkerhed og tryghed
RISIKO: HIGHEXE er den vigtigste malware-vektor på Windows: den kan køre enhver kode med dine rettigheder, så vira, trojanere, ransomware og «cracks/keygens» er typisk EXE-filer. Sikkerhedstjekliste: kør kun EXE-filer fra den officielle leverandør eller en betroet butik; før kørsel skal du tjekke den digitale signatur (højreklik → Egenskaber → Digitale signaturer) - legitim software er kodesigneret, og udgivernavnet matcher; vær meget mistænksom over for EXE-filer, der ankommer via e-mail, chat eller er bundtet med «gratis» downloads. Advarsler fra Windows SmartScreen og antivirus på en ukendt EXE bør tages alvorligt. For at inspicere en download uden at eksekvere den, kan du åbne den som et arkiv i 7-Zip eller scanne den på VirusTotal. Hold øje med dobbelte filendelser som «faktura.pdf.exe» og EXE-filer forklædt med dokumentikoner.
Formatdetaljer
kort fortaltProgrammer der åbner EXE-filer
Tekniske detaljer
dyb specifikation| Magiske bytes | MZ (4D 5A) ved offset 0; PE-signaturen PE\0\0 (50 45 00 00) vises ved det offset, der er gemt i MZ-stubben ved 0x3C |
| MIME-type | application/vnd.microsoft.portable-executable |
| Arkitekturunderstøttelse | x86 (32-bit), x86-64/AMD64 (64-bit), ARM, ARM64; målmaskinen er kodet i COFF File Header Machine-feltet |
| Varianter af 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-sektionslayout | Sektioner inkluderer .text (eksekverbar kode), .data (initialiseret data), .rdata (skrivebeskyttet data), .rsrc (ressourcer) og .reloc (base-relokeringer) |
| Indgangspunkt | Relativ virtuel adresse (RVA) for den første instruktion, gemt i AddressOfEntryPoint i PE Optional Header |
| Importtabel | Lister de DLL'er og navngivne eller ordinale funktionseksportører, som binærfilen kræver; løses af Windows-loaderen ved opstart |
| Eksporttabel | Eksponerer valgfrit funktioner eller datasymboler til brug for andre eksekverbare filer eller DLL'er; findes hovedsageligt i DLL'er, men lejlighedsvis i EXE-filer |
| Ressourcesektion (.rsrc) | Indlejrer ikoner, bitmaps, dialogbokse, strengtabeller, versionsinformation og applikationsmanifester i et træ med type/navn/sprogmærke |
| Kodesignering | Authenticode (PKCS#7/CMS) digital signatur gemt i Security Directory; valideres af Windows SmartScreen, UAC og kernen ved indlæsning af drivere |
| Sikkerhedsforanstaltninger | DllCharacteristics-flag i Optional Header muliggør ASLR, DEP/NX, Control Flow Guard (CFG), SafeSEH og High-Entropy VA for 64-bit binærfiler |
| PE-tjeksum | Fire-byte CheckSum-felt i Optional Header; håndhæves af Windows-loaderen for drivere i kernetilstand og systemfiler |
| Subsystem-typer | Windows GUI, Windows konsol (CUI), native (kernetilstand), EFI-applikation, EFI boot service driver, EFI runtime driver |
| Brug som selvextraherende arkiv | SFX-pakker indlejrer en ZIP-, 7z- eller CAB-nyttelast efter PE-stubben; filen kører som en normal eksekverbar fil og udpakkes automatisk |
| Udgivet | 1985 (MS-DOS MZ); PE format since Windows NT 3.1, 1993 |
| Specifikation | learn.microsoft.com |