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

Szybki sposób na sprawdzenie, czy zainstalowana aplikacja jest 64-bitowa czy 32-bitowa

Mam aplikację innej firmy (w tym przypadku Cognos Data Manager) zainstalowaną na 64-bitowym systemie Windows Server 2003.

Czy istnieje szybki sposób na określenie, czy aplikacja została zbudowana/kompilowana jako aplikacja 64-bitowa czy jako aplikacja 32-bitowa?

Domyślnie program chciał być zainstalowany w Program Files (x86). Zgaduję, że oznacza to, że jest to wersja 32-bitowa. Musiałem go zmusić do rozmowy z bazą danych Oracle i aby to zadziałało, w końcu zainstalowałem go ponownie w ścieżce do katalogu, w którym nie było nawiasów “(” i “)”, ponieważ to powodowało problem. Zainstalowałem również zarówno 64-bitowych, jak i 32-bitowych klientów Oracle.

Na przyszłość, chciałbym móc wpisać komendę “xxxx fred.exe” i uzyskać informację, czy fred.exe potrzebuje 32-bitowej czy 64-bitowej konfiguracji (np. źródła danych ODBC itp.).

Odpowiedzi (11)

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

Jeśli uruchomisz aplikację, w Menedżerze zadań powinna ona mieć obok siebie \32, aby wskazać, że jest 32-bitowa. Jestem prawie pewien, że mieli to zaimplementowane w Server 2003, nie jestem jednak pozytywny, mam nadzieję, że ktoś może to wyjaśnić.

Możesz również uruchomić go przez PEiD . PEiD nie obsługuje 64-bitowych PE, więc będzie się dławić, jeśli jest 64-bitowy.

Istnieje również słynny GNU file dla Windows. Powie ci on wszystkie rodzaje informacji o pliku wykonywalnym.

Przykład:

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

Jak widzisz, 64-bitowy instalator WinRAR jest sklasyfikowany jako PE32+, co oznacza 64-bitowy plik wykonywalny . Aplikacja 32-bitowa to po prostu PE32, czyli 32-bitowy plik wykonywalny.

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

Najprostszym sposobem, bez instalowania innego programu lub uruchamiania pliku, jest kliknięcie prawym przyciskiem myszy na pliku, wybranie Właściwości, a następnie przejście do zakładki Zgodność. Jeśli nie ma wyszarzonych opcji, a dostępne są tryby Windows XP i 9x, to znaczy, że jest to plik 32-bitowy. Jeśli opcje są wyszarzone, a najwcześniejszym oferowanym trybem jest Vista, jest to tryb 64-bitowy. Nie trzeba w ogóle uruchamiać aplikacji.

Jeśli aplikacja jest już uruchomiona, możesz oczywiście nadal korzystać z pomysłu \32 wspomnianego w innych odpowiedziach. Nie jest to jednak dostępne w systemie Windows 8.x i jego nowym menedżerze zadań. Na szczęście możesz włączyć kolumnę Platform, klikając prawym przyciskiem myszy nagłówki kolumn w zakładce Details i wybierając Select columns. Kolumna będzie zawierała odpowiednio “32-bit” lub “64-bit”.

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

Jeśli masz zainstalowane Visual Studio lub Platform SDK możesz użyć dumpbin /headers aby sprawdzić wartości nagłówka PE.

Przykład dla 64-bitowego pliku wykonywalnego:

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

A dla 32 bitowego:

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

Pierwsza wartość w nagłówku pliku mówi o architekturze: albo 0x14C dla x86 albo 0x8664 dla x64.

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

Jeśli masz program do edycji heksów, po prostu otwórz nim swój plik i krótko po standardowym nagłówku (jak “Ten program nie może być uruchomiony w trybie DOS…”) zobaczysz albo

“PE..L” (kod heksadecymalny: 504500004C) = 32-bitowy

albo

“PE..d†” (kod hex: 504500006486) = 64 bit.

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

0x1 EXE Explorer Eksplorator plików wykonywalnych dla typów plików OS/2, NE, PE32, PE32+ i VxD.

Ta aplikacja jest oparta na MiTeC Portable Executable Reader . Odczytuje i wyświetla właściwości i strukturę plików wykonywalnych. Jest kompatybilny z plikami typu PE32 (Portable Executable), PE32+ (64bit), NE (Windows 3.x New Executable) i VxD (Windows 9x Virtual Device Driver). Pliki wykonywalne .NET są również obsługiwane.

Wylicza wprowadzone klasy, użyte jednostki i formy dla plików skompilowanych przez kompilatory Borland.

Uwaga: Jest wyposażony w GUI i pozwala “zbadać” strukturę plików binarnych Windows. Niestety, nie wydaje się nawet akceptować docelowego pliku binarnego do otwarcia z wiersza poleceń. Ale szczegóły, które podaje mogą być przydatne w niektórych przypadkach.

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

Możesz sprawdzić używając sigcheck.exe , który jest częścią Sysinternals Suite , np.

$ 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

Innym prostym sposobem jest użycie 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...
...

Jednym z miejsc, gdzie można uzyskać PESnoop jest tutaj: http://www.prestosoft.com/download/plugins/PESnoop.zip

– Dave

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

Dependency Walker ](http://www.dependencywalker.com/) jest użytecznym narzędziem GUI do sprawdzania nie tylko plików exe, ale także plików DLL. 64-bitowy plik DLL lub EXE będzie miał małą ikonkę 64 obok.

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

A dla entuzjastów GUI, absolutnie najłatwiejszym sposobem jest zainstalowanie tego rozszerzenia Eksploratora: http://www.silurian.com/win32/inspect.htm

– Dave

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

Jeśli uruchomisz ten program, możesz użyć “Monitor procesów” (ProcMon) z Sysinternal Suite .

Jest przenośny i daje ci wiele informacji o twoich procesach.

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

WAMD64 lub W32i lub W16 będzie w pierwszej kolumnie.