it-swarm-ru.tech

Быстрый способ узнать, является ли установленное приложение 64-битным или 32-битным

У меня установлено стороннее приложение (в данном случае Cognos Data Manager), установленное на 64-битной Windows Server 2003.

Есть ли быстрый способ определить, было ли приложение построено/скомпилировано как 64-битное приложение или как 32-битное приложение?

По умолчанию программа хотела быть установленной в Program Files (x86). Я предполагаю, что это означает, что это 32-битная версия. Мне нужно было заставить его общаться с базой данных Oracle и заставить его работать, я в итоге переустановил его в путь к каталогу, в котором не было скобок «(» и «)», так как это вызывало проблему. Я также установил как 64-битные, так и 32-битные клиенты Oracle.

Для дальнейшего использования я хотел бы иметь возможность набрать команду «xxxx fred.exe» и попросить ее указать, потребуется ли для fred.exe 32-разрядная или 64-разрядная настройка (например, ODBC источники данных и т. д.).

107
Gary

Если вы запускаете приложение, в диспетчере задач оно должно иметь * 32, чтобы указать, что оно 32-разрядное. Я почти уверен, что они реализовали это в Server 2003, но это не очень хорошо, надеюсь, кто-то может уточнить.

Вы также можете запустить его через PEiD . PEiD не поддерживает 64-битные PE, поэтому он будет подавлен, если он 64-битный.

Существует также известный файл GNU для Windows. Он расскажет вам все виды информации об исполняемом файле.

Пример:

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

Как видите, 64-битный установщик WinRAR классифицирован как PE32 +, что означает 64-битный исполняемый файл . 32-битное приложение - это просто PE32, 32-битный исполняемый файл.

92
John T

Самый простой способ, без установки другой программы или запуска файла, это просто щелкнуть правой кнопкой мыши файл, выбрать Свойства , а затем перейти на вкладку Совместимость . Если нет неактивных параметров и предлагаются режимы Windows XP и ​​9x, это 32-разрядная версия. Если имеются неактивные параметры, а Vista - самый ранний из предложенных режимов, это 64-разрядная версия. Нет необходимости запускать приложение вообще.

Если приложение уже запущено, вы все равно можете использовать идею * 32, упомянутую в других ответах. Однако это недоступно в Windows 8.x и его новом диспетчере задач. К счастью, вы можете включить Платформа столбец, щелкнув правой кнопкой мыши заголовки столбцов на вкладке Подробности и выбрав Выбрать столбцы . Столбец будет содержать «32-разрядный» или «64-разрядный», в зависимости от ситуации.

40
trlkly

Если у вас установлен Visual Studio или Platform SDK, вы можете использовать dumpbin /headers для просмотра значений заголовка PE.

Пример для 64-битного исполняемого файла:

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

И для 32 бит:

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

Первое значение в заголовке файла говорит вам об архитектуре: 0x14C для x86 или 0x8664 для x64.

25
Joey

Если у вас есть программа шестнадцатеричного редактора, просто откройте файл с ней и вскоре после стандартного ввода заголовка (например, «Эта программа не может быть запущена в режиме DOS ...»), вы увидите либо

"PE..L" (шестнадцатеричный код: 504500004C) = 32 бита

или же

"PE..d †" (шестнадцатеричный код: 504500006486) = 64 бита

18
Brian Weigand

alt textEXE Explorer
Исполняемый файл Проводник для типов файлов OS/2, NE, PE32, PE32 + и VxD.

Это приложение основано на MiTeC Portable Executable Reader . Он читает и отображает свойства и структуру исполняемого файла. Он совместим с типами файлов PE32 (переносимый исполняемый файл), PE32 + (64-битный), NE (новый исполняемый файл Windows 3.x) и VxD (драйвер виртуального устройства Windows 9x). Исполняемые файлы .NET также поддерживаются.

Он перечисляет введенные классы, используемые единицы и формы для файлов, скомпилированных компиляторами Borland.

Примечание: он поставляется с графическим интерфейсом и позволяет вам «исследовать» структуру двоичных файлов Windows.
К сожалению, он даже не принимает целевой двоичный файл для открытия из командной строки. Но детали, которые он дает, могут быть полезны в некоторых случаях.

5
nik

Вы можете проверить, используя sigcheck.exe который является частью Sysinternals Suite , например.

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

Dependency Walker это полезный инструмент с графическим интерфейсом для проверки не только exe-файлов, но и DLL файлов. 64-битный DLL или EXE-файл будет иметь маленькую иконку 64 рядом с ним.

2
bobc

Другой простой способ - использовать 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...
...

Одно из мест, где можно получить PESnoop: http://www.prestosoft.com/download/plugins/PESnoop.Zip

- Дэйв

2
ViperGeek

А для вас, энтузиастов GUI, самый простой способ - установить это расширение Explorer:

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

- Дэйв

2
ViperGeek

Если вы запустите программу, вы можете использовать «Process Monitor» (ProcMon) из Sysinternals Suite .

Он портативный и дает вам много информации о ваших процессах.

1
yucer
filever /bad *.exe

WAMD64 или W32i или W16 будут в первом столбце.

1
Bob