/GS

読み:スラッシュ・ジーエス
外語:/GS 英語
品詞:名詞

Visual Studioのコンパイラーオプションの一つ。バッファーのセキュリティチェック。紛らわしいものに「/Gs」があるが、別のものであるので注意。

目次

関数のリターンアドレス、例外ハンドラーのアドレス、特定の型のパラメーターを上書きするような、様々なバッファーオーバーフローを検出するコードの挿入を有効にするオプションである。

現在のVisual Studioは標準で有効になっており、無効にするためには、/GS- オプションを付ける必要がある。

バッファーオーバーフローの実行時検知の機能である。

関数を呼び出す際、スタックのリターンアドレスとローカル変数の間に「stack cookie」という乱数を積んでおく。

関数から帰る直前にstack cookieをチェックし、もしstack cookieが異なっていた場合はプロセスを強制終了させる。

stack cookieがリターンアドレスとローカル変数の間にあるため、万一ローカル変数書き換え時にバッファーオーバーフローが発生した場合、リターンアドレスが書き換えられる前にstack cookieが書き換えられることになる。これを利用して、バッファーオーバーフローの有無を簡易的にチェックすることができる。

関数呼び出し時に逐一チェックが入るため、その分パフォーマンスが落ちるという問題がある。

関連する用語
DEP
ASLR

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club