web-dev-qa-db-ja.com

ASLRがページの細分度未満で実行されないのはなぜですか?

ASLRがバイトオフセットにランダム化されるのを妨げている技術的な理由は何ですか? Linuxでは4kbページ、Windowsでは64kbリージョンです。

3
Ffffffff

ASLRは、CPUのメモリ管理ユニットの機能に依存して、物理ページ(つまり、ハードウェアレベル)を仮想アドレス空間(現在のプロセスで見られるメモリレイアウト)のアドレスにマップします。このCPU機能はページレベルでのみ機能するため、CPUからより細かい粒度を取得することはできません。したがって、細かい粒度はどういうわけか、不可能またはひどく遅いソフトウェアのいずれかにある必要があります。

3
Steffen Ullrich