Share via


__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 擴充功能。 如需相容性資訊,請參閱相容性

另請參閱

Microsoft 安全性回應中心