メモリにロードされたモジュールの PE ヘッダーを読み取るにはどうすればよいですか?
-
21-09-2019 - |
質問
.NETでメモリアクセスを実験しています。現時点では、を開始するマネージドプログラムがあります。 管理されていない を処理して取得します BaseAddress
ロードされたモジュール (DLL) の 1 つ。私がやりたいのは、ロードされたモジュールのPEヘッダーを何らかの方法で読み取り、後でそのエクスポートのアドレスを取得できるようにすることです。
残念ながら、これに関する良い情報は見つかりませんでした。何か案は?
解決
これ PE ファイル形式の開始点として適しています。
P/Invokeできます 読み取りプロセスメモリ ベースアドレスからヘッダーをプロセスにコピーする必要があります。さまざまな PE ヘッダーに読み込んだメモリを解析する必要があります。最初のヘッダーは、 IMAGE_DOS_HEADER, を参照すると、 IMAGE_NT_HEADERS. 。その後、 IMAGE_OPTIONAL_HEADER IMAGE_NT_HEADERS 内で、 IMAGE_EXPORT_DIRECTORY バイナリで。
所属していません StackOverflow