インストールされているアプリケーションが64ビットか32ビットかを知る簡単な方法


104

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
アプリがProgam Files(x86)フォルダにある場合、アプリが64ビットコンパイルされていることを保証するものではありません。ほとんどのインストーラーが従う慣習です。例えばChrome 64 bitがx86フォルダにインストールされます(残念ながら)。
nawfal

回答:


89

アプリケーションを実行すると、タスクマネージャでは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ビット実行可能ファイルです。


3
GnuFileをつかみ、それはとてもうまくいった。ありがとう。
Gary

1
いいえ、どいたしまして :)
John T

1
タスクマネージャの代わりにProcess Explorerを使用することもできます。そこにImage Type列を追加できます。必要に応じて、[オプション]メニューから[タスクマネージャ]を置き換えることができます。
Tom Wijsman

Process Explorerのような64ビットシステム上で実行されていることを検出し、64ビットイメージを解凍して実行する32ビットスタブを持つプログラムで、GNUファイルは何を示していますか?
afrazier

2
インストールする file GnuWin32から、(「バイナリ」ではなく)「完全なパッケージ」をダウンロードしてください。 gnuwin32.sourceforge.net/packages/file.htm
Colonel Panic

38

最も簡単な方法は、他のプログラムをインストールすることもファイルを実行することもなく、単にファイルを右クリックし、選択することです。 プロパティ それから、 互換性 タブ。グレー表示オプションがなく、Windows XPと9xモードが提供されている場合は、32ビットです。淡色表示されているオプションがあり、Vistaが最も初期のモードである場合は、64ビットです。アプリケーションを起動する必要はまったくありません。

アプリケーションが既に起動している場合は、もちろん他の回答で言及されている* 32のアイデアをそのまま使用できます。ただし、これはWindows 8.xおよびその新しいタスクマネージャでは利用できません。幸いなことに、あなたは有効にすることができます プラットフォーム の列見出しを右クリックして 詳細 タブと選択 列を選択 。列には、必要に応じて「32ビット」または「64ビット」が含まれます。


十分に合理的に聞こえます。
ArtOfWarfare

1
ええ、私はこれが好きです。 1つのファイルをチェックしたいのですが、ダウンロードしたがらくたがいっぱい入ったラップトップをロードしたくありませんでした...
Gottlieb Notschnabel

* 32の通知はWindows 8のタスクマネージャでは利用できませんが、デフォルトでは表示されていない "Platform"列があります。見る 7tutorials.com/…
Pino

ありがとう@Pino。私はWindows 8を使っている間それを理解する理由はありませんでした。
trlkly

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
               ...

そして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です。


興味深く詳細なアプローチ、私は本当にプログラミングをやり直す必要がある、+ 1。
John T

18

16進エディタプログラムを使っているなら、それを使ってファイルを開き、標準のヘッダイントロの後( "このプログラムはDOSモードでは実行できません..."のように)に表示されます。

"PE..L"(16進コード:504500004C)= 32ビット

または

"PE..d†"(16進コード:504500006486)= 64ビット


私はファイルマネージャとしてTotal Commanderを使っているので、私にとってはこれが最も簡単な解決策です。 F3を押すだけでファイルの先頭が表示され、すぐに答えを得ることができます。
mivk

1
ええと、彼らは実際にそこにそこに64ビットを示すために "64" "86"を書いた。醜い:)
Nyerguds

@ Nyerguds、なぜ醜いの?それは呼ばれています ヘックススピーク と非常に一般的に使用されている、特に。マジックナンバーで。例えばfacebookのIPv6は *:FACE:B00C:*
phuclv

それはまったく同じではありません。あなたはただヘックスリークピークについて話しています。これは、16進数で6と4のように見えるという理由だけで、文字通り100を「64」を意味するものとして使用しています。
Nyerguds

@Nyerguds "6486"という文字列は16進数です。これは明らかに です hexspeakは、16進数を文字として読み取る場所です。 Dに0xDを使用した場合、Dのように見えるので0xDEADBEEFの何が問題になっていますか?それが醜いなら BCD 64を意味するために文字通り100という数字を使うところでも醜いです
phuclv

5

alt text EXEエクスプローラ
OS / 2、NE、PE32、PE32 +、およびVxDファイルタイプの実行可能ファイルエクスプローラ。

このアプリケーションはに基づいています MiTeCポータブル実行可能リーダー 。実行ファイルのプロパティと構造を読み込んで表示します。 PE32(Portable Executable)、PE32 +(64bit)、NE(Windows 3.x New Executable)、VxD(Windows 9x Virtual Device Driver)ファイルタイプと互換性があります。 .NET実行ファイルもサポートされています。

Borlandコンパイラによってコンパイルされたファイルの導入されたクラス、使用された単位、およびフォームを列挙します。

注:GUIが付属しており、Windowsのバイナリファイル構造を「探索」することができます。
残念ながら、コマンドラインからターゲットバイナリを開くことさえできないようです。 しかし、それが与える詳細は、場合によっては役立つかもしれません。


3

あなたが使用して確認することができます sigcheck.exe これはの一部です Sysinternalsスイート 例えば、

$ 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

1
これはDLLでも機能します。
user34660

2

もう一つの簡単な方法は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

- デイブ



2

依存性ウォーカー exeファイルだけでなくDLLファイルも検証するための便利なGUIツールです。 64ビットDLLまたはEXEファイルには、横に小さな64のアイコンがあります。


1
filever /bad *.exe

WAMD64、W32i、またはW16が最初の列に入ります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.