/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
答案 0 :(得分:2)
是的,Linux内核可以使用ASLR(地址空间布局随机化),至少在x86上。实际上,目前只能将基地址随机化。
有关详细信息,请参阅内核源代码中CONFIG_RANDOMIZE_BASE in arch/x86/Kconfig的说明。
如果不了解Linux上的内容以及内核的配置方式,很难猜测系统上发生了什么。
查看是否在该内核的配置文件中设置了CONFIG_RANDOMIZE_BASE
(通常为/boot/config-<something>
)。