#pragma strict_gs_check(on) 强制设置 GS保护 VS2008
当缓冲区<=4字节时 不被 GS保护 设置上面的 可以强制保护
#include "stdafx.h"
#include <windows.h>
#pragma strict_gs_check(on)
void f(char str[])
{
char buff[4];
strcpy(buff,str);
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "1111";
f(str);
return 0;
}
`
可以看到 COOKIE
现在实验
虚函数情况下 去攻击 GS保护:
/*
XP SP3
VS2008 GS保护 禁止优化
*/
#include "stdafx.h"
#include "string.h"
class GSVirtual {
public :
void gsv(char * src)
{
char buf[200];
strcpy(buf, src);
bar();