2

ImageHlp.dll で作成したプログラムを開いて少しいじってみましたが、ファイルに大きなギャップがあるように見えます。私が理解しているように、各 PE セクションについて、セクション ヘッダーはファイル内のオフセットを としてPhysicalAddress、サイズを として指定するため、 からまでSizeOfRawDataのすべてがそのセクションである必要があります。しかし、これらの範囲でカバーされていない EXE ファイルの大部分があるため、何かが欠けているに違いありません。PhysicalAddressPhysicalAddress + SizeOfRawData

ImageRVAToSection を使用して RVA アドレスを指定し、RVA が配置されているセクションを特定できることはわかっています。ファイル オフセットで同様のことを行う方法はありますか? どの PE セクション バイト $ED178 などに属しているかを調べるにはどうすればよいですか?

4

2 に答える 2

1

編集:申し訳ありませんが、あなたの質問を十分に注意深く読んでいませんでした。

いくつか調べてみると、セクション ヘッダーのデータがファイルの内容全体をカバーしていないという、あなたが言及したようないくつかのファイルが見つかりました。これまでに見つけたもののほとんどには、カバーされていないデバッグ レコードが含まれています。私がまだ理解できていない不一致のある他のいくつかがあります。詳細がわかったら、追加します。

于 2010-08-06T04:11:19.897 に答える
0

私はどのように VirtualAllocEx を使用してコード ケーブの余地を作るのですか?に投稿しました。現在メモリにロードされているPE を調べるコード フラグメント。おそらく、メモリ内の DLL の内容とディスク上の内容 (ImageHlp.dll を示しています) を比較すると、質問に対する答えが見つかるでしょう。

于 2010-08-06T13:53:45.300 に答える