具体的には、インポート (idata) セクションのデータ構造がどのようなものか知りたいです。
2 に答える
DLL ファイルの形式は、EXE ファイルと同じ、PE (Portable Executable) 形式です。仕様のコピーはMicrosoft から入手できます。一般的なファイル形式の情報については、Wotsitを試すこともできます。
Windows には、実行可能ファイルを操作するためのImageHlp API が用意されています。LoadImage
関数は、開始するのに適した場所のようです。
Undocumented Windows NTの「Portable Executable File Format」の章も参照してください。ImageHlp を使用してバイナリのさまざまな部分を取得する方法を説明しているようです。あなたが最も興味を持っているのは、PE ファイルの一部を説明している 4 ページ目だと思います。IMAGE_DIRECTORY_ENTRY_IMPORT
私が間違っていたようです.PEファイルの構造はメモリ内で同一のようです.
winnt.hで定義された構造体を使用して、メモリを解釈できます。
これらの構造を見るときは、オフセット (または 'RVA's[1]) がリトル エンディアンであることを覚えておく必要があります。デバッガーを使用するのではなく、プログラムを関連するメモリに向けるだけであれば、おそらくそれほど混乱することはなかったでしょう。
[1] マイクロソフトの言葉で。