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

Schnelles Erkennen, ob eine installierte Anwendung 64-Bit oder 32-Bit ist

Ich habe eine Anwendung eines Drittanbieters (in diesem Fall Cognos Data Manager) auf einem 64-Bit-Windows Server 2003 installiert.

Gibt es eine schnelle Methode, um festzustellen, ob eine Anwendung als 64-Bit-Anwendung oder als 32-Bit-Anwendung gebaut/kompiliert wurde?

Standardmäßig wollte ein Programm in “Programme (x86)” installiert werden. Ich vermute, dass das bedeutet, dass es sich um eine 32-Bit-Version handelt. Ich musste es dazu bringen, mit einer Oracle-Datenbank zu kommunizieren, und um das zum Laufen zu bringen, habe ich es schließlich in einem Verzeichnispfad neu installiert, der keine Klammern “(” und “)” enthielt, da dies ein Problem verursachte. Ich habe außerdem sowohl 64-Bit- als auch 32-Bit-Oracle-Clients installiert.

Für die Zukunft würde ich gerne den Befehl “xxxx fred.exe” eingeben und mir sagen lassen, ob fred.exe ein 32-Bit- oder 64-Bit-Setup benötigt (z. B. ODBC-Datenquellen usw.).

Antworten (11)

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

Wenn Sie die Anwendung ausführen, sollte im Task-Manager ein *32 daneben stehen, um anzuzeigen, dass es sich um eine 32-Bit-Anwendung handelt. Ich bin mir ziemlich sicher, dass dies in Server 2003 implementiert wurde, bin mir aber nicht sicher, hoffentlich kann das jemand klären.

Sie könnten es auch über PEiD laufen lassen. PEiD unterstützt keine 64-Bit-PEs, so dass es sich bei 64-Bit verschlucken wird.

Es gibt auch die berühmte GNU-Datei für Windows. Sie verrät Ihnen alle möglichen Informationen über eine ausführbare Datei.

Beispiel:

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

Wie Sie sehen können, ist das 64-Bit-Installationsprogramm von WinRAR als PE32+ klassifiziert, was bedeutet, dass es sich um eine ausführbare 64-Bit-Datei handelt . Die 32-Bit-Anwendung ist einfach PE32, eine ausführbare 32-Bit-Datei.

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

Der einfachste Weg, ohne ein weiteres Programm zu installieren oder die Datei auszuführen, ist, mit der rechten Maustaste auf die Datei zu klicken, Eigenschaften zu wählen und dann die Registerkarte Kompatibilität aufzurufen. Wenn keine ausgegrauten Optionen vorhanden sind und die Modi Windows XP und 9x angeboten werden, handelt es sich um 32-Bit. Wenn die Optionen ausgegraut sind und Vista der früheste angebotene Modus ist, handelt es sich um 64-Bit. Die Anwendung muss überhaupt nicht gestartet werden.

Wenn die Anwendung bereits gestartet ist, können Sie natürlich immer noch die in anderen Antworten erwähnte *32-Idee verwenden. Diese ist jedoch in Windows 8.x und seinem neuen Task-Manager nicht verfügbar. Glücklicherweise können Sie eine Plattform-Spalte aktivieren, indem Sie mit der rechten Maustaste auf die Spaltenüberschriften auf der Registerkarte Details klicken und Spalten auswählen wählen. Die Spalte enthält je nach Bedarf entweder “32-Bit” oder “64-Bit”.

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

Wenn Sie Visual Studio oder das Platform SDK installiert haben, können Sie dumpbin /headers verwenden, um sich die PE-Header-Werte anzusehen.

Beispiel für eine ausführbare 64-Bit-Datei:

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

Und für 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
               ...

Der erste Wert im Dateiheader verrät Ihnen die Architektur: entweder 0x14C für x86 oder 0x8664 für x64.

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

Wenn Sie ein Hex-Editor-Programm haben, öffnen Sie einfach Ihre Datei damit und kurz nach dem Standard-Header-Intro-Zeug (wie “Dieses Programm kann nicht im DOS-Modus ausgeführt werden…”) sehen Sie entweder

“PE..L” (Hex-Code: 504500004C) = 32 Bit

oder

“PE..d†” (Hexadezimalcode: 504500006486) = 64 Bit

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

0x1 EXE Explorer Executable File Explorer für OS/2, NE, PE32, PE32+ und VxD Dateitypen.

Diese Anwendung basiert auf MiTeC Portable Executable Reader . Sie liest und zeigt die Eigenschaften und Struktur von ausführbaren Dateien an. Es ist kompatibel mit den Dateitypen PE32 (Portable Executable), PE32+ (64bit), NE (Windows 3.x New Executable) und VxD (Windows 9x Virtual Device Driver). .NET-Executables werden ebenfalls unterstützt.

Es listet eingeführte Klassen, verwendete Units und Formulare für Dateien auf, die von Borland-Compilern kompiliert wurden.

Hinweis: Es kommt mit einer grafischen Benutzeroberfläche und lässt Sie die Windows-Binärdateistruktur “erforschen”.
Leider scheint es nicht einmal eine Ziel-Binärdatei zum Öffnen von der Kommandozeile zu akzeptieren. Aber die Details, die es liefert, könnten in einigen Fällen nützlich sein.

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

Sie können mit Hilfe von sigcheck.exe prüfen, das Teil der Sysinternals Suite ist, z. B.

$ 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

Eine andere einfache Möglichkeit ist die Verwendung von 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...
...

Eine Stelle, wo man PESnoop bekommt, ist hier: http://www.prestosoft.com/download/plugins/PESnoop.zip

– Dave

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

Dependency Walker ist ein nützliches GUI-Tool, um nicht nur EXE-Dateien, sondern auch DLL-Dateien zu überprüfen. Eine 64-Bit-DLL- oder EXE-Datei hat ein kleines 64-Symbol daneben.

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

Und für die GUI-Enthusiasten unter Ihnen ist der absolut einfachste Weg, diese Explorer-Erweiterung zu installieren: http://www.silurian.com/win32/inspect.htm

– Dave

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

Wenn Sie das Programm ausführen, können Sie “Process Monitor” (ProcMon) aus Sysinternal Suite verwenden.

Es ist portabel und gibt Ihnen eine Menge Informationen über Ihre Prozesse.

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

WAMD64 oder W32i oder W16 stehen in der ersten Spalte.