在 IDA 中,该.text
部分从0x01001630
.
在文件中,这些字节位于原始偏移量0xA30
.
PointerToRawData
分段表中的字段.text
是,它是和0x400
之间的距离。 0xA30
0x630
我不确定如何0xA30
从 PE 文件的文件头中获取。任何帮助表示赞赏。
在 IDA 中,该.text
部分从0x01001630
.
在文件中,这些字节位于原始偏移量0xA30
.
PointerToRawData
分段表中的字段.text
是,它是和0x400
之间的距离。 0xA30
0x630
我不确定如何0xA30
从 PE 文件的文件头中获取。任何帮助表示赞赏。
.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
我相信这是 IDA 试图变得聪明的一个案例。该.text
部分实际上从文件偏移量0x400
(RVA 0x1000
) 开始。IDA 意识到.text
节的开头包含 api 导入数据,因此将节名称更改为.idata
. 如果您查看 PE 标头中的所有部分名称,您会发现没有.idata
部分。
看一下整个 PE 标头。您将看到导入地址表从 RVA 开始,0x1000
大小为,您猜对了0x630
。