1

Windows 64環境でいくつかのプロセスのPEヘッダーを読み取ろうとしていますが、32ビットと64ビットの両方の実行可能ファイルのIMAGE_NT_HEADERS構造を読み取るだけでコードが機能するため、次のようなものを記述する必要がありますか?

if executable is 64 bit
 use IMAGE_NT_HEADERS64
else
 use IMAGE_NT_HEADERS

?私のコードは、64ビットプロセスと32ビットプロセスの両方にIMAGE_NT_HEADERSを使用するだけで機能するようですが、何かが足りませんか?

4

1 に答える 1

2

明らかに、違いはOptionalHeaderのいくつかのフィールドにあります。たとえば、64ビットバージョンのImageBaseは64ビットサイズです。コードが(を含む)の後にフィールドを使用しない場合、コードはImageBaseテストに合格します。

于 2013-01-03T00:54:22.087 に答える