__security_init_cookie
初始化全域安全性 Cookie。
語法
void __security_init_cookie(void);
備註
全域安全性 Cookie 用於在以 /GS (緩衝區安全性檢查) 編譯的程式碼以及在使用例外狀況處理的程式碼中,提供緩衝區滿溢保護。 在進入滿溢保護的函式時,此 Cookie 會放在堆疊上,然後結束時,在堆疊上的值會與全域 Cookie 進行比較。 它們之間的任何差異表示已發生緩衝區滿溢,並導致程式立即終止。
一般而言, __security_init_cookie
CRT 在初始化時會呼叫它。 如果您略過 CRT 初始化,例如,如果您使用 /ENTRY
來指定進入點,則必須自行呼叫 __security_init_cookie
。 如果未 __security_init_cookie
呼叫,全域安全性 Cookie 會設定為預設值,且緩衝區滿溢保護會遭到入侵。 由於攻擊者可以利用此預設 Cookie 值擊敗緩衝區滿溢檢查,所以建議您定義您自己的進入點時務必呼叫 __security_init_cookie
。
必須先呼叫__security_init_cookie
,才能輸入任何滿溢保護的函式;否則將會偵測到假性的緩衝區滿溢。 如需詳細資訊,請參閱 C 執行階段錯誤 R6035。
範例
請參閱 C 執行階段錯誤 R6035 中的範例。
需求
常式 | 必要的標頭 |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
是標準的 C 執行階段程式庫的 Microsoft 擴充功能。 如需相容性資訊,請參閱相容性。