Gar*_*ary 113 windows 64-bit 32-bit
我在 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 数据源等)。
Joh*_*n T 95
如果您运行该应用程序,在任务管理器中,它旁边应该有一个 *32 以表明它是 32 位的。我很确定他们在 Server 2003 中实现了这一点,虽然不是肯定的,但希望有人能澄清一下。
您也可以通过PEiD运行它。PEiD 不支持 64 位 PE,因此如果它是 64 位,它会窒息。
还有著名的 Windows GNU 文件。它将告诉您有关可执行文件的各种信息。
例子:
$ 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>
Run Code Online (Sandbox Code Playgroud)
如您所见,64 位 WinRAR 安装程序被归类为 PE32+,这表示 64 位可执行文件。32 位应用程序只是 PE32,一个 32 位可执行文件。
trl*_*kly 47
最简单的方法,无需安装其他程序或运行该文件,只需右键单击该文件,选择Properties,然后转到Compatibility选项卡。如果没有灰色选项并且提供了 Windows XP 和 9x 模式,则它是 32 位的。如果有灰色选项并且 Vista 是最早提供的模式,则它是 64 位。根本不需要启动应用程序。
如果应用程序已经启动,你当然仍然可以使用其他答案中提到的 *32 想法。但是,这在 Windows 8.x 及其新的任务管理器中不可用。幸运的是,您可以通过右键单击“详细信息”选项卡中的列标题并选择“选择列”来启用平台列。该列将根据需要包含“32 位”或“64 位”。
Joe*_*oey 25
如果您安装了 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
...
Run Code Online (Sandbox Code Playgroud)
对于 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
...
Run Code Online (Sandbox Code Playgroud)
文件头中的第一个值告诉您体系结构:x86 为 0x14C,x64 为 0x8664。
小智 21
如果你有一个十六进制编辑器程序,只需用它打开你的文件,在标准头文件介绍之后不久(比如“这个程序不能在 DOS 模式下运行......”)你会看到
“PE..L”(十六进制代码:504500004C)= 32 位
或者
“PE..d†”(十六进制代码:504500006486)= 64 位
EXE Explorer
适用于 OS/2、NE、PE32、PE32+ 和 VxD 文件类型的可执行文件资源管理器。
此应用程序基于MiTeC Portable Executable Reader。它读取并显示可执行文件的属性和结构。它与 PE32(便携式可执行文件)、PE32+(64 位)、NE(Windows 3.x 新可执行文件)和 VxD(Windows 9x 虚拟设备驱动程序)文件类型兼容。.NET 可执行文件也受支持。
它为 Borland 编译器编译的文件列举了引入的类、使用的单位和形式。
注意:它带有一个 GUI,可让您“探索”Windows 二进制文件结构。
可悲的是,它似乎甚至不接受从命令行打开的目标二进制文件。但它提供的细节在某些情况下可能有用。
您可以检查使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176247 次 |
| 最近记录: |