【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 machine

64bits バイナリの場合

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

Visual Studio なしで見分ける方法

バイナリエディタで PE ヘッダを解読する。
実行ファイルをバイナリエディタで開きます。

32bits バイナリの場合

0x80番地前後程度の先頭付近に存在するPEヘッダを探す。
以下のデータが存在すれば32bitsバイナリ。

50 45 00 00 4C 01

64bits バイナリの場合

0x80番地前後程度の先頭付近に存在するPEヘッダを探す。
以下のデータが存在すれば64bitsバイナリ。

50 45 00 00 64 86