ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
Visual Studioのコンパイラーオプションの一つ。バッファーのセキュリティチェック。紛らわしいものに「/Gs」があるが、別のものであるので注意。
関数のリターンアドレス、例外ハンドラーのアドレス、特定の型のパラメーターを上書きするような、様々なバッファーオーバーフローを検出するコードの挿入を有効にするオプションである。
現在のVisual Studioは標準で有効になっており、無効にするためには、/GS- オプションを付ける必要がある。
バッファーオーバーフローの実行時検知の機能である。
関数を呼び出す際、スタックのリターンアドレスとローカル変数の間に「stack cookie」という乱数を積んでおく。
関数から帰る直前にstack cookieをチェックし、もしstack cookieが異なっていた場合はプロセスを強制終了させる。
stack cookieがリターンアドレスとローカル変数の間にあるため、万一ローカル変数書き換え時にバッファーオーバーフローが発生した場合、リターンアドレスが書き換えられる前にstack cookieが書き換えられることになる。これを利用して、バッファーオーバーフローの有無を簡易的にチェックすることができる。
関数呼び出し時に逐一チェックが入るため、その分パフォーマンスが落ちるという問題がある。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます