如果启用了 /GS 编译选项,那么编译器会在可能出现缓冲区溢出的地方插入 cookie 校验代码,检查是否存在溢出。
原理是在缓冲区末尾,高地址处存储一个校验值,如果发生溢出,那么这个校验值会被覆盖,函数返回时检查这个值,如果被覆盖了,就代表出现溢出。
如果启用了 /GS 编译选项,那么编译器会在可能出现缓冲区溢出的地方插入 cookie 校验代码,检查是否存在溢出。
原理是在缓冲区末尾,高地址处存储一个校验值,如果发生溢出,那么这个校验值会被覆盖,函数返回时检查这个值,如果被覆盖了,就代表出现溢出。