J'ai une application tierce (dans ce cas, Cognos Data Manager) installée sur Windows Server 2003 64 bits.
Existe-t-il un moyen rapide de déterminer si une application a été générée/compilée en tant qu'application 64 bits ou en tant qu'application 32 bits?
Par défaut, un programme voulait être installé dans Program Files (x86). Je suppose que cela signifie que c'est une version 32 bits. Je devais le faire pour parler à une base de données Oracle et pour que cela fonctionne, je l'ai finalement réinstallé dans un chemin de répertoire ne comportant pas de crochets "(" et ")", car cela posait problème. J'ai également installé des clients Oracle 64 bits et 32 bits.
Pour référence ultérieure, j'aimerais pouvoir taper une commande "xxxx fred.exe" et lui demander de me dire si fred.exe nécessiterait une configuration 32 bits ou 64 bits (par exemple, ODBC sources de données, etc.).
Si vous exécutez l'application, dans le Gestionnaire des tâches, un * 32 devrait l'indiquer pour indiquer qu'il est en 32 bits. Je suis à peu près sûr qu'ils ont implémenté cette fonctionnalité dans Server 2003, ce qui n'est pas positif, espérons que quelqu'un puisse clarifier les choses.
Vous pouvez également l'exécuter via PEiD . Le PEiD ne supporte pas les PE 64 bits, donc il va s'étouffer s'il s'agit d'un 64 bits.
Il y a aussi le célèbre GNU fichier } pour Windows. Il vous dira 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 constater, le programme d’installation 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.
Le moyen le plus simple, sans installer un autre programme ni exécuter le fichier, consiste à cliquer avec le bouton droit de la souris sur le fichier, choisissez Propriétés , puis accédez à l'onglet Compatibilité . S'il n'y a pas d'options grisées et que les modes Windows XP et 9x sont proposés, il s'agit du 32 bits. S'il existe des options grisées et que Vista est le premier mode proposé, il s'agit du 64 bits. Pas besoin de démarrer l'application du tout.
Si l'application est déjà lancée, vous pouvez bien sûr continuer à utiliser l'idée * 32 mentionnée dans d'autres réponses. Toutefois, cela n’est pas disponible dans Windows 8.x et son nouveau gestionnaire de tâches. Heureusement, vous pouvez activer une colonne Platform 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 des colonnes . La colonne contiendra "32 bits" ou "64 bits" selon le cas.
Si Visual Studio ou le Kit de développement Platform SDK est installé, vous pouvez utiliser dumpbin /headers
pour consulter les valeurs d'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 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 dans l'en-tête du fichier vous indique l'architecture: 0x14C pour x86 ou 0x8664 pour x64.
Si vous avez un programme d'édition hexadécimal, ouvrez simplement votre fichier avec celui-ci et peu de temps après l'intro standard en-tête (comme "Ce programme ne peut pas être exécuté en mode DOS ..."), vous verrez soit
"PE..L" (code hex: 504500004C) = 32 bits
ou
"PE..d †" (code hex: 504500006486) = 64 bits
EXE Explorer
Explorateur de fichiers exécutable pour les types de fichiers OS/2, NE, PE32, PE32 + et VxD.
Cette application est basée sur MiTeC Portable Executable Reader . Il lit et affiche les propriétés et la structure du fichier exécutable. Il est compatible avec les types de fichiers PE32 (Portable Executable), PE32 + (64 bits), NE (Windows 3.x Nouvel Exécutable) et VxD (Windows 9x Virtual Device Driver). Les exécutables .NET sont également supportés.
Il énumère les classes introduites, les unités utilisées et les formulaires pour les fichiers compilés par les compilateurs Borland.
Remarque: Il est livré avec une interface graphique et vous permet «d'explorer» la structure de fichier binaire Windows.
Malheureusement, il ne semble même pas accepter l’ouverture d’un fichier binaire cible à partir de la ligne de commande. Mais les détails fournis peuvent être utiles dans certains cas.
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
Dependency Walker est un outil graphique utile pour vérifier non seulement les fichiers exe, mais également les fichiers DLL. Un fichier DLL ou EXE 64 bits aura une petite icône 64 à côté.
Un autre moyen simple consiste à 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
Et pour les amateurs d’interface graphique, le moyen le plus simple consiste à installer cette extension Explorer:
http://www.silurian.com/win32/inspect.htm
- Dave
Si vous exécutez le programme, vous pouvez utiliser "Process Monitor" (ProcMon) à partir de Sysinternals Suite .
Son portable et vous donne beaucoup d'informations sur vos processus.
filever /bad *.exe
WAMD64 ou W32i ou W16 seront dans la première colonne.