Qu’est-ce que le format de fichier exécutable portable de Windows ?
Un exécutable portable Windows (PE) est le format de fichier natif de Windows pour les exécutables et autres types de fichiers binaires. Le format de fichier PE est conçu pour être indépendant de la plate-forme, de sorte qu’il peut être utilisé sur n’importe quelle machine Windows fonctionnant avec la même version du système d’exploitation et la même architecture de processeur que celles pour lesquelles le fichier a été compilé.
Décortiquons donc le format de fichier Windows PE et découvrons sa structure et ses composants.
Qu’est-ce qu’un fichier exécutable portable Windows ?
Avant d’explorer le format Windows Portable Executable, il est important de clarifier les bases. Prenons un peu de recul et découvrons le concept sous-jacent de Windows PE-COFF.
Lorsque vous compilez le code source d’un programme, le compilateur génère un fichier objet (.obj). Ce fichier objet contient des instructions pour l’ordinateur au format binaire.
COFF ou Common Object File Format est un ensemble normalisé de conventions pour la représentation des instructions binaires. COFF permet de maintenir la compatibilité entre les plates-formes, car tous les formats de fichiers COFF suivent le même ensemble de règles et de conventions pour l’organisation du code et des données. Bien que COFF ait été développé à l’origine pour les systèmes *NIX, il est aujourd’hui omniprésent sur toutes les plates-formes.
Le format de fichier Windows Portable Executable (PE) est une modification de COFF et a été développé pour être utilisé exclusivement sur les systèmes Windows 32 bits et 64 bits. Contrairement à COFF, qui fournit un format standardisé pour les fichiers objets, Windows PE fournit un format standardisé pour les exécutables et les fichiers de bibliothèque.
Il contient des sections et des en-têtes qui fournissent des informations sur l’exécutable en question et aident le chargeur du système à gérer les données relatives à l’exécutable. Les en-têtes d’un fichier PE aident le chargeur du système à mapper le fichier sur la mémoire, à résoudre les dépendances telles que les exportations/importations d’API, à gérer les ressources et à préparer le fichier pour l’exécution.
Linux possède également sa propre itération du COFF ; il s’agit du fichier de liaison exécutable (Executable Link File) ou, en abrégé, du binaire ELF. Vous pouvez vérifier si un fichier est ELF ou non en exécutant la commande file sous Linux avec le nom du fichier comme premier argument.
Structure d’un exécutable portable Windows
Le format de fichier Portable Executable se compose de plusieurs éléments, chacun ayant un objectif spécifique. Ces composants sont les suivants :
- Les en-têtes de section, qui décrivent la disposition et les caractéristiques de chaque section du fichier Les sections elles-mêmes, qui contiennent le code exécutable, les données et les ressources.
- L’en-tête PE, qui fournit des informations sur la structure globale du fichier et ses exigences.
- L’en-tête DOS, qui comprend un petit programme qui s’exécute lorsque le fichier est exécuté sur un système DOS.
- Enfin, les en-têtes de section PE, qui décrivent l’emplacement et les attributs de chaque section dans le fichier.
Dans l’ensemble, ces composants travaillent ensemble pour créer un format structuré qui permet au système d’exploitation de charger, d’exécuter et de gérer correctement le code exécutable contenu dans le fichier. Voyons ce que fait exactement chaque composant.
En-tête DOS
La première partie d’un fichier PE s’appelle l’en-tête DOS. Une petite quantité de code exécutable est stockée dans l’en-tête DOS qui peut également être exécuté sur une machine DOS.
Ce code est également appelé stub MS-DOS et est utilisé pour afficher un message d’erreur sur les systèmes qui ne prennent pas en charge le fichier PE.
En-tête PE
L’en-tête de l’exécutable portable donne des informations sur l’exécutable, comme la taille du fichier, l’emplacement des différentes parties et les ressources dont l’exécutable a besoin. L’en-tête PE contient également des informations sur le type d’exécutable, qu’il s’agisse d’un fichier Windows .DLL ou d’un .EXE.
En-têtes de section
Les sections sont mises en œuvre pour organiser les nombreux composants d’un exécutable, tels que le code, les données et les ressources (chaînes de texte, images, etc.). Les en-têtes de section comprennent des informations concernant la taille et l’emplacement de chaque section, ainsi que tous les drapeaux associés.
Les drapeaux associés à chaque en-tête de section peuvent indiquer divers attributs de la section, par exemple si elle est exécutable, inscriptible ou lisible. Ces drapeaux aident le système d’exploitation à charger et à gérer correctement le contenu de chaque section pendant l’exécution du programme.
Les sections
Les sections elles-mêmes comprennent le code réel, les données et les ressources de l’exécutable. Chaque segment est aligné sur une certaine frontière de mémoire et possède son propre ensemble d’attributs qui affectent la façon dont le système d’exploitation le gère.
Vous savez maintenant tout sur le format de fichier exécutable portable de Windows
L’exécutable portable de Windows est un format de fichier robuste et polyvalent utilisé pour produire une grande variété d’applications Windows et de composants système. En comprenant la structure du format de fichier PE, les développeurs peuvent construire des applications efficaces qui tirent parti des caractéristiques distinctives de Windows.
Outre une connaissance approfondie de la plate-forme sur laquelle votre application sera exécutée, le respect de quelques bonnes pratiques de codage standard vous permettra de maximiser la qualité de l’application, quelle que soit la plate-forme sur laquelle elle est exécutée.
S’abonner à notre lettre d’information
Qu’est-ce qu’un fichier exécutable portable Windows ?
Le format Portable Executable est le format de fichier standard pour les exécutables, le code objet et les bibliothèques de liens dynamiques (DLL) utilisés dans les versions 32 et 64 bits des systèmes d’exploitation Windows.
Quel est le format des fichiers exécutables de Windows ?
Les fichiers EXE sont un format de fichier exécutable spécifique à Windows. Lorsqu’un utilisateur ou un autre événement déclenche un fichier exécutable, l’ordinateur exécute le code que le fichier contient. Les fichiers exécutables contiennent un code machine binaire qui a été compilé à partir du code source.
Portable Executable est-il un format de fichier de MS ?
Concepts généraux. Ce document spécifie la structure des fichiers exécutables (images) et des fichiers objets sous la famille des systèmes d’exploitation Microsoft Windows. Ces fichiers sont appelés respectivement Portable Executable (PE) et Common Object File Format (COFF).
Comment savoir si un fichier est un exécutable portable ?
Cette information se trouve dans l’en-tête du fichier PE. Pour la visualiser, vous pouvez l’ouvrir avec un explorateur PE tel que le NTCore CFF Explorer et ouvrir le champ Characterics de l’en-tête du fichier, où vous pouvez trouver s’il s’agit d’une DLL ou d’un exécutable.