PE .idata部分

时间:2014-03-26 04:23:46

标签: windows visual-c++ linker reverse-engineering portable-executable

根据我读过的文档,Windows可执行文件的导入目录通常放在名为.idata的部分中。 (我知道这些名称实际上只是评论,但通常......被称为'大概是指默认情况下Microsoft工具链将使用该名称。)

当我使用Microsoft编译器编译和链接一个简单的C测试程序然后dumpbin结果时,没有名为.idata的部分。但是,在可选标题中,有一个正RVA和导入目录的大小,因此导入表就在那里。

现在导入目录是否放在名称不同的部分,或者我遗漏了什么?

1 个答案:

答案 0 :(得分:4)

实际上,在我刚刚构建的可执行文件中,没有.idata部分。

使用PE Explorer,我们可以看到导入表和IAT存储为.rdata部分的一部分。 (注意"指向目录"列):

enter image description here

enter image description here

在“数据目录”页面上,我们看到导入表的虚拟地址为0x403354。这落在.rdata部分(0x403000 - 0x403C00)范围内。


有趣的是(并且有点令人沮丧),IDA的PE加载器综合&#34;创建&#34;文件中存在<{1}}部分

enter image description here