/boot/System.map*中的符号地址与/ proc / kallsyms

时间:2015-08-06 11:43:29

标签: linux kernel symbols

/boot/System.map/proc/kallsyms之间存在固定差距。并且每次重启时间隙都会发生变化。

是否有类似布局随机化的内容?

例如,

> cat /boot/System.map
ffffffff81d2b5f0 T x86_64_start_kernel
ffffffff81d2bb33 T start_kernel
ffffffff81d2ee1b T xen_start_kernel

> cat /proc/kallsyms | grep start_kernel
ffffffffa4d2b5f0 T x86_64_start_kernel
ffffffffa4d2bb33 T start_kernel
ffffffffa4d2ee1b T xen_start_kernel

1 个答案:

答案 0 :(得分:2)

是的,Linux内核可以使用ASLR(地址空间布局随机化),至少在x86上。实际上,目前只能将基地址随机化。

有关详细信息,请参阅内核源代码中CONFIG_RANDOMIZE_BASE in arch/x86/Kconfig的说明。

如果不了解Linux上的内容以及内核的配置方式,很难猜测系统上发生了什么。

查看是否在该内核的配置文件中设置了CONFIG_RANDOMIZE_BASE(通常为/boot/config-<something>)。