在PE文件中查找.text段的原始偏移量

时间:2013-09-17 20:38:42

标签: c binaryfiles portable-executable ida

在IDA中,.text部分从0x01001630开始。

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

PointerToRawData段的节表中的.text字段为0x400,即0xA300x630之间的距离。

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

2 个答案:

答案 0 :(得分:1)

.text部分的第一个0x630字节是IAT(导入地址表),IDA已将其转换为新部分.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 

答案 1 :(得分:0)

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

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