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

Modo rapido per dire 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 veloce per determinare se un'applicazione è stata costruita/compilata come un'applicazione a 64 bit o come un'applicazione a 32 bit?

Per default un programma voleva essere installato in Program Files (x86). Immagino che questo significhi che è una versione a 32 bit. Ho dovuto farlo parlare con un database Oracle e per farlo funzionare alla fine l'ho reinstallato in un percorso di directory che non avesse le parentesi “(” e “)”, perché questo causava un problema. Ho anche installato sia client Oracle a 64 bit che a 32 bit.

Per riferimento futuro, mi piacerebbe essere in grado di digitare un comando “xxxx fred.exe” e farmi dire se fred.exe avrebbe bisogno di una configurazione a 32-bit o 64-bit (ad esempio fonti di dati ODBC ecc).

Risposte (11)

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

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

Potresti anche eseguirlo attraverso PEiD . PEiD non supporta i PE a 64 bit, quindi si bloccherà se è a 64 bit.

C'è anche il famoso GNU file per Windows. Vi dirà ogni sorta 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 puoi vedere, il programma di installazione di WinRAR a 64 bit è classificato come PE32+, che indica un eseguibile a 64 bit . L'applicazione a 32 bit è semplicemente PE32, un eseguibile a 32 bit.

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

Il modo più semplice, senza installare un altro programma o eseguire il file, è semplicemente cliccare con il tasto destro sul file, scegliere Proprietà, e poi andare alla scheda Compatibilità. Se non ci sono opzioni in grigio e vengono offerte le modalità Windows XP e 9x, è a 32 bit. Se ci sono opzioni in grigio e Vista è la prima modalità offerta, è a 64 bit. Non c'è bisogno di avviare l'applicazione.

Se l'applicazione è già avviata, puoi ovviamente usare l'idea *32 menzionata in altre risposte. Tuttavia, questo non è disponibile in Windows 8.x e nel suo nuovo task manager. Fortunatamente, è possibile abilitare una colonna Piattaforma cliccando con il tasto destro del mouse sulle intestazioni delle colonne nella scheda Dettagli e scegliendo Seleziona colonne. La colonna conterrà “32-bit” o “64-bit” come appropriato.

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

Se avete installato Visual Studio o il Platform SDK potete usare dumpbin /headers per guardare i valori dell'header PE.

Esempio per 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 del file ti dice l'architettura: o 0x14C per x86 o 0x8664 per x64.

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

Se avete un programma di editor esadecimale, aprite il vostro file con esso e poco dopo l'intestazione standard (come “Questo programma non può essere eseguito in modalità DOS…”) vedrete o

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

o

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

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

0x1 EXE Explorer Executable File Explorer per i tipi di file OS/2, NE, PE32, PE32+ e VxD.

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

Enumera le classi introdotte, le unità usate e le forme per i file compilati dai compilatori Borland.

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

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

Puoi controllare usando sigcheck.exe che fa parte di Sysinternals Suite , per esempio

$ 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 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 ottenere PESnoop è qui: http://www.prestosoft.com/download/plugins/PESnoop.zip

– Dave

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

(http://www.dependencywalker.com/) è 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à una piccola icona 64 accanto ad esso.

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

E per voi appassionati di GUI, il modo più semplice in assoluto è installare questa estensione di Explorer: http://www.silurian.com/win32/inspect.htm

– Dave

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

Se esegui il programma, puoi usare “Process Monitor” (ProcMon) da Sysinternal Suite .

È portatile e ti dà molte informazioni sui tuoi processi.

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

WAMD64 o W32i o W16 sarà nella prima colonna.