Voir l'intérieur d'un fichier .exe Windows
Analysé dans cet onglet · Rien n'est envoyé · Rien n'est exécuté
Déposez ci-dessous un exécutable Windows : cette page lit ses en-têtes et vous dit de quoi il s'agit — pour quel processeur il a été compilé, quelles bibliothèques système il demande, ce qu'il déclare sur son propre éditeur et sa version, l'icône enfouie à l'intérieur, s'il est signé et s'il a été compressé pour masquer son contenu. Le fichier ne quitte jamais votre machine : il est lu par JavaScript, ici même, et la page n'a nulle part où l'envoyer.
Déposez un .exe ici, ou
Lit aussi les .dll, .sys, .ocx et .scr. Jusqu'à 256 Mo.
Le rapport lui-même s'affiche pour l'instant en anglais.
Ce que vous apprend le rapport
Chaque exécutable Windows contient une quantité surprenante d'informations sur lui-même, et presque rien de tout cela n'est visible depuis le bureau. Le rapport est ordonné de façon à présenter d'abord les parties les plus utiles.
Le processeur et le sous-système
La première réponse honnête sur n'importe quel .exe. Un binaire 64 bits ne démarrera pas sous un Windows 32 bits ; un binaire 32 bits fonctionne presque partout. Le sous-système indique s'il ouvre une fenêtre, une console, ou rien du tout parce qu'il s'agit d'un pilote destiné à être chargé dans le noyau.
Les bibliothèques qu'il charge
La table d'importation est la partie la plus révélatrice du fichier. Un programme doit nommer, en clair, chaque bibliothèque système et chaque fonction qu'il compte appeler : un programme qui communique avec internet doit donc mentionner ws2_32.dll, un programme qui touche au registre doit mentionner RegOpenKeyExA, et un programme qui lance d'autres programmes doit mentionner CreateProcessW. Tout cela est déclaré avant l'exécution de la moindre instruction, et ne peut être omis sans renoncer à appeler ces fonctions.
Ce qu'il prétend être
La ressource de version contient l'éditeur, le nom du produit, la version du fichier, la mention de copyright et le nom de fichier d'origine — les mêmes chaînes que Windows affiche dans la boîte de dialogue Propriétés d'un fichier. Ce n'est que du texte saisi par la personne qui a compilé le fichier : utile pour l'identifier, sans aucune valeur de preuve.
L'icône
Extraite de l'arborescence des ressources et affichée sur la page. C'est le moyen le plus rapide de confirmer qu'un téléchargement est bien le programme que vous croyez, et le moyen le plus rapide de remarquer qu'un fichier arbore une icône familière qu'il n'a aucun droit de porter.
Compression et entropie
Les packers compressent un exécutable et le décompressent en mémoire au démarrage. C'est un moyen légitime de réduire la taille d'un téléchargement, et un moyen tout aussi efficace de masquer ce qu'un programme importe jusqu'à ce qu'il soit déjà en cours d'exécution. Le rapport nomme le packer quand il en reconnaît la signature, et à défaut mesure le degré d'aléatoire de chaque section.
Ce qui est collé à la fin
Les installateurs sont généralement un petit programme ordinaire auquel une archive entière est ajoutée après la dernière section. Quand le rapport indique que l'essentiel du fichier se trouve au-delà de la partie exécutable, vous avez affaire à un emballage plutôt qu'au programme — et les fichiers qu'il contient peuvent souvent être extraits sans rien installer.
Ce qu'il ne peut pas vous dire
Il ne peut pas vous dire si un fichier est sûr. Rien de ce qui se contente de lire un fichier ne le peut, et une page qui laisserait entendre le contraire serait pire qu'inutile, parce qu'elle rassurerait.
Tout ce qui figure ici est ce que le programme déclare sur lui-même. Un programme qui veut être étudié déclare beaucoup de choses ; un programme qui ne le veut pas en déclare simplement moins, et un programme compressé ne déclare presque rien avant d'être déjà en cours d'exécution. Une longue liste de capacités n'est donc pas la preuve d'un mauvais comportement — tout programme de mise à jour communique avec le réseau et tout installateur écrit des fichiers — et une liste courte n'est pas non plus la preuve d'un bon comportement.
L'inspection est vraiment utile pour les questions courantes : est-ce la bonne architecture pour ma machine, est-ce un installateur ou le programme lui-même, un éditeur est-il revendiqué, le fichier est-il signé, est-il complet, cache-t-il son contenu. Le fichier permet d'y répondre, et c'est l'essentiel de ce que les gens veulent réellement savoir.
Pour un verdict de sécurité, VirusTotal soumet le fichier envoyé à quelque soixante-dix antivirus. Cela implique bel et bien d'envoyer le fichier, ce que cette page ne fait jamais — un compromis à faire en connaissance de cause plutôt que par accident.
Le sujet est traité plus longuement dans ce .exe est-il sûr à exécuter ? : chaque indice qu'un fichier laisse paraître avant de s'exécuter, ce que vaut réellement chacun comme preuve, et dans quel ordre les vérifier.
Où va votre fichier
Nulle part. Le navigateur transmet à la page les octets du fichier choisi, l'analyseur parcourt les en-têtes, et le résultat est écrit dans la page. Il n'y a ni requête, ni serveur, ni file d'attente, ni politique de conservation, puisqu'il n'y a rien à conserver. Fermer l'onglet suffit à tout effacer.
Cela mérite d'être dit clairement, car l'alternative évidente — un site où l'on envoie un fichier pour le faire analyser — est précisément ce dont quelqu'un qui se méfie d'un fichier devrait le plus se garder. Si vous préférez vérifier cette affirmation plutôt que de nous croire sur parole, ouvrez les outils de développement de votre navigateur, passez à l'onglet Réseau et examinez un fichier : rien n'est envoyé.
La page elle-même utilise Google Analytics et Mediavine, qui voient les pages vues de la manière habituelle. Ils ne peuvent voir ni le fichier choisi ni rien de ce qui en est extrait ; le rapport est construit en mémoire et ne devient jamais une requête. Ce que nous enregistrons est agrégé et anonyme — le format, le processeur et si le fichier était signé — sans nom de fichier ni contenu. Les détails figurent dans la politique de confidentialité.
Si vous voulez l'exécuter, pas seulement le lire
Lire un fichier et l'exécuter sont volontairement deux pages différentes ici. Quand le rapport indique qu'un fichier est en x86 32 bits sans rien d'exotique, le lanceur a de bonnes chances de l'exécuter dans un onglet du navigateur — sans installation, et là non plus rien n'est envoyé.
Lancer votre propre EXE → · Comment ouvrir un .exe sur n'importe quelle plateforme · Ce qui fonctionne et ce qui ne fonctionne pas · Jeux et applications prêts à jouer
Guides par plateforme : sur Mac · sur Chromebook · sur Android. Et si un programme refuse de démarrer parce qu'il manque quelque chose, l'erreur de DLL manquante est généralement plus simple qu'elle n'en a l'air.
Mettez l'un de ces jeux sur votre propre site
Onze des jeux présents ici ont été écrits de zéro pour ce site, ce qui nous permet de les offrir — et c'est ce que nous faisons. Chacun peut les mettre gratuitement sur sa propre page : une ligne de HTML, sans compte, sans demander la permission et sans autre attribution qu'une ligne de crédits.
Questions fréquentes
Mon fichier est-il envoyé quelque part ?
Non. Le fichier est lu par JavaScript sur votre propre machine, les en-têtes sont analysés dans l'onglet et le résultat est affiché sur la page. Rien n'est transmis et aucune copie n'est conservée, puisqu'aucune n'est jamais créée.
Est-ce que cela exécute le programme ?
Non. La page lit le fichier comme un bibliothécaire lit le dos d'un livre. Pas une seule instruction de l'exécutable n'est exécutée, et c'est tout l'intérêt : vous pouvez examiner quelque chose dont vous n'êtes pas sûr sans lui donner l'occasion de faire quoi que ce soit. Si vous décidez de l'exécuter, le lanceur est une page distincte et une seconde étape délibérée.
Peut-elle me dire si un .exe est un virus ?
Non, et rien de ce qui se contente de lire un fichier ne le peut. Elle sert à repérer qu'un fichier n'a pas la bonne architecture, qu'il s'agit d'un installateur plutôt que du programme, qu'il n'est pas signé ou qu'il est compressé de façon à ne rien révéler avant de s'exécuter. Pour un véritable verdict de sécurité, utilisez VirusTotal.
Qu'est-ce qu'un fichier PE ?
Portable Executable est le format qu'utilisent tous les .exe, .dll et .sys de Windows. Il commence par un petit programme MS-DOS hérité de 1985, dont le seul rôle est d'afficher This program cannot be run in DOS mode, puis viennent le véritable en-tête, une table de sections contenant le code et les données, la liste des bibliothèques dont le programme a besoin et une arborescence de ressources. L'explication détaillée est ici.
Pourquoi indique-t-elle que mon fichier est en 16 bits ou un programme DOS ?
Parce que c'est le cas, et c'est pour cela que Windows moderne refuse de le lancer. Un simple fichier MZ est un programme MS-DOS en mode réel ; un fichier NE est un programme Windows 16 bits. Windows 64 bits ne prend plus en charge ni l'un ni l'autre, si bien qu'un double-clic ne produit absolument rien — ni erreur, ni fenêtre. Les deux fonctionnent toujours en émulation, ce qui est un sujet à part entière.
Que signifie une entropie élevée dans une section ?
L'entropie mesure à quel point les octets semblent aléatoires, de 0 à 8. Le code compilé ordinaire se situe autour de 6. Au-delà d'environ 7,2, les données sont compressées ou chiffrées — normal pour une section contenant un zip ou un PNG, et un indice sérieux de la présence d'un packer quand il s'agit de la section à partir de laquelle le programme s'exécute.
Est-ce que ça marche sur Mac, sur Chromebook ou sur téléphone ?
Oui. C'est une page web : elle fonctionne partout où tourne un navigateur récent. C'est surtout utile sur les machines qui ne peuvent pas du tout ouvrir un .exe : un Mac ou un Chromebook n'offre aucun moyen intégré de regarder à l'intérieur d'un exécutable Windows, et ceci ne demande aucune installation.