randomize_va_space
のドキュメント sysctl 設定は Documentation/sysctl/kernel.txt
にあります カーネルソースツリーにあります。基本的に、
0 - プロセスのアドレス空間のランダム化をオフにします。
1 - mmap ベース、スタック、および VDSO ページのアドレスをランダム化します。
2 - さらに、ヒープのランダム化を有効にします。
Linux ベースのシステムで ASLR をローカルで無効にする最善の方法は、プロセスのパーソナリティ フラグを使用することです。人格フラグを操作するコマンドは setarch
です と
-R
、 --addr-no-randomize
仮想アドレス空間のランダム化を無効にします (ADDR_NO_RANDOMIZE をオンにします)。
続行する方法は次のとおりです:
$> setarch $(uname -m) -R /bin/bash
このコマンドは、ASLR が無効になっているシェルを実行します。このプロセスのすべての子孫は、父親のパーソナリティ フラグを継承するため、ASLR が無効になります。フラグの継承を破る唯一の方法は、setuid プログラムを呼び出すことです (そのような機能をサポートすることはセキュリティ違反になります)。
uname -m
に注意してください プラットフォームのアーキテクチャをハードコーディングせずに、このコマンドを移植可能にするためにここにあります。