コース目次 / 第4章
まとめ — プロセスという、動いている実体
ps/proc/maps/シグナルを畳み、プロセスが独自の仮想メモリと状態を持つ実体であることを再確認します。低レイヤートラック(T2)全体を振り返り、次のトラックへ橋渡しします。
プロセスは、ps一覧の1行ではなく、自分だけの仮想メモリと、外部から変えられる状態を持つ、動いている実体でした。
mini-proc・早見表
| 道具 | 見えるもの |
|---|---|
ps -p <pid> -o pid,ppid,stat,cmd |
PID・親PID・状態のスナップショット |
/proc/<pid>/status |
より詳しい情報(メモリ使用量・スレッド数など) |
/proc/<pid>/maps |
仮想メモリのレイアウト(領域ごとの権限・紐づくファイル) |
kill -STOP / kill -CONT |
シグナルによる一時停止・再開 |
ASLRは、/proc/<pid>/mapsのロードアドレスが実行のたびに変わることとして、自分の目で確認しました。setarch -Rでその変化を止めれば、mini-ctf-pwnで見た「-no-pieで固定アドレスにした状態」がどれだけ攻撃者に有利かも、実感を伴って理解できます。
T2トラックを、振り返る
mini-bin(バイナリの姿)、sec-c(メモリの壊れ方)、sec-asm(CPUとスタック)、mini-syscall(OSとの境界)、そしてこのmini-proc(プロセスと仮想メモリ)——低レイヤートラックの中核を一巡しました。「動いて当たり前」に見えていたものが、どれも観察できる、読み解ける仕組みだったと分かったはずです。
次の道
次はmini-netで、プロセスが外部とやり取りする通信そのものをのぞきます。
お疲れさまでした。プロセスも、もうブラックボックスではありません。
こうなっていればOK
この章で卒業です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。