为什么 libc 输入地址总是在 redhat 7 中改变
Why libc enter address always change in redhat 7
我使用 backtrace()
和 backtrace_symbols()
来获取一些信息。
输出看起来像:
./a.out
....
(_Z8fun+0x1d( [0x400bb3]
/lib64/libpthread.so.0 (+0x7dc5) [**0x7f2cb2b99dc5**]
/lib64/libc.so.6(clone+0x6d) [**0x7fc20a61cd**]
...
在 redhat 7 中,粗体地址总是在不同时间变化,
而在 redhat 6 中,地址看起来是固定的。
In redhat 7, the bolder addrs is always change between times, while in redhat 6, the addrs looks fixed
地址发生变化是因为大多数现代系统使用 Address Space Layout Randomization 来提高某些 class 漏洞利用的难度。
ASLR 于 2001 年引入 Linux 内核,redhat-6.2 版本早于此。
P.S。 不建议使用这样一个旧发行版:你错过了 16 年的安全和性能改进。
我使用 backtrace()
和 backtrace_symbols()
来获取一些信息。
输出看起来像:
./a.out
....
(_Z8fun+0x1d( [0x400bb3]
/lib64/libpthread.so.0 (+0x7dc5) [**0x7f2cb2b99dc5**]
/lib64/libc.so.6(clone+0x6d) [**0x7fc20a61cd**]
...
在 redhat 7 中,粗体地址总是在不同时间变化, 而在 redhat 6 中,地址看起来是固定的。
In redhat 7, the bolder addrs is always change between times, while in redhat 6, the addrs looks fixed
地址发生变化是因为大多数现代系统使用 Address Space Layout Randomization 来提高某些 class 漏洞利用的难度。
ASLR 于 2001 年引入 Linux 内核,redhat-6.2 版本早于此。
P.S。 不建议使用这样一个旧发行版:你错过了 16 年的安全和性能改进。