2

在 IDA 中,该.text部分从0x01001630.

在文件中,这些字节位于原始偏移量0xA30.

PointerToRawData分段表中的字段.text是,它是和0x400之间的距离。 0xA300x630

我不确定如何0xA30从 PE 文件的文件头中获取。任何帮助表示赞赏。

4

2 回答 2

1

.text 部分的前 0x630 字节是 IDA 已转换为新部分的 IAT(导入地址表).idata

1000 [     630] RVA [size] of Import Address Table Directory

Name   Start    End      
----   -----    ---      
HEADER 01000000 01001000 
.idata 01001000 01001630   <- added by IDA
.text  01001630 01054000 
.idata 01054000 01054004   <- added by IDA
.data  01054004 01059000 

如果[x] Make imports segment在初始加载对话框中取消选中,您将获得未修改的截面表:

Name   Start    End      
----   -----    ---      
HEADER 01000000 01001000 
.text  01001000 01054000 
.data  01054000 01059000 
于 2013-09-18T10:23:48.690 回答
0

我相信这是 IDA 试图变得聪明的一个案例。该.text部分实际上从文件偏移量0x400(RVA 0x1000) 开始。IDA 意识到.text节的开头包含 api 导入数据,因此将节名称更改为.idata. 如果您查看 PE 标头中的所有部分名称,您会发现没有.idata部分。

看一下整个 PE 标头。您将看到导入地址表从 RVA 开始,0x1000大小为,您猜对了0x630

于 2013-09-18T10:23:22.577 回答