2009-10-13 9 views
5

私は、.NETでのメモリアクセスを試しています。現時点では、アンマネージドプロセスを起動し、ロードされたモジュール(DLL)の1つをBaseAddressとして取得する管理対象プログラムがあります。私がやりたいことはロードされたモジュールのPEヘッダーを読んで、後でそのエクスポートのアドレスを取得できるようにすることです。メモリにロードされたモジュールのPEヘッダを読み取るにはどうすればよいですか?

残念ながら、私はこれに関する良い情報を見つけることができません。何か案は?

答えて

5

Thisは、PEファイル形式の適切な開始点です。

ReadProcessMemoryをベースアドレスからP/Invokeすると、ヘッダーをプロセスにコピーする必要があります。読み込んだメモリをさまざまなPEヘッダに解析する必要があります。最初のヘッダーはです。IMAGE_DOS_HEADERです。次に、IMAGE_NT_HEADERS内のIMAGE_OPTIONAL_HEADERを使用して、バイナリ内のIMAGE_EXPORT_DIRECTORYの場所を見つけることができます。

関連する問題