[英]Symbol addresses in /boot/System.map* are not identical to those in /proc/kallsyms
There is a fixed gap between /boot/System.map
and /proc/kallsyms
. /boot/System.map
和/proc/kallsyms
之间有固定的距离。 And the gap changes on every reboot. 差距在每次重新启动时都会改变。
Is there something like layout randomization? 是否有布局随机化之类的东西?
For example, 例如,
> 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
Yes, the Linux kernel can use ASLR (address space layout randomization), at least on x86. 是的,至少在x86上,Linux内核可以使用ASLR(地址空间布局随机化)。 Actually, only the base address can be randomized at the moment.
实际上,目前只有基地址可以被随机化。
See the description of CONFIG_RANDOMIZE_BASE in arch/x86/Kconfig in the kernel sources for details. 有关详细信息,请参见内核资源中arch / x86 / Kconfig中的CONFIG_RANDOMIZE_BASE的描述。
It is hard to guess what is going on on your system without knowledge of what kind on Linux that is and how the kernel is configured. 在不知道Linux上是哪种类型以及如何配置内核的情况下,很难猜测系统上正在发生什么。
See if CONFIG_RANDOMIZE_BASE
is set in the config file for that kernel (usually - /boot/config-<something>
). 查看是否在该内核的配置文件中设置了
CONFIG_RANDOMIZE_BASE
(通常是- /boot/config-<something>
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.