まずは、メモ
ある程度知識が溜まったらまとめエントリ書くかも
[32bitバイナリか64bitバイナリかの判断]
PE(Portrable Executable)形式の場合
PEヘッダを見れば判断できる。
PEヘッダは、0x50450000 (PE\0\0) という規定値で始まる。
そして、それに続く2byteで32bit/64bitバイナリかの判断ができる。
0x14c の場合 x86向けバイナリ
0x6486の場合 x86-64向けバイナリ
*ここで注意なのは、ご使用のプロセッサがリトル・エンディアンの場合は、バイナリエディタでは、0x8664が0x6486と表示されます。
PEフォーマットについては、
https://code.google.com/p/corkami/wiki/PE101
がチートシートを公開してくれてます。
[実行中のプロセスが32bitか64bitか]
タスクマネージャーのプロセス名に「*32」がついていれば、それは32bitのプロセスです。
また、Windowsも絡めた話は、
http://blogs.msdn.com/b/nakama/archive/2008/10/30/part-1-64-windows-os.aspx
の記事が精緻にまとめられています。
0 件のコメント:
コメントを投稿