Mam aplikację innej firmy (w tym przypadku Cognos Data Manager) zainstalowaną w 64-bitowym systemie Windows Server 2003.
Czy istnieje szybki sposób ustalenia, czy aplikacja została zbudowana / skompilowana jako aplikacja 64-bitowa, czy jako aplikacja 32-bitowa?
Domyślnie program chciał zostać zainstalowany w Program Files (x86). Zgaduję, że to oznacza, że jest to wersja 32-bitowa. Musiałem zmusić go, aby porozmawiał z bazą danych Oracle i aby to działało, ostatecznie ponownie go zainstalowałem w ścieżce katalogu, w którym nie było nawiasów „(” i „)”, ponieważ powodowało to problem. Zainstalowałem również 64-bitowych i 32-bitowych klientów Oracle.
Do przyszłego użytku chciałbym móc wpisać polecenie „xxxx fred.exe” i powiedzieć mi, czy fred.exe będzie wymagał konfiguracji 32-bitowej czy 64-bitowej (np. Źródła danych ODBC itp.).
Odpowiedzi:
Jeśli uruchomisz aplikację, w Menedżerze zadań powinna ona zawierać * 32, co oznacza, że jest 32-bitowa. Jestem pewien, że zaimplementowali to w Server 2003, choć nie jest to pozytywne, mam nadzieję, że ktoś to wyjaśni.
Możesz również uruchomić go przez PEiD . PEiD nie obsługuje 64-bitowych PE, więc dusi się, jeśli jest 64-bitowy.
Istnieje również słynny plik GNU dla systemu Windows. Powie ci wszelkiego rodzaju informacje o pliku wykonywalnym.
Przykład:
Jak widać, 64-bitowy instalator WinRAR jest klasyfikowany jako PE32 +, co oznacza 64-bitowy plik wykonywalny . Aplikacja 32-bitowa to po prostu PE32, 32-bitowy plik wykonywalny.
źródło
file
z GnuWin32, pobierz „pełny pakiet” (zamiast „plików binarnych”) z gnuwin32.sourceforge.net/packages/file.htmNajłatwiejszym sposobem, bez instalowania innego programu lub uruchamiania pliku, jest kliknięcie pliku prawym przyciskiem myszy, wybranie Właściwości , a następnie przejście do zakładki Kompatybilność . Jeśli nie ma żadnych wyszarzonych opcji i oferowane są tryby Windows XP i 9x, jest to wersja 32-bitowa. Jeśli są wyszarzone opcje, a Vista jest najwcześniej oferowanym trybem, jest to wersja 64-bitowa. W ogóle nie trzeba uruchamiać aplikacji.
Jeśli aplikacja jest już uruchomiona, nadal możesz oczywiście skorzystać z pomysłu * 32 wymienionego 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ę Platforma, klikając prawym przyciskiem myszy nagłówki kolumn na karcie Szczegóły i wybierając Wybierz kolumny . Kolumna będzie zawierać odpowiednio „32-bit” lub „64-bit”.
źródło
Jeśli masz zainstalowany program Visual Studio lub platformę SDK, możesz użyć
dumpbin /headers
do sprawdzenia wartości nagłówka PE.Przykład 64-bitowego pliku wykonywalnego:
I dla wersji 32-bitowej:
Pierwsza wartość w nagłówku pliku mówi o architekturze: 0x14C dla x86 lub 0x8664 dla x64.
źródło
Jeśli masz edytor szesnastkowy, po prostu otwórz go i wkrótce po standardowym wprowadzeniu do nagłówka (np. „Ten program nie może być uruchomiony w trybie DOS ...”) zobaczysz albo
„PE..L” (kod szesnastkowy: 504500004C) = 32 bity
lub
„PE..d †” (kod szesnastkowy: 504500006486) = 64-bitowy
źródło
*:FACE:B00C:*
Eksplorator
plików wykonywalnych EXE Explorer dla typów plików OS / 2, NE, PE32, PE32 + i VxD.
Uwaga: Zawiera GUI i pozwala „zbadać” strukturę plików binarnych systemu Windows.
Niestety, wydaje się, że nawet nie akceptuje docelowego pliku binarnego do otwarcia z wiersza poleceń. Ale podane szczegóły mogą być przydatne w niektórych przypadkach.
źródło
Możesz sprawdzić za pomocą,
sigcheck.exe
która część pakietu Sysinternals Suite , npźródło
Innym prostym sposobem jest użycie PESnoop:
Jedno miejsce na zdobycie PESnoop jest tutaj: http://www.prestosoft.com/download/plugins/PESnoop.zip
- Dave
źródło
A dla was, entuzjastów GUI, absolutnie najprostszym sposobem jest zainstalowanie tego rozszerzenia Explorer:
http://www.silurian.com/win32/inspect.htm
- Dave
źródło
Dependency Walker to przydatne narzędzie GUI do weryfikacji nie tylko plików exe, ale także plików DLL. 64-bitowy plik DLL lub EXE będzie miał małą ikonę 64 obok niego.
źródło
WAMD64, W32i lub W16 będą w pierwszej kolumnie.
źródło
Jeśli uruchomisz program, możesz użyć „Process Monitor” (ProcMon) z Sysinternal Suite .
Jest przenośny i daje wiele informacji o twoich procesach.
źródło