1

具体来说,我想知道导入(idata)部分的数据结构是什么样的。

4

2 回答 2

2

DLL文件格式和EXE文件一样,都是PE(portable executable)格式。您可以从 Microsoft获取规范的副本。您还可以尝试Wotsit获取一般文件格式信息。

Windows 提供了用于处理可执行文件的ImageHlp API。LoadImage函数看起来是一个很好的起点。

您还应该查看Undocumented Windows NT“可移植可执行文件格式”一章。它似乎描述了如何使用 ImageHlp 来获取二进制文件的各个部分。我认为您最感兴趣的部分在第四页,它描述了 PE 文件的部分。IMAGE_DIRECTORY_ENTRY_IMPORT

于 2008-12-20T04:02:17.697 回答
0

看来我弄错了——PE文件的结构在内存中似乎是相同的。

可以使用winnt.h中定义的结构来解释内存。

查看这些结构时,您必须记住偏移量(或 'RVA's[1])是little endian。如果我只是将程序指向相关内存而不是使用调试器,我可能不会感到困惑。

[1] 在微软讲话中。

于 2008-12-22T14:37:51.297 回答