2010-01-31 21:34:22 +0000 2010-01-31 21:34:22 +0000
106
106

Un moyen rapide de savoir si une application installée est en 64 bits ou en 32 bits

J'ai une application tierce (dans ce cas-ci Cognos Data Manager) installée sur Windows Server 2003 64 bits.

Y a-t-il un moyen rapide de déterminer si une application a été construite/compilée en tant qu'application 64 bits ou 32 bits ?

Par défaut, un programme voulait ê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 communiquer avec une base de données Oracle et pour que cela fonctionne, je l'ai finalement réinstallé dans un chemin de répertoire qui ne contenait pas de parenthèses “(” et “)”, car cela posait un problème. J'ai également installé des 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 nécessite une installation 32 bits ou 64 bits (par exemple les sources de données ODBC, etc.).

Réponses (11)

91
91
91
2010-01-31 21:37:27 +0000

Si vous exécutez l'application, dans Task Manager, il devrait y avoir un *32 à côté pour indiquer qu'il s'agit d'une application 32 bits. Je suis presque sûr qu'ils ont implémenté cela dans le serveur 2003, mais ce n'est pas positif, j'espère que quelqu'un pourra clarifier la situation.

Vous pouvez aussi l'exécuter par PEiD . Le PEiD ne supporte pas les PE 64 bits, donc il s'étouffera s'il est en 64 bits.

Il existe aussi le fameux fichier GNU pour Windows. Il vous donnera toutes sortes d'informations sur un exécutable.

Exemple :

$ 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 voir, l'installateur WinRAR 64 bits est classé PE32+, ce qui signifie un exécutable 64 bits . L'application 32 bits est simplement PE32, un exécutable 32 bits.

41
41
41
2013-08-24 15:57:10 +0000

Le plus simple, sans installer un autre programme ou exécuter le fichier, est de faire un clic droit sur le fichier, de choisir Propriétés , puis d'aller dans l'onglet Compatibilité. S'il n'y a pas d'options grisées et que les modes Windows XP et 9x sont proposés, c'est le 32 bits. S'il y a des options grisées et que Vista est le premier mode proposé, c'est 64 bits. Il n'est pas du tout nécessaire de démarrer l'application.

Si l'application est déjà lancée, vous pouvez bien sûr toujours utiliser l'idée *32 mentionnée dans les autres réponses. Cependant, elle n'est pas disponible dans Windows 8.x et son nouveau gestionnaire de tâches. Heureusement, vous pouvez activer une colonne Plateforme en cliquant avec le bouton droit de la souris sur les en-têtes de colonne dans l'onglet Détails et en choisissant Sélectionner les colonnes. La colonne contiendra soit “32-bit” ou “64-bit” selon le cas.

24
24
24
2010-01-31 22:20:32 +0000

Si vous avez Visual Studio ou le SDK Platform installé, 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 32 bit :

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.

18
18
18
2011-08-27 00:49:56 +0000

Si vous avez un programme d'édition hexadécimale, il suffit d'ouvrir votre fichier avec lui et, peu après l'introduction standard de l'en-tête (comme “Ce programme ne peut pas être exécuté en mode DOS…”), vous verrez soit

“PE..L” (code hexadécimal : 504500004C) = 32 bit

ou

“PE..d†”. (code hexadécimal : 504500006486) = 64 bits

5
5
5
2010-09-03 14:56:41 +0000

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

Cette application est basée sur MiTeC Portable Executable Reader . Elle lit et affiche les propriétés et la structure des fichiers exécutables. Elle 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 des fichiers compilés par les compilateurs Borland.

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

3
3
3
2016-05-09 10:17:08 +0000

Vous pouvez vérifier en utilisant sigcheck.exe qui fait partie de Sysinternals Suite , par exemple

$ sigcheck.exe some_app.exe

Sigcheck v2.51 - File version and signature viewer
Copyright (C) 2004-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

C:/Program Files (x86)/Foo App\some_app.exe:
    Verified: Signed
    Signing date: 14:48 23/12/2015
    Publisher: X
    Company: X
    Description: X
    Product: Some App
    Prod version: 5.0.0.1241
    File version: 5.0.0.1241
    MachineType: 32-bit
2
2
2
2011-04-05 04:28:59 +0000

Un autre moyen simple est d'utiliser PESnoop :

C:\> pesnoop photoshop.exe /pe_dh

-------------------------------------------------------------------------------
 PESnoop 2.0 - Advanced PE32/PE32+/COFF OBJ,LIB command line dumper by yoda
-------------------------------------------------------------------------------

Dump of file: photoshop.exe...
Modus: 64bit Portable Executable Image...
...

Un endroit pour obtenir PESnoop est ici : http://www.prestosoft.com/download/plugins/PESnoop.zip

– Dave

2
2
2
2014-02-14 23:32:00 +0000

Dependency Walker est un outil GUI utile pour vérifier non seulement les fichiers exe mais aussi les fichiers DLL. Un fichier DLL ou EXE de 64 bits sera accompagné d'une petite icône 64.

2
2
2
2011-04-05 04:57:31 +0000

Et pour les amateurs d'interface graphique, le plus simple est d'installer cette extension Explorer : http://www.silurian.com/win32/inspect.htm

– Dave

1
1
1
2014-03-27 09:36:53 +0000

Si vous exécutez le programme, vous pouvez utiliser “Process Monitor” (ProcMon) de Sysinternal Suite .

Il est portable et vous donne beaucoup d'informations sur vos processus.

1
1
1
2012-12-21 15:31:12 +0000
filever /bad *.exe

WAMD64 ou W32i ou W16 sera dans la première colonne.