共用方式為


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

.NET Framework 對等用法

不適用。這個函式只能從原生程式碼呼叫,而非 Managed 程式碼。

請參閱

其他資源

深入了解編譯器安全性檢查