« [ linux / 備忘録 ] 開いているファイル、開けるファイルの数を確認する | トップページ | [ win ] 期限が切れた証明書を利用する方法 »

2010/08/18

[ win ] 実行ファイルが 32 ビットか 64 ビットかを確認する方法

実行ファイルが 32bits ( Win32, x86 ) か 64bits ( Win64, x64 ) かを判断する方法は、主に2つあります。

1. dumpbin コマンドを使用する


Visual Studio がインストールされている環境では、dumpbin コマンドを使用して簡単に確認することができます。 スタートメニューの "Visual Studio Tools" から "Visual Studio コマンドプロンプト" を起動しましょう。dumpbin コマンドに /headers オプションをつけて実行します。

いろいろと表示されますが、32bits バイナリか 64bits バイナリかの判断に必要なのは "machine" の情報です。パイプで findstr か more に渡して必要な情報だけ表示させるとわかりやすいでしょう。

1.1. 32bits バイナリの場合
下記のように表示されます。

dumpbin /headers easy_install.exe | findstr machine
             14C machine (x86)
                   32 bit word machine

1.2. 64bits バイナリの場合
下記のように表示されます。

dumpbin /headers python.exe | findstr machine
            8664 machine (x64)

2. Visual Studio なしで見分ける方法

バイナリエディタで PE ヘッダを解読します。dumpbin を実行すると 32bits バイナリでは "14C machine (x86)"、64bits バイナリでは "8664 machine (x64)" と表示されたのを覚えているでしょうか? 実は、machine の左側の数値が PE ヘッダに記録されており、dumpbin はこれをもとに x86 であるか x64 であるかを判別しています。

ただし、IA32 系 CPU はリトルエンディアンですので、バイナリエディタ上での表記は "4C 01" または "64 86" になることに注意してください。

2.1. 32bits バイナリの場合
下図のようになります。赤線で囲んだ部分より 32bits バイナリであると判断できます。

2.2. 64bits バイナリの場合
下図のようになります。赤線で囲んだ部分により 64bits バイナリであると判断できます。

|

« [ linux / 備忘録 ] 開いているファイル、開けるファイルの数を確認する | トップページ | [ win ] 期限が切れた証明書を利用する方法 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/103108/49178829

この記事へのトラックバック一覧です: [ win ] 実行ファイルが 32 ビットか 64 ビットかを確認する方法:

« [ linux / 備忘録 ] 開いているファイル、開けるファイルの数を確認する | トップページ | [ win ] 期限が切れた証明書を利用する方法 »