スタックカナリアとは?
スタックカナリアとは、関数の戻り番地の手前に見張り用の値を置き、関数から戻る直前に値が変化していないかを検査する仕組み。スタックバッファオーバフローによる戻り番地の書換えを検出し、攻撃の成立を防ぐ手法として問われる。
すたっくかなりあ
スタックカナリアの意味
関数の戻り番地の手前に見張り用の値を置き、関数から戻る直前に値が変化していないかを検査する仕組み。スタックバッファオーバフローによる戻り番地の書換えを検出し、攻撃の成立を防ぐ手法として問われる。
スタックカナリアの具体例
コンパイラのスタック保護オプションで自動的に挿入され、破壊を検出すると異常処理へ分岐する。組込みではその場で停止させるのではなく、出力を安全側の状態にしてからリセットする設計にすることが多い。
スタックカナリアは試験でどう引っ掛けられる?
検出は関数から復帰する時点なので、それ以前に生じる被害は防げない。ローカル変数どうしの上書きやヒープ領域のオーバフローにも効かないため、配列の境界検査そのものの代わりにはならない。
スタックカナリアと関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。