GRADUATION

スタックオーバーフローで、実行の流れを書き換えられるようになりました。

自作のgets()付きプログラムを、意図的に保護を切ってビルドし、リターンアドレスを既存のwin関数のアドレスで上書きすることで、想定と違う関数を実行させました。同じ入力を、デフォルトの保護(スタックカナリア)付きでビルドすると弾かれることも確認し、「保護が何を防いでいるか」を体で理解しました。

おつかれさまでした。

持ち帰るもの

次にやるといいこと

  1. 次は、残されたデータを掘るforensicsです。
  2. このコースで見た保護機構(カナリア/NX/PIE)は、実務のビルド設定を読むときの手がかりになります。

次の行き先

ほかの言語を試食する

同じ「道具を作る」でも、言語によって手ざわりはずいぶん違います。

試食コーナーの一覧を見る →

本コースでじっくり作る

10章かけて、公開URL付きの成果物を1つ仕上げるコースです。

コース目次に戻る進捗データを書き出す