具体来说,我想知道导入(idata)部分的数据结构是什么样的。
问问题
1093 次
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 回答