
これはUnixとLinuxでの最初の質問です。現在、仮想メモリについて学んでいます。
この素晴らしい論文に感謝します。ドラマー(CCS'16)。 Android 6.0.1では、バディアロケータをだまして脆弱なページにページテーブルページを割り当てます(対応するLinuxカーネルは~3.18.10
.) 権限のない作業を行います(最終的な目的は次のとおりです。)root権限のエスカレーション.).
しかし、ユーザーモードでページテーブルページにアクセスする方法がわかりません。仮想メモリでは、仮想メモリアドレス全体がカーネル空間とユーザ空間(例えば、上位 1GB/4GB がカーネル空間)に分けられ、ユーザモードではカーネル空間にアクセスできないことがわかっているからです。これに対応する2つの質問が発生します。
ページテーブル ページがカーネル空間にあるかどうか完全?つまり、特定のプロセスのユーザースペースにある特定のページテーブルページを見つけることができますか?この投稿.)?答えは「いいえ」と仮定します。
malloc
仮想メモリはユーザ空間に割り当てられる。コア宇宙はただの非特権的な仕事に過ぎませんか?
DMAのようにカーネル空間でメモリを自由に読むことができる難しい問題はありますか?それとも、これがLinuxとAndroidの基本的な違いですか?それとも私が何かを見逃しているのでしょうか?
ありがとうございます。