【Windows】 実行ファイルが32ビットか64ビットか確認する方法

どうも、oyanです。
今日は、地味に検索されてくるマニアックなIT技術ネタをご紹介します。
この記事で分かること
- 実行ファイルが 32bits ( Win32, x86 ) か 64bits ( Win64, x64 ) かを判断する方法
- 方法は2つあります
dumpbin コマンドを使用する
制約
Visual Studio がインストールされている環境。
手順
1.スタートメニューの “Visual Studio Tools” から “Visual Studio コマンドプロンプト” を起動
2.dumpbin コマンドに /headers オプションをつけて実行
※ “machine” の情報で判断。
※ パイプでfindstrかmore に渡して必要な情報だけ表示させると分かりやすい。
32bits バイナリの場合
dumpbin /headers easy_install.exe | findstr machine
14C machine (x86)
32 bit word machine64bits バイナリの場合
dumpbin /headers python.exe | findstr machine
8664 machine (x64)Visual Studio なしで見分ける方法
バイナリエディタで PE ヘッダを解読する。
実行ファイルをバイナリエディタで開きます。
32bits バイナリの場合
0x80番地前後程度の先頭付近に存在するPEヘッダを探す。
以下のデータが存在すれば32bitsバイナリ。
50 45 00 00 4C 0164bits バイナリの場合
0x80番地前後程度の先頭付近に存在するPEヘッダを探す。
以下のデータが存在すれば64bitsバイナリ。
50 45 00 00 64 86
