根据我读过的文档,Windows可执行文件的导入目录通常放在名为.idata
的部分中。 (我知道这些名称实际上只是评论,但通常......被称为'大概是指默认情况下Microsoft工具链将使用该名称。)
当我使用Microsoft编译器编译和链接一个简单的C测试程序然后dumpbin结果时,没有名为.idata
的部分。但是,在可选标题中,有一个正RVA和导入目录的大小,因此导入表就在那里。
现在导入目录是否放在名称不同的部分,或者我遗漏了什么?
答案 0 :(得分:4)
实际上,在我刚刚构建的可执行文件中,没有.idata
部分。
使用PE Explorer,我们可以看到导入表和IAT存储为.rdata
部分的一部分。 (注意"指向目录"列):
在“数据目录”页面上,我们看到导入表的虚拟地址为0x403354
。这落在.rdata
部分(0x403000 - 0x403C00
)范围内。
有趣的是(并且有点令人沮丧),IDA的PE加载器综合&#34;创建&#34;文件中存在<{1}}部分