Vad är filformatet EXE?
En fil med filändelsen .exe innehåller ett kompilerat program och dess resurser för Microsoft Windows, DOS eller (historiskt sett) OS/2. .exe-filer kan lagra applikationer, spel, installerare eller skadlig kod. De kan startas från kommandotolken eller via det grafiska gränssnittet genom att dubbelklicka. .exe-filer är systemberoende - de lagrar data i binärt format, och deras interna signatur avgör den körbara undertypen.
Varje .exe börjar med den två byte långa magiska signaturen MZ (hex 4D 5A) vid offset 0, uppkallad efter dess medskapare Mark Zbikowski. Moderna Windows-filer bär dessutom en PE\0\0-signatur vid den offset som lagras på position 0x3C, vilket bekräftar att filen är en Portable Executable. Det finns fem huvudsakliga historiska .exe-underformat:
MZ- 16-bitars format nativt för DOS.NE- 16-bitars «New Executable»-format som användes av 16-bitars Windows (1.x-3.x) och OS/2 1.x; kan inte köras på ren DOS, men stöds av kompatibilitetslager i 32-bitars Windows och OS/2.LX- 32-bitars format för OS/2 2.0 och senare.LE- 16/32-bitars format som främst användes för VxD-drivrutiner i äldre Windows-system (de som släpptes före år 2000).PE- «Portable Executable», som täcker både 32-bitars (PE32) och 64-bitars (PE32+) versioner; introducerades med Windows NT och är det dominerande formatet idag. ARM- och ARM64-varianter utökar PE för Windows på ARM-enheter.
.exe-filer kan lagra resurser som ikoner, dialogrutor, versionsinformation, ljud och applikationsmanifest. Det är viktigt att komma ihåg att inte alla typer av .exe-filer kan köras på ett givet system, eftersom sådana filer är plattformsberoende. För att köra en .exe på ett annat operativsystem krävs ett lämpligt emuleringsverktyg som Wine eller CrossOver. Självextraherande arkiv använder också filändelsen .exe, och börjar med en MZ/PE-stubbe som internt bär på en ZIP-arkiv, 7z eller CAB-nyttolast.
Moderna Windows .exe-filer bär vanligtvis en Authenticode-kodsignatur för att verifiera utgivarens identitet, och operativsystemet tillämpar säkerhetsfunktioner inklusive ASLR, DEP/NX och Control Flow Guard. Importer från .dll-filer löses vid laddningstillfället av Windows PE-laddare. .exe-filer från okända eller otillförlitliga källor måste hanteras med försiktighet, eftersom de innebär en risk för infektion av skadlig kod om de körs.
Säkerhet & trygghet
RISK: HIGHEXE är den främsta vektorn för skadlig kod på Windows: den kan köra vilken kod som helst med dina behörigheter, så virus, trojaner, ransomware och «cracks/keygens» är vanligtvis EXE-filer. Säkerhetschecklista: kör endast EXE-filer från den officiella leverantören eller en betrodd butik; innan du kör, kontrollera den digitala signaturen (högerklicka → Egenskaper → Digitala signaturer) - legitim programvara är kodsignerad och utgivarens namn stämmer överens; var mycket misstänksam mot EXE-filer som kommer via e-post, chatt eller medföljer «gratis» nedladdningar. Varningar från Windows SmartScreen och antivirus på en okänd EXE bör tas på allvar. För att inspektera en nedladdning utan att köra den, öppna den som ett arkiv i 7-Zip, eller skanna den på VirusTotal. Se upp för dubbla filändelser som «faktura.pdf.exe» och EXE-filer maskerade med dokumentikoner.
Formatdetaljer
i ett nötskalProgram som öppnar EXE-filer
Tekniska detaljer
djup specifikation| Magiska byte | MZ (4D 5A) vid offset 0; PE-signaturen PE\0\0 (50 45 00 00) visas vid den offset som lagras i MZ-stubben vid 0x3C |
| MIME-typ | application/vnd.microsoft.portable-executable |
| Arkitekturstöd | x86 (32-bitars), x86-64/AMD64 (64-bitars), ARM, ARM64; målmaskinen är kodad i fältet COFF File Header Machine |
| Varianter av underformat | MZ (MS-DOS 16-bitars), NE (16-bitars Windows/OS/2 1.x), LX (OS/2 2.x 32-bitars), LE (VxD-drivrutiner), PE32 (32-bitars Windows), PE32+ (64-bitars Windows) |
| PE-sektionslayout | Sektioner inkluderar .text (körbar kod), .data (initierad data), .rdata (skrivskyddad data), .rsrc (resurser) och .reloc (basrelokeringar) |
| Entry point | Relativ virtuell adress (RVA) för den första instruktionen, lagrad i AddressOfEntryPoint i PE Optional Header |
| Importtabell | Listar de DLL-filer och namngivna eller ordinala funktionsexporter som binären kräver; löses av Windows-laddaren vid uppstart |
| Exporttabell | Exponerar valfritt funktioner eller datasymboler för användning av andra körbara filer eller DLL-filer; finns främst i DLL-filer men ibland i EXE-filer |
| Resurssektion (.rsrc) | Bäddar in ikoner, bitmappar, dialogrutor, strängtabeller, versionsinformation och applikationsmanifest i ett typat/namngivet/språktaggat träd |
| Kodsignering | Authenticode (PKCS#7/CMS) digital signatur lagrad i Security Directory; valideras av Windows SmartScreen, UAC och kärnan vid laddning av drivrutiner |
| Säkerhetsåtgärder | DllCharacteristics-flaggor i Optional Header möjliggör ASLR, DEP/NX, Control Flow Guard (CFG), SafeSEH och High-Entropy VA för 64-bitars binärer |
| PE-kontrollsumma | Fyra byte långt CheckSum-fält i Optional Header; tillämpas av Windows-laddaren för drivrutiner i kärnläge och systemfiler |
| Subsystem-typer | Windows GUI, Windows-konsol (CUI), nativ (kärnläge), EFI-applikation, EFI boot service driver, EFI runtime driver |
| Användning som självextraherande arkiv | SFX-paket bäddar in en ZIP, 7z eller CAB-nyttolast efter PE-stubben; filen körs som en vanlig körbar fil och packas upp automatiskt |
| Släppt | 1985 (MS-DOS MZ); PE format since Windows NT 3.1, 1993 |
| Specifikation | learn.microsoft.com |