【发布时间】:2012-05-12 03:18:19
【问题描述】:
可执行文件的ELF文件有一个程序(段)头和一个节头,可以通过readelf -a看到,下面是一个例子:
上面两张图分别是section header和program(segment) header。可以看出,一个段头是由几个段头组成的,用于将程序加载到内存中。
是否只需要将 .text、.rodata、.data、.bss 段加载到内存中?
段中的所有其他部分(例如,第 3 段中的 .ctors、.dtors .jcr)是否都用于对齐?
【问题讨论】:
-
@Adriano,是的,与页面大小对齐,因此可以对程序的不同部分使用不同的保护,例如 .text(r-x),.data(rw-)