492 votes

Comment vérifier si un binaire est 32 ou 64 bits sous Windows ?

Existe-t-il un moyen simple de vérifier si un binaire est 32 ou 64 bits sous Windows ? J'ai besoin de vérifier avant de déplacer le programme sur une machine 32 bits et de subir un échec spectaculaire.

0 votes

Cette question est similaire Cependant, il faut un peu de travail pour le vérifier.

4 votes

@Guillaume : Les images exécutables ne sont pas des processus. Le gestionnaire de tâches n'affiche que les processus.

2voto

Rakha Points 121

Ma version simple en Powershell, semble être 100% fiable d'après mes tests.

Clear-Host
$Check32Bit = $null
$Check64Bit = $null

$File = "C:\WINDOWS\system32\notepad.exe"

$ExeData = get-content $File -totalcount 50

$Check32Bit = $ExeData | select-string -Pattern "PE..L" -Quiet
$Check64Bit = $ExeData | select-string -Pattern "PE..d†" -Quiet

if ($Check32Bit) {
"File is 32bit (x86)"
}
elseif ($Check64Bit) {
"File is 64bit (x64)"
}
else {
"Couldn't identify if the file is 32bit or 64bit"
}

2voto

Hackstaar Points 111

Comme l'a souligné un commentaire de @user1055604 La façon la plus simple de le faire sous Windows 10 est la suivante :

dumpbin /headers yourfile.lib | findstr "machine"

Cette ligne unique produira un résultat intuitif en tant que sortie. Par exemple, sur une bibliothèque 64 bits que je viens de tester, il a imprimé ce qui suit :

Machine 8664 (x64)

2voto

Roland Points 337

Beaucoup d'excellentes réponses déjà, certaines revendiquant le titre de "plus simple", mais la le plus simple possible est d'inspecter le chemin du dossier.

C:\Program Files (x86)\ ne comporte que des éléments 32 bits

1voto

user429538 Points 9
  • exécuter l'application
  • ouvrir le Gestionnaire des tâches
  • clic droit et création d'un fichier de vidage
  • note en bas du chemin
  • allez dans le chemin et ouvrez .DMP dump dans Visual Studio
  • vous y trouverez tous les détails
  • vérifier l'architecture du processus :

4 votes

Je me sens obligé de souligner le fait que cette réponse nécessite l'exécution de l'application. Les commentateurs précédents ont suggéré que cela pourrait être indésirable. De plus, Visual Studio ne sera pas automatiquement disponible sur toutes les plateformes Windows.

1voto

tomcat Points 101

Vous pouvez utiliser corflags à partir de l'invite de commande VS pour changer le type de machine

https://docs.microsoft.com/en-us/dotnet/framework/tools/corflags-exe-corflags-conversion-tool

Changez le type de machine :

corflags d:\abc.exe /32BITREQ- 

Vérifier en utilisant corflags :

corflags d:\abc.exe 

32BITREQ : 0 ** 0 signifie 64 bits

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