摘要:
在微软的c/c++ 编译器中,增加了对于栈溢出进行检测的参数 “/GS”,在调试shellcode 的时候,发现vs2005 产生的code 和 vc6 产生的code 有些不同,才让我注意到这个问题。 写了这样的一个测试程序: void foo(const char * datas) { char szbuf[32]; strcpy(szbuf, datas); } 汇编的代码如下:00411F70 push ebp 00411F71 mov ebp,esp 00411F73 sub esp,0ECh 00411F79 push ebx 00411F7A push esi 00411F7B 阅读全文