rwa*_*ace 5 windows linker reverse-engineering portable-executable visual-c++
根据我读过的文档,Windows 可执行文件的导入目录通常放置在名为.idata. (我知道这些名称实际上只是注释,但“通常...称为”大概意味着 Microsoft 工具链将默认使用该名称。)
当我使用 Microsoft 编译器编译并链接一个简单的 C 测试程序,然后转储结果时,没有名为的部分.idata. 然而,在可选标头中,有一个正的 RVA 和导入目录的大小,因此导入表就在那里。
现在导入目录是否放置在具有不同名称的部分中,或者我是否遗漏了某些内容?
事实上,在我刚刚构建的可执行文件中,没有任何.idata部分。
使用 PE Explorer,我们可以看到导入表和 IAT 存储为该.rdata部分的一部分。(注意“指向目录”列):


在“数据目录”页面上,我们看到导入表的虚拟地址是0x403354。.rdata这落在( ) 部分的范围内0x403000 - 0x403C00。
有趣的是(有点令人沮丧),IDA 的 PE 加载器综合地“创建”了一个文件中实际上.idata并不存在的部分:

| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |