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

Быстрый способ определить, 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 источники данных и т.д.).

Ответы (11)

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

Если вы запускаете приложение, то в диспетчере задач оно должно иметь *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-битный исполняемый файл.

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

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

Если приложение уже запущено, вы, конечно же, можете использовать идею *32, упомянутую в других ответах. Однако в Windows 8.x и его новом менеджере задач это недоступно. К счастью, вы можете включить столбец Platform, щелкнув правой кнопкой мыши по заголовкам столбцов во вкладке Details и выбрав Select columnns. Столбец будет содержать либо “32-битный”, либо “64-битный” соответственно.

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

Если у вас установлена 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.

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

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

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

, либо

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

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

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

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

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

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

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

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

$ 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

Другой простой способ - использование 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
2
2
2014-02-14 23:32:00 +0000

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

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

И для вас, энтузиастов графического интерфейса, самым простым способом является установка этого расширения проводника: http://www.silurian.com/win32/inspect.htm

– Dave

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

Если вы запускаете программу, вы можете использовать “Монитор процесса” (ProcMon) из Sysinternal Suite .

Его портативность и дает вам много информации о ваших процессах.

1
1
1
2012-12-21 15:31:12 +0000

В первой колонке будут показаны filever /bad *.exe WAMD64 или W32i или W16.

Похожие вопросы

3
19
10
28
10