昨天在试着逆向一个有时间期限的LIB时,发现一些特别的检查函数,在之前的VC2003中是没有的,这些函数可谓是重量级函数。由于个人比较看不惯自己不懂的东西,出于不愤之情绪研究了下这些函数。首先在这里介绍个人认为较之其他几个更为重要的一种安全检查方式——基于Cookie的缓冲区溢出安全检查!
为了在发布版本中也能检测到缓冲区溢出,防止程序因缓冲区而受到攻击,VS2005(VC8)便增加了基于Cookie的安全检查。
要程序支持基于Cookie的缓冲区溢出安全检查,则要设置/GS(Buffer Security Check)编译选项,在VS2010中的工程配置中的位置如下:
在计算机领域,Cookie一词最早出现在网站开发中,是指网站的服务程序通过浏览器保存到客户端的少量数据,这些数据都是二进制的,或者是经过加密的,通常用来记录用户身份和登录情况等信息。后来这个词被泛指一方签发给另一方的认证或者标志信息。
在之前的博文中,都提到过堆栈调用及EBP,RET返回地址,还有局部变量在栈帧中存放的各种微妙