Tengo una aplicación de terceros (en este caso Cognos Data Manager) instalada en Windows Server 2003 de 64 bits.
¿Hay alguna forma rápida de determinar si una aplicación se ha compilado / compilado como una aplicación de 64 bits o como una aplicación de 32 bits?
Por defecto, un programa quería instalarse en Archivos de programa (x86). Supongo que eso significa que es una versión de 32 bits. Tenía que conseguir que hablara con una base de datos Oracle y para que funcionara, finalmente lo reinstalé en una ruta de directorio que no tenía los corchetes "(" y ")", ya que eso estaba causando un problema. También he instalado clientes Oracle de 64 bits y 32 bits.
Para referencia futura, me gustaría poder escribir un comando "xxxx fred.exe" y que me diga si fred.exe necesitaría una configuración de 32 bits o de 64 bits (por ejemplo, fuentes de datos ODBC, etc.).
Respuestas:
Si ejecuta la aplicación, en el Administrador de tareas debería tener un * 32 al lado para indicar que es de 32 bits. Estoy bastante seguro de que lo implementaron en Server 2003, aunque no es positivo, espero que alguien pueda aclararlo.
También puede ejecutarlo a través de PEiD . PEiD no admite PE de 64 bits, por lo que se ahogará si es de 64 bits.
También está el famoso archivo GNU para Windows. Le informará todo tipo de información sobre un ejecutable.
Ejemplo:
Como puede ver, el instalador WinRAR de 64 bits se clasifica como PE32 +, que significa un ejecutable de 64 bits . La aplicación de 32 bits es simplemente PE32, un ejecutable de 32 bits.
fuente
file
desde GnuWin32, descargue 'paquete completo' (en lugar de 'binarios') desde gnuwin32.sourceforge.net/packages/file.htmLa forma más fácil, sin instalar otro programa o ejecutar el archivo, es simplemente hacer clic derecho en el archivo, elegir Propiedades y luego ir a la pestaña Compatibilidad . Si no hay opciones atenuadas y se ofrecen los modos Windows XP y 9x, es de 32 bits. Si hay opciones atenuadas y Vista es el primer modo ofrecido, es de 64 bits. No es necesario iniciar la aplicación en absoluto.
Si la aplicación ya se inició, por supuesto, aún puede usar la idea * 32 mencionada en otras respuestas. Sin embargo, esto no está disponible en Windows 8.xy su nuevo administrador de tareas. Afortunadamente, puede habilitar una columna de Plataforma haciendo clic derecho en los encabezados de columna en la pestaña Detalles y seleccionando Seleccionar columnas . La columna contendrá "32 bits" o "64 bits" según corresponda.
fuente
Si tiene instalado Visual Studio o Platform SDK, puede usar
dumpbin /headers
para ver los valores de encabezado PE.Ejemplo para un ejecutable de 64 bits:
Y para 32 bits:
El primer valor en el encabezado del archivo le indica la arquitectura: 0x14C para x86 o 0x8664 para x64.
fuente
Si tiene un programa de edición hexadecimal, simplemente abra su archivo con él y poco después de la introducción estándar del encabezado (como "Este programa no se puede ejecutar en modo DOS ...") verá
"PE..L" (código hexadecimal: 504500004C) = 32 bits
o
"PE..d †" (código hexadecimal: 504500006486) = 64 bit
fuente
*:FACE:B00C:*
EXE Explorer
Executable File Explorer para los tipos de archivo OS / 2, NE, PE32, PE32 + y VxD.
Nota: Viene con una GUI y le permite 'explorar' la estructura de archivos binarios de Windows.
Lamentablemente, ni siquiera parece aceptar un binario objetivo para abrir desde la línea de comandos. Pero el detalle que da puede ser útil en algunos casos.
fuente
Puede verificar
sigcheck.exe
qué es parte de Sysinternals Suite , p. Ej.fuente
Otra forma simple es usar PESnoop:
Un lugar para obtener PESnoop es aquí: http://www.prestosoft.com/download/plugins/PESnoop.zip
- Dave
fuente
Y para los entusiastas de la GUI, la forma más fácil es instalar esta extensión Explorer:
http://www.silurian.com/win32/inspect.htm
- Dave
fuente
Dependency Walker es una herramienta GUI útil para verificar no solo archivos exe sino también archivos DLL. Un archivo DLL o EXE de 64 bits tendrá un pequeño ícono de 64 al lado.
fuente
WAMD64 o W32i o W16 estarán en la primera columna.
fuente
Si ejecuta el programa, puede usar "Process Monitor" (ProcMon) de Sysinternal Suite .
Es portátil y le brinda mucha información sobre sus procesos.
fuente