所以,我有这个想法,我已经四处寻找它是否真实,但还没有找到任何确认它的东西。
我正在研究 elf 解析器,我想从各个部分构建程序的数据。
我的想法是数据段由.data,.data1,.bss,.ctors和.dtors(.ctors和.dtors for c ++程序)部分中的信息组成;那是对的吗?
请提供文件链接
答案 0 :(得分:1)
将段加载到内存时,必须查看程序头表,而不是 section header 表。 程序头是加载程序的输入,而节头用于调试信息。
例如,.data
和.bss
可以收集到相同的程序标题中,或分散在两个程序标题中。将分配一个或两个内存段。拥有一个代码段和一个内存段只不过是强制性的。这取决于二进制文件的链接方式。