Linux平臺(tái)ASLR分為0、1、2三級(jí),用戶可以通過一個(gè)內(nèi)核參數(shù)randomize_va_space進(jìn)行控制,他們對(duì)應(yīng)的效果如下:
0:不開啟ASLR
1:運(yùn)行棧和共享庫(kù)以及部分堆的隨機(jī)化
2:在1的基礎(chǔ)上包括所有堆的隨機(jī)化
注:ALSR不負(fù)責(zé)代碼段和數(shù)據(jù)段和地址隨機(jī)化,這項(xiàng)工作PIE負(fù)責(zé),但是只有ASLR開啟的情況下,PIE才會(huì)生效。
查看、開啟、關(guān)閉ASLR
1、查看 cat /proc/sys/kernel/randomize_va_space
2、更改
0:關(guān)閉ASLR
sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space"
? ? 1:保留的ASLR
sudo bash -c "echo 1 > /proc/sys/kernel/randomize_va_space"
? ? 2:完全的ASLR
sudo bash -c "echo 2 > /proc/sys/kernel/randomize_va_space"