2

エントリ ポイントを 0x15B8 として表示する「PE エディタ」を使用して Windows 実行可能ファイルを調べています。このエントリ ポイントのアドレスを仮想アドレスとして特定するにはどうすればよいですか?

4

1 に答える 1

2

エントリ ポイントは、モジュールのロード アドレスに関連して格納されます。

ImageBaseモジュールは、 のフィールドを設定することにより、優先アドレスを指定できますIMAGE_OPTIONAL_HEADER(このページを参照してください)。ただし、優先アドレスが使用されているため、または最近では ASLR のために、OS は別のアドレスを自由に選択できます。

これをどの環境で実行しているかはわかりませんが、実行中のプログラムでこれを実行している場合: これは実装の詳細ですが、NT では をHMODULEポインタにキャストでき、それがロード アドレスです。モジュール。それに基づいて PE ヘッダーを読み取ることもできます。たとえば、AddressOfEntryPointメンバーを のアドレスに追加してHMODULE、エントリ ポイントを見つけることができます...時間情報をロードするのではなく、ファイルにバイト オフセットのようなものが必要な場合は、セクション ヘッダーを解析する必要があります。ファイル内のどこに行くかを見つけるために。

于 2013-03-23T20:05:23.223 に答える