| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| 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が書き換えられることになる。これを利用して、バッファーオーバーフローの有無を簡易的にチェックすることができる。
関数呼び出し時に逐一チェックが入るため、その分パフォーマンスが落ちるという問題がある。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます