Qu'est-ce que le format de fichier EXE ?
Un fichier avec l'extension .exe contient un programme compilé et ses ressources pour Microsoft Windows, DOS, ou (historiquement) OS/2. Les fichiers .exe peuvent stocker des applications, des jeux, des installateurs ou des logiciels malveillants. Ils peuvent être lancés depuis la ligne de commande ou via l'interface graphique par un double-clic. Les fichiers .exe dépendent du système - ils stockent les données au format binaire, et leur signature interne détermine le sous-type d'exécutable.
Chaque .exe commence par la signature magique de deux octets MZ (hex 4D 5A) à l'offset 0, nommée d'après son co-concepteur Mark Zbikowski. Les exécutables Windows modernes portent en plus une signature PE\0\0 à l'offset stocké à la position 0x3C, confirmant que le fichier est un Portable Executable. Il existe cinq principaux sous-formats historiques de .exe :
MZ- Format 16 bits natif de DOS.NE- Format « New Executable » 16 bits utilisé par Windows 16 bits (1.x-3.x) et OS/2 1.x ; ne peut pas s'exécuter sur DOS pur, mais est pris en charge par les couches de compatibilité Windows 32 bits et OS/2.LX- Format 32 bits pour OS/2 2.0 et versions ultérieures.LE- Format 16/32 bits principalement utilisé pour les pilotes VxD dans les anciens systèmes Windows (ceux sortis avant l'an 2000).PE- « Portable Executable », couvrant à la fois les versions 32 bits (PE32) et 64 bits (PE32+) ; introduit avec Windows NT, c'est le format dominant aujourd'hui. Les variantes ARM et ARM64 étendent le PE pour les appareils Windows sur ARM.
Les fichiers .exe peuvent stocker des ressources telles que des icônes, des boîtes de dialogue, des informations de version, de l'audio et des manifestes d'application. Il est important de se rappeler que tous les types de fichiers .exe ne peuvent pas être exécutés sur un système donné, car ces fichiers dépendent de la plateforme. Pour exécuter un .exe sur un système d'exploitation différent, un outil d'émulation approprié tel que Wine ou CrossOver est requis. Les archives auto-extractibles utilisent également l'extension .exe, commençant par une amorce MZ/PE et transportant une charge utile archive ZIP, 7z ou CAB en interne.
Les fichiers .exe Windows modernes portent couramment une signature de code Authenticode pour vérifier l'identité de l'éditeur, et le système d'exploitation impose des fonctions de sécurité incluant ASLR, DEP/NX et Control Flow Guard. Les importations de fichiers .dll sont résolues au moment du chargement par le chargeur PE de Windows. Les fichiers .exe provenant de sources inconnues ou non fiables doivent être manipulés avec précaution, car ils présentent un risque d'infection par logiciel malveillant s'ils sont exécutés.
Sécurité et sûreté
RISQUE : HIGHL'EXE est le vecteur n°1 de logiciels malveillants sur Windows : il peut exécuter n'importe quel code avec vos privilèges, donc les virus, chevaux de Troie, rançongiciels et « cracks/keygens » sont généralement des fichiers EXE. Liste de sécurité : n'exécutez que des EXE provenant du fournisseur officiel ou d'un magasin de confiance ; avant l'exécution, vérifiez la signature numérique (clic droit → Propriétés → Signatures numériques) - les logiciels légitimes sont signés et le nom de l'éditeur correspond ; soyez très méfiant envers les EXE arrivant par e-mail, messagerie ou groupés avec des téléchargements « gratuits ». Les avertissements de Windows SmartScreen et des antivirus sur un EXE non reconnu doivent être pris au sérieux. Pour inspecter un téléchargement sans l'exécuter, ouvrez-le comme une archive dans 7-Zip, ou analysez-le sur VirusTotal. Attention aux doubles extensions comme « facture.pdf.exe » et aux EXE déguisés avec des icônes de documents.
Détails du format
en brefProgrammes qui ouvrent les fichiers EXE
Détails techniques
spécifications approfondies| Octets magiques | MZ (4D 5A) à l'offset 0 ; la signature PE PE\0\0 (50 45 00 00) apparaît à l'offset stocké dans l'amorce MZ à 0x3C |
| Type MIME | application/vnd.microsoft.portable-executable |
| Architectures supportées | x86 (32 bits), x86-64/AMD64 (64 bits), ARM, ARM64 ; la machine cible est encodée dans le champ Machine de l'en-tête de fichier COFF |
| Variantes de sous-formats | MZ (MS-DOS 16 bits), NE (Windows 16 bits/OS/2 1.x), LX (OS/2 2.x 32 bits), LE (pilotes VxD), PE32 (Windows 32 bits), PE32+ (Windows 64 bits) |
| Structure des sections PE | Les sections incluent .text (code exécutable), .data (données initialisées), .rdata (données en lecture seule), .rsrc (ressources) et .reloc (relogements de base) |
| Point d'entrée | Adresse virtuelle relative (RVA) de la première instruction, stockée dans AddressOfEntryPoint dans l'en-tête optionnel PE |
| Table d'importation | Liste les DLL et les exports de fonctions nommés ou ordinaux requis par le binaire ; résolue par le chargeur Windows au démarrage |
| Table d'exportation | Expose optionnellement des fonctions ou des symboles de données pour utilisation par d'autres exécutables ou DLL ; présente principalement dans les DLL mais occasionnellement dans les EXE |
| Section de ressources (.rsrc) | Incorpore des icônes, bitmaps, boîtes de dialogue, tables de chaînes, informations de version et manifestes d'application dans une arborescence typée/nommée/étiquetée par langue |
| Signature de code | Signature numérique Authenticode (PKCS#7/CMS) stockée dans le répertoire de sécurité ; validée par Windows SmartScreen, l'UAC et le noyau lors du chargement des pilotes |
| Atténuations de sécurité | Les drapeaux DllCharacteristics dans l'en-tête optionnel activent ASLR, DEP/NX, Control Flow Guard (CFG), SafeSEH et High-Entropy VA pour les binaires 64 bits |
| Somme de contrôle PE | Champ CheckSum de quatre octets dans l'en-tête optionnel ; imposé par le chargeur Windows pour les pilotes en mode noyau et les fichiers système |
| Types de sous-systèmes | Windows GUI, console Windows (CUI), natif (mode noyau), application EFI, pilote de service de démarrage EFI, pilote d'exécution EFI |
| Utilisation en archive auto-extractible | Les paquets SFX intègrent une charge utile ZIP, 7z ou CAB après l'amorce PE ; le fichier s'exécute comme un exécutable normal et se décompresse automatiquement |
| Publié | 1985 (MS-DOS MZ); PE format since Windows NT 3.1, 1993 |
| Spécification | learn.microsoft.com |