本ページの情報は2007年9月時点のものです。 記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。 近年、オペレーティングシステムには、バッファオーバーフロー等の攻撃を失敗に終わらせるためのいくつかの防御機能が備わりつつある。それは、主に次の3つである スタック保護 関数リターンアドレス書き変えを検出し、それ以上の実行を止める メモリ空間レイアウトのランダマイズ メモリ上の特定の位置を狙ってのアドレスワードの不正書き変えや、侵害コードへのジャンプといった操作を失敗させる データ実行防止 万一侵害コードへのジャンプが行われたとしてもデータ領域に置かれた機械語コードを実行させない スタック保護 近年Cコンパイラも進歩し、関数をコンパイルして生成される機械語コードの中に、領域あふれによってスタック上の関数リターンアドレスが改変されていることを検知する機械語コードを挿入できる

