__security_init_cookie
初始化全局安全 cookie。
void __security_init_cookie(void);
备注
全局安全 cookie 用于缓冲区溢出保护用代码编译 /GS(缓冲区安全检查) 和在使用异常处理代码。实质上,在进入溢出保护的函数时,会将该 Cookie 放在堆栈上;在退出该函数时,会将堆栈上的值与全局 Cookie 进行比较。如果它们之间有任何区别,则指示缓冲区溢出已经发生并将导致立即终止程序。
通常,那么,当启动时, __security_init_cookie 由 CRT 调用。如果跳过 CRT 初始化 (例如,通过编写 DLL 并指定与 /ENTRY的一个点),然后必须调用 __security_init_cookie 。
为 __security_init_cookie 的电话,在所有溢出保护的函数中输入之前,必须调用;否则会检测到虚假的缓冲区溢出。有关更多信息,请参见 C 运行时错误 R6035。
示例
在参见 C 运行时错误 R6035的示例。
要求
实例 |
必需的头 |
---|---|
__security_init_cookie |
process.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
.NET Framework 等效项
不适用。应从本机代码只调用此函数,不管理。