关闭aslr oracle,地址空间布局随机化 (Address Space Layout Randomization, ASLR)
地址空間布局隨機化 (Address Space Layout Randomization, ASLR)
ASLR 是 Oracle Solaris 系統(tǒng)的一種功能,利用此功能可以隨機生成進程地址空間(例如棧、庫和基于 brk 的堆)的關(guān)鍵部分的起始地址。缺省情況下,為顯式標(biāo)記為需要 ASLR 的二進制文件啟用 ASLR。以下命令提供有關(guān) ASLR 狀態(tài)的信息:% sxadm infoEXTENSION STATUS CONFIGURATION
aslr enable (tagged-files) enable (tagged-files)
ld(1) 命令的 –z 選項用于標(biāo)記需要使用 ASLR 的新建目標(biāo)文件。用法如下所示:
ld -z aslr[=mode]
其中 mode 可設(shè)置為 enable 或 disable。如果未指定 mode,則假定使用 enable。
以下示例說明了如何使用 –z 選項創(chuàng)建啟用了 ASLR 的可執(zhí)行文件:% cat hello.c
#include
int
main(int argc, char **argv)
{
(void) printf("Hello World!\n");
return (0);
}
% cc hello.c -z aslr
ASLR 標(biāo)記由目標(biāo)文件動態(tài)部分中的條目提供,該條目可以使用 elfdump(1) 進行檢查。% elfdump -d a.out | grep ASLR
[28] SUNW_ASLR 0x2 ENABLE
elfedit(1) 命令可用于在現(xiàn)有目標(biāo)文件中添加或修改 ASLR 動態(tài)條目。% cc hello.c
% elfedit -e 'dyn:sunw_aslr enable' a.out
% elfdump -d a.out | grep ASLR
[29] SUNW_ASLR 0x2 ENABLE% elfedit -e 'dyn:sunw_aslr disable' a.out
% elfdump -d a.out | grep ASLR
[29] SUNW_ASLR 0x1 DISABLE
給定進程對 ASLR 的要求是在該進程啟動時建立的,該進程一旦啟動就無法對此要求進行修改。因此,ASLR 標(biāo)記僅對進程中的主要可執(zhí)行目標(biāo)文件有意義。
pmap(1) 實用程序可用于檢查進程的地址映射。使用該實用程序觀察啟用了 ASLR 的可執(zhí)行文件的映射時,會看到用于棧、庫映射和基于 brk 的堆的具體地址在每次調(diào)用時均不同。
sxadm(1) 命令用于控制系統(tǒng)的 ASLR 缺省行為。顯式標(biāo)記為禁用 ASLR 的二進制文件優(yōu)先于 sxadm 建立的系統(tǒng)缺省行為。
調(diào)試和 ASLR
調(diào)試期間,地址空間隨機化可能會出現(xiàn)問題。某些調(diào)試需要重復(fù)調(diào)用同一程序時使用相同的地址映射。您可以采用以下方式之一禁用 ASLR:臨時在系統(tǒng)范圍內(nèi)禁用 ASLR% sxadm exec -s aslr=disable /bin/bash
使用 ld 或 elfedit 命令將相關(guān)二進制文件標(biāo)記為禁用 ASLR
建立禁用 ASLR 的 shell,從中執(zhí)行調(diào)試操作% sxadm exec -s aslr=disable /bin/bash
注?-此 ASLR 修改不會應(yīng)用到 SUID 或特權(quán)二進制文件。
總結(jié)
以上是生活随笔為你收集整理的关闭aslr oracle,地址空间布局随机化 (Address Space Layout Randomization, ASLR)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 取第三大的值,Oracle
- 下一篇: ins40401 oracle,安装or