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データソースなど).
アプリケーションを実行すると、タスクマネージャでは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>
ご覧のとおり、64ビットWinRARインストーラーはPE32 +として分類され、 は64ビットの実行可能ファイル を表します。 32ビットアプリケーションは単純にPE32、32ビット実行可能ファイルです。
最も簡単な方法は、他のプログラムをインストールすることもファイルを実行することもなく、ファイルを右クリックし、Propertiesを選択して、互換性tab。淡色表示されたオプションがなく、Windows XPおよび9xモードが提供されている場合は、32ビットです。淡色表示されているオプションがあり、Vistaが最も初期のモードである場合は、64ビットです。アプリケーションを起動する必要はまったくありません。
アプリケーションがすでに起動されている場合は、もちろん他の回答で言及されている* 32のアイデアをそのまま使用できます。ただし、これはWindows 8.xおよびその新しいタスクマネージャでは利用できません。幸いなことに、Platform列を有効にするには、Detailsタブの列見出しを右クリックして、列の選択。列には、必要に応じて「32ビット」または「64ビット」が含まれます。
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です。
16進エディタプログラムを使っているなら、それを使ってファイルを開き、標準のヘッダイントロの後( "このプログラムはDOSモードでは実行できません..."のように)に表示されます。
"PE..L"(16進コード:504500004C)= 32ビット
または
"PE..d†"(16進コード:504500006486)= 64ビット
EXEエクスプローラ
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のバイナリファイル構造を「探索」することができます。
残念ながら、ターゲットバイナリをコマンドラインから開くことすら受け入れられないようです。しかし、それが与える詳細は、場合によっては役立つかもしれません。
Sysinternals Suite の一部である 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
Dependency Walker は、exeファイルだけでなくDLLファイルも検証するのに役立つGUIツールです。 64ビットのDLLまたはEXEファイルの横には、64の小さなアイコンがあります。
もう一つの簡単な方法は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を入手するための1つの場所はここにあります: http://www.prestosoft.com/download/plugins/PESnoop.Zip
- デイブ
そしてあなたのGUI愛好家のために、絶対に最も簡単な方法はこのエクスプローラ拡張をインストールすることです:
http://www.silurian.com/win32/inspect.htm
- デイブ
プログラムを実行する場合は、 Sysinternal Suite から 「Process Monitor」 (ProcMon)を使用できます。
その移植性とあなたのプロセスについてのあなたに多くの情報を与えます。
filever /bad *.exe
WAMD64、W32i、またはW16が最初の列に入ります。