5

.NETでメモリアクセスを試しています。現在、アンマネージBaseAddressプロセスを開始し、ロードされたモジュールの1つ(DLL)を取得するマネージプログラムがあります。私がやりたいのは、ロードされたモジュールのPEヘッダーを何らかの方法で読み取って、後でそのエクスポートのアドレスを取得できるようにすることです。

残念ながら、これに関する適切な情報は見つかりません。何か案は?

4

1 に答える 1

6

これは、PEファイル形式の開始点として適しています。

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

于 2009-10-13T22:07:56.950 に答える