Modo rapido per sapere se un'applicazione installata è a 64 bit o a 32 bit

Ho un'applicazione di terze parti (in questo caso Cognos Data Manager) installata su Windows Server 2003 a 64 bit.

C'è un modo rapido per determinare se un'applicazione è stata creata / compilata come un'applicazione a 64 bit o come un'applicazione a 32 bit?

Per impostazione predefinita, un programma voleva essere installato in Programmi (x86). Sto indovinando che significa che è una versione a 32 bit. Ho dovuto farlo per parlare con un database Oracle e per get questo lavoro ho reinstallato in un path di directory che non aveva parentesi "(" e ")" in quanto ciò stava causando un problema. Ho anche installato sia client Oracle a 64 bit che a 32 bit.

Per riferimento futuro, vorrei poter digitare un command "xxxx fred.exe" e dirmi se fred.exe avrebbe bisogno di configuration a 32 bit oa 64 bit (ad esempio sorgenti dati ODBC ecc.).

Se si esegue l'applicazione, in Task Manager dovrebbe avere un * 32 accanto a esso per indicare che è a 32 bit. Sono abbastanza sicuro di averlo implementato in Server 2003, non positivo però, spero che qualcuno possa chiarire.

Potresti anche eseguirlo attraverso PEiD . PEiD non support i PE a 64 bit, quindi soffoca se è a 64 bit.

C'è anche il famoso file GNU per Windows. Ti dirà tutti i tipi di informazioni su un eseguibile.

Esempio:

$ 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> 

Come si può vedere, il programma di installazione WinRAR a 64 bit è classificato come PE32 +, il che significa un eseguibile a 64 bit . L'applicazione a 32 bit è semplicemente PE32, un eseguibile a 32 bit.

Il modo più semplice, senza installare un altro programma o eseguire il file, è solo per fare clic destro sul file, scegliere Proprietà e quindi andare alla scheda Compatibilità . Se non sono disponibili opzioni grigio e le modalità Windows XP e 9x sono offerte, è a 32 bit. Se ci sono opzioni grigio e Vista è la modalità più antica offerta, è a 64 bit. Non è necessario avviare l'applicazione a tutti.

Se l'applicazione è già stata avviata, puoi naturalmente utilizzare l'idea * 32 menzionata in altre risposte. Tuttavia, questo non è disponibile in Windows 8.x e nel nuovo task manager. Fortunatamente, è ansible triggersre una colonna Piattaforma facendo clic con il button destro del mouse sulle intestazioni di colonna nella scheda Dettagli e scegliendo Seleziona colonne . La colonna conterrà "32-bit" o "64-bit" come appropriato.

Se hai installato Visual Studio o Platform SDK puoi utilizzare dumpbin /headers per esaminare i valori dell'intestazione PE.

Esempio di un eseguibile a 64 bit:

 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 ... 

E per 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 ... 

Il primo valore nell'intestazione di file ti dice l'architettura: 0x14C per x86 o 0x8664 per x64.

Se si dispone di un programma di editor esadecimale, basta aprire il file con esso e poco dopo l'intro intestazione standard (come "Questo programma non può essere eseguito in modalità DOS …") si vedrà

"PE..L" (codice esadecimale: 504500004C) = 32 bit

o

"PE..d †" (codice esadecimale: 504500006486) = 64 bit

alt text EXE Explorer
Esplora file eseguibile per tipi di file OS / 2, NE, PE32, PE32 + e VxD.

Questa applicazione è basata su MiTeC Portable Executable Reader . Legge e visualizza le properties; e la struttura dei file eseguibili. È compatibile con i tipi di file PE32 (Portable Executable), PE32 + (64 bit), NE (Windows 3.x New Executable) e VxD (Windows 9x Virtual Device Driver). Anche gli eseguibili .NET sono supportti.

Essa elenca le classi introdotte, le unità usate ei moduli per i file compilati dai compilatori Borland.

Nota: Viene fornito con una GUI e consente di esplorare la struttura dei file binari di Windows.
Purtroppo, non sembra nemless accettare un binario di destinazione da aprire dalla row di command. Ma il dettaglio che dà potrebbe essere utile in alcuni casi.

Un altro modo semplice è usare 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 posto per get PESnoop è qui: http://www.prestosoft.com/download/plugins/PESnoop.zip

– Dave

E per gli appassionati di GUI, il modo più semplice è quello di installare questa estensione di Explorer:

http://www.silurian.com/win32/inspect.htm

– Dave

Dependency Walker è un utile strumento GUI per verificare non solo i file exe ma anche i file DLL. Un file DLL o EXE a 64 bit avrà un piccolo 64 icona accanto ad esso.

È ansible controllare utilizzando sigcheck.exe che fa parte di Sysinternals Suite , ad es

 $ 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 
 filever /bad *.exe 

WAMD64 o W32i o W16 saranno nella prima colonna.

Se si esegue il programma, è ansible utilizzare "Process Monitor" (ProcMon) da Sysinternal Suite .

Il suo porttile e ti dà un sacco di informazioni sui processi.