栈中的守护天使--GS,亦称作Stack Canary / Cookie,从VS2003起开始启用(也就说,GS机制是由编译器决定的,跟操作系统无关),是堆栈溢出中最令人头疼的一道关卡
GS机制分三个步骤:计算随机种子 --> canary写入栈帧 --> GS校验
[1]程序启动时,读取.data的第一个DWORD作为基数,然后和各种元素(时间戳,进程ID,线程ID,计数器等等)进行XOR加密
[2]然后将加密后的种子再次写入.data的第一个DWORD
[3]函数在执行前,把加密后的种子取出,与当前