セキュリティ · 低レイヤー・システム

プロセスと仮想メモリ

手元のps・/procから、プロセスと仮想メモリをのぞきます。ASLRを理解する入口になります。

実習
localhost で実習
環境構築
重さ 1 / 3
前提
mini-linux / mini-syscall
倫理
第0章の法と倫理ゲートへの同意が必須です。

読み込み中…

プロセスが持つ仮想メモリを、あなた自身の手元の/proc/<pid>/mapsからのぞきます。ここがASLRを理解する入口です。

章の一覧

  1. 未完了第0章はじめに — プロセスは、動いている実体プロセスがps一覧の1行ではなく、独自の仮想メモリを持つ実体であることを理解します。ps/proc/killが手元にあることを確認し、法と倫理ゲートに同意します。約4分次はここ
  2. 未完了第1章ps と /proc で、動いているプロセスを見るsleepするだけのプログラムをバックグラウンドで起動し、psとProc/PID/statusで基本情報(PID・PPID・状態・メモリ使用量)を確認します。約10分次はここ
  3. 未完了第2章/proc/PID/maps と、ASLRの正体プロセスの仮想メモリのレイアウトを/proc/PID/mapsで確認します。同じバイナリを複数回実行してロードアドレスが毎回変わることを観察し、setarch -Rでその変化が止まることを確認してASLRの正体を理解します。約15分次はここ
  4. 未完了第3章シグナル — プロセスへの割り込みkill -STOP/-CONTでプロセスを一時停止・再開させ、psのSTAT列がS→T→Sと変化することを確認します。シグナルがプロセスへの外部からの割り込みだと理解します。約8分次はここ
  5. 未完了第4章まとめ — プロセスという、動いている実体ps/proc/maps/シグナルを畳み、プロセスが独自の仮想メモリと状態を持つ実体であることを再確認します。低レイヤートラック(T2)全体を振り返り、次のトラックへ橋渡しします。約4分次はここ

詰まったときはお助けページへ。章ごとのファイル一式をダウンロードして、途中から再開できます。