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

快速判断安装的应用程序是64位还是32位的方法。

我在64位的Windows Server 2003上安装了一个第三方应用程序(在本例中是Cognos Data Manager)。

是否有一种快速的方法来确定一个应用程序是作为64位应用程序还是作为32位应用程序建立/编译的?

默认情况下,程序希望安装在程序文件(x86)中。我猜测这意味着它是一个32位版本。我必须让它与Oracle数据库对话,为了让它正常工作,我最终将它重新安装在一个没有括号"(“和”) “的目录路径中,因为那会造成问题。我还安装了64位和32位的Oracle客户端。

为了将来的参考,我希望能够输入命令 "xxxx fred.exe",让它告诉我fred.exe是否需要32位或64位的设置(例如ODBC数据源等)。

Odpowiedzi (11)

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

如果你运行应用程序,在任务管理器中,它的旁边应该有一个/*32来表示它是32位的。我很确定他们在Server 2003中就已经实现了这个功能,不过不是很肯定,希望有人能说明一下。

你也可以通过 PEiD 来运行。PEiD不支持64位的PE,所以如果是64位的PE就会卡死。

还有一个著名的 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及其新的任务管理器中是不可用的。幸运的是,您可以通过右键单击详细信息选项卡中的列标题并选择选择列来启用平台列。该列将酌情包含 “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
               ...

文件头的第一个值告诉你架构:x86的0x14C或x64的0x8664。

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编译器编译的文件的引入类、使用单位和形式。

注意:它带有一个GUI,让你 “探索 "Windows二进制文件结构。
遗憾的是,它似乎不接受从命令行打开目标二进制文件。但它提供的细节在某些情况下可能会有用。

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

你可以使用 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
```。
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

– Dave

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

Dependency Walker是一款有用的GUI工具,不仅可以验证exe文件,还可以验证DLL文件。一个64位的DLL或EXE文件旁边会有一个小小的64图标。

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

而对于GUI爱好者来说,最简单的方法就是安装这个资源管理器扩展: http://www.silurian.com/win32/inspect.htm

– Dave

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

如果你运行该程序,你可以使用 Sysinternal Suite “ProcMon”

它的便携性很强,能给你提供很多关于进程的信息。

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

WAMD64或W32i或W16将在第一列。