116 votes

Moyen rapide de savoir si une application installée est 64 ou 32 bits

J'ai une application tierce (en l'occurrence Cognos Data Manager) installée sur un serveur Windows 2003 64 bits.

Existe-t-il un moyen rapide de déterminer si une application a été construite/compilée comme une application 64 bits ou comme une application 32 bits ?

Par défaut, un programme devait être installé dans Program Files (x86). Je suppose que cela signifie qu'il s'agit d'une version 32 bits. J'ai dû le faire dialoguer avec une base de données Oracle et, pour que cela fonctionne, j'ai fini par le réinstaller dans un chemin de répertoire ne comportant pas de parenthèses "(" et ")", car cela posait problème. J'ai également installé les clients Oracle 64 bits et 32 bits.

Pour une référence future, j'aimerais pouvoir taper une commande "xxxx fred.exe" et qu'elle me dise si fred.exe a besoin d'une configuration 32 bits ou 64 bits (par exemple, sources de données ODBC, etc.).

97voto

Dalroth Points 2468

Si vous exécutez l'application, le Gestionnaire des tâches devrait afficher un *32 à côté d'elle pour indiquer qu'elle est 32 bits. Je suis presque sûr que cela a été implémenté dans Server 2003, mais je ne suis pas sûr, j'espère que quelqu'un pourra clarifier la situation.

Vous pouvez aussi le faire passer par PEiD . PEiD ne prend pas en charge les PE 64 bits, il s'étranglera donc s'il s'agit de 64 bits.

Il y a aussi le célèbre Fichier GNU pour Windows. Il vous donnera toutes sortes d'informations sur un exécutable.

$ file winrar-x64-392b1.exe
winrar-x64-392b1.exe: PE32+ executable for MS Windows (GUI)

$ file display.exe
display.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit</pre>

Comme vous pouvez le constater, le programme d'installation 64 bits de WinRAR est classé PE32+, ce qui signifie qu'il n'est pas nécessaire de l'installer. signifie un exécutable 64 bits . L'application 32 bits est simplement PE32, un exécutable 32 bits.

51voto

trlkly Points 1419

La méthode la plus simple, sans installer un autre programme ni exécuter le fichier, consiste à cliquer avec le bouton droit de la souris sur le fichier, puis à choisir l'option suivante Propriétés et ensuite aller au Compatibilité onglet. Si aucune option n'est grisée et que les modes Windows XP et 9x sont proposés, il s'agit d'un système 32 bits. Si les options sont grisées et que Vista est le premier mode proposé, il s'agit d'un mode 64 bits. Il n'est pas nécessaire de lancer l'application.

Si l'application est déjà lancée, vous pouvez bien sûr toujours utiliser l'idée *32 mentionnée dans d'autres réponses. Toutefois, cette option n'est pas disponible dans Windows 8.x et son nouveau gestionnaire de tâches. Heureusement, vous pouvez activer un Plate-forme en cliquant avec le bouton droit de la souris sur les en-têtes de colonne dans la fenêtre Détails et choisir Sélectionner les colonnes . La colonne contiendra soit "32-bit" soit "64-bit" selon le cas.

25voto

davidcann Points 1005

Si vous avez installé Visual Studio ou le SDK de la plateforme, vous pouvez utiliser dumpbin /headers pour examiner les valeurs de l'en-tête PE.

Exemple pour un exécutable 64 bits :

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
            8664 machine (x64)
               5 number of sections
        4987EDCA time date stamp Tue Feb 03 08:10:02 2009
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
              23 characteristics
                   Relocations stripped
                   Executable
                   Application can handle large (>2GB) addresses

OPTIONAL HEADER VALUES
             20B magic # (PE32+)
            8.00 linker version
           2A600 size of code
           18A00 size of initialized data
               0 size of uninitialized data
           2AE90 entry point (000000000042AE90)
            1000 base of code
               ...

Et pour le 32 bits :

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               3 number of sections
        4B0C786D time date stamp Wed Nov 25 01:21:01 2009
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             103 characteristics
                   Relocations stripped
                   Executable
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic # (PE32)
            9.00 linker version
           42000 size of code
            4000 size of initialized data
           6F000 size of uninitialized data
           B0EE0 entry point (004B0EE0)
           70000 base of code
               ...

La première valeur de l'en-tête du fichier vous indique l'architecture : soit 0x14C pour x86, soit 0x8664 pour x64.

21voto

bcattle Points 213

Si vous disposez d'un programme d'édition hexadécimale, ouvrez votre fichier avec celui-ci et peu après l'en-tête standard d'introduction (comme "Ce programme ne peut pas être exécuté en mode DOS..."), vous verrez soit

"PE..L" (code hexagonal : 504500004C) = 32 bits

または

"PE..d†" (code hexagonal : 504500006486) = 64 bits

5voto

Mark Points 251

alt textEXE Explorer
Explorateur de fichiers exécutables pour les types de fichiers OS/2, NE, PE32, PE32+ et VxD.

Cette application est basée sur Lecteur d'exécutable portable MiTeC . Il lit et affiche les propriétés et la structure des fichiers exécutables. Il est compatible avec les types de fichiers PE32 (Portable Executable), PE32+ (64bit), NE (Windows 3.x New Executable) et VxD (Windows 9x Virtual Device Driver). Les exécutables .NET sont également pris en charge.

Il énumère les classes introduites, les unités utilisées et les formes pour les fichiers compilés par les compilateurs Borland.

Note : Il est fourni avec une interface graphique et vous permet d'explorer la structure des fichiers binaires de Windows.
Malheureusement, il ne semble même pas accepter un binaire cible à ouvrir à partir de la ligne de commande. Mais les détails qu'il donne pourraient être utiles dans certains cas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X