在 IDA 中,该.text部分从0x01001630.
在文件中,这些字节位于原始偏移量0xA30.
PointerToRawData分段表中的字段.text是,它是和0x400之间的距离。 0xA300x630
我不确定如何0xA30从 PE 文件的文件头中获取。任何帮助表示赞赏。
在 IDA 中,该.text部分从0x01001630.
在文件中,这些字节位于原始偏移量0xA30.
PointerToRawData分段表中的字段.text是,它是和0x400之间的距离。 0xA300x630
我不确定如何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。