.rdata
部分应包含调试目录和描述字符串。我在其他地方读过它包含只读程序数据。转储几个文件后,我发现.rdata
包含IAT,负载配置表和安全异常处理程序表。有人可以澄清.rdata
的用途吗,为什么我在其中发现的内容与两个描述都不相同?另外,导入信息不应该在.idata
中吗?我假设不同的编译器和同一编译器的不同版本对相同的部分进行不同的处理。如果是这样,我在哪里可以获得更多信息?
#1 楼
通常将各种只读数据集中到.rdata中。但是,这只是权宜之计,而不是必要。只要在数据目录中正确引用了数据,编译器和链接器就可以将任何数据放在任意位置。第一个调用点应该是Microsoft的PE COFF规范(当前为v8.3)。关于理论与实践之间分歧的说明和指示可以在RE上的另一个主题中找到。只需使用数据目录中的信息即可。