linux - ldd 在 x86 Linux 上显示不同的地址

标签 linux x86 fedora powerpc ldd

我在Fedora/x86上用ldd显示动态库,每次显示的结果都不一样。

这是预期的吗?或者有什么解释吗?

我记得它在 PPC/Linux 上显示固定结果。

`ldd /bin/ls
 linux-gate.so.1 =>  (0x00e5b000)
 librt.so.1 => /lib/librt.so.1 (0x00c0c000)
 libselinux.so.1 => /lib/libselinux.so.1 (0x0095d000)
 libcap.so.2 => /lib/libcap.so.2 (0x00110000)
 libacl.so.1 => /lib/libacl.so.1 (0x00331000)
 libc.so.6 => /lib/libc.so.6 (0x00115000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x00bc9000)
 /lib/ld-linux.so.2 (0x009d2000)
 libdl.so.2 => /lib/libdl.so.2 (0x00680000)
 libattr.so.1 => /lib/libattr.so.1 (0x00447000)
ldd /bin/ls
 linux-gate.so.1 =>  (0x00f76000)
 librt.so.1 => /lib/librt.so.1 (0x00494000)
 libselinux.so.1 => /lib/libselinux.so.1 (0x0095d000)
 libcap.so.2 => /lib/libcap.so.2 (0x009e9000)
 libacl.so.1 => /lib/libacl.so.1 (0x00365000)
 libc.so.6 => /lib/libc.so.6 (0x00732000)
 libpthread.so.0 => /lib/libpthread.so.0 (0x00b61000)
 /lib/ld-linux.so.2 (0x002a7000)
 libdl.so.2 => /lib/libdl.so.2 (0x002f0000)
 libattr.so.1 => /lib/libattr.so.1 (0x00447000)`

最佳答案

Fedora 使用 address space randomization作为其各种安全措施的一部分。 ldd 通过实际加载共享对象并显示它们的结束位置来工作。将两者放在一起得出给定的观察结果。

关于linux - ldd 在 x86 Linux 上显示不同的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217023/

相关文章:

ssh - 如何将 .pub 文件复制到 ssh authorized_key

linux - 重命名以数值结尾的文本文件

c++ - dlclose 无法关闭共享库

string - 不使用预定义函数在程序集中打印字符串

assembly - 在轮类除法组装后舍入 Int

linux - makefile 可以更新调用环境吗?

linux - 如何复制文本文件的一部分并将它们粘贴到新文件中

linux - 禁用 SSL 2.0 但不更新 SSL 2.0+? Apache 2.x

c - 不同大小的C指针中的x86 mov指令

linux - Perl CGI "End of script output before headers"