快速判断已安装应用程序是 64 位还是 32 位

快速判断已安装应用程序是 64 位还是 32 位

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

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

默认情况下,程序需要安装在 Program Files (x86) 中。我猜这意味着它是 32 位版本。我必须让它与 Oracle 数据库通信,为了使它正常工作,我最终将它重新安装在一个没有括号“(”和“)”的目录路径中,因为这会导致问题。我还安装了 64 位和 32 位 Oracle 客户端。

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

答案1

如果您运行该应用程序,任务管理器中它旁边应该有一个 *32,表示它是 32 位的。我很确定他们在 Server 2003 中实现了这个功能,但不确定,希望有人能澄清一下。

你也可以通过聚乙烯亚胺。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位可执行文件。

答案2

最简单的方法,无需安装其他程序或运行文件,只需右键单击文件,选择特性,然后转到兼容性选项卡。如果没有灰色选项,并且提供 Windows XP 和 9x 模式,则为 32 位。如果有灰色选项,并且 Vista 是提供的最早模式,则为 64 位。根本不需要启动应用程序。

如果应用程序已经启动,您当然仍然可以使用其他答案中提到的 *32 想法。但是,这在 Windows 8.x 及其新任务管理器中不可用。幸运的是,您可以启用平台右键单击列标题,细节选项卡并选择选择列。该列将根据需要包含“32 位”或“64 位”。

答案3

如果您安装了 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。

答案4

替代文本EXE 资源管理器
适用于 OS/2、NE、PE32、PE32+ 和 VxD 文件类型的可执行文件资源管理器。

此应用程序基于MiTeC 便携式可执行文件阅读器. 它读取并显示可执行文件的属性和结构。它与 PE32(可移植可执行文件)、PE32+(64 位)、NE(Windows 3.x 新可执行文件)和 VxD(Windows 9x 虚拟设备驱动程序)文件类型兼容。还支持 .NET 可执行文件。

它列举了 Borland 编译器所引入的文件的类、所用的单元和格式。

注意:它带有 GUI,可让您“探索”Windows 二进制文件结构。
遗憾的是,它似乎甚至不接受从命令行打开目标二进制文件。但它提供的详细信息在某些情况下可能很有用。

相关内容