了解VS安全编译选项GS

缓冲区溢出攻击的基本原理就是溢出时覆盖了函数返回地址,之后就会去执行攻击者自己的函数;

针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS;

目前版本的Visual Studio中默认启用了这个编译选项;

GS的工作机制是,

在所有函数调用发生时,向栈帧内压入一个额外的随机DWORD,称为Security Cookie;

Security Cookie位于EBP之前,系统还将在.data的内存区域中存放一个Security Cookie的副本;

当栈中发生溢出时,Security Cookie将被首先淹没,之后才是EBP和返回地址;

在函数返回之前,系统将执行一个额外的安全验证操作,被称做Security check;

这样如果Security Cookie被改变了,就证明受到了缓冲区溢出攻击;

此选项默认开启;VS2015,如下图;

只是了解一下;还不会反汇编跟踪查看到栈帧内的Security Cookie;

如果每个函数调用都进行Security check,对性能还是会有影响;

根据MS的说法,

如果值不同(Security Cookie),则指示可能已覆盖堆栈。 如果检测到不同的值,将终止进程。

如果命令行编译则是加 /GS 选项;

根据MS的说法,

/GS 编译器选项保护以下项:

函数调用的返回地址;

函数的异常处理程序地址;

易受攻击的函数参数;

相关推荐
九河云1 小时前
纺织印染“数字色差仪”:光谱+AI模型一次调色成功省染料12%
大数据·人工智能·安全·机器学习·数字化转型
KKKlucifer1 小时前
数据安全服务的技术深耕与场景适配:行业实践全景解析
网络·安全
虹科网络安全2 小时前
艾体宝方案|人工智能如何重塑威胁检测与身份安全
人工智能·安全
2301_780789663 小时前
2025年UDP洪水攻击防护实战全解析:从T级流量清洗到AI智能防御
服务器·网络·人工智能·网络协议·安全·web安全·udp
金士镧(厦门)新材料有限公司4 小时前
氧化镧:微小粉末里的大能量
科技·安全·全文检索·生活·能源
EdgeOne边缘安全加速平台4 小时前
EdgeOne DDoS 高防服务正式上线,企业级安全防护触手可及!
网络·安全·ddos
hzb666665 小时前
xd_day47文件上传-day55xss
javascript·学习·安全·web安全·php
pingao1413785 小时前
实时远程监控,4G温湿度传感器守护环境安全
大数据·人工智能·安全
龙亘川6 小时前
GB4599-2024 落地!汽车照明迎重大升级,自适应功能 + 辅助投射成安全新标配~
大数据·人工智能·安全·汽车
黄焖鸡能干四碗6 小时前
智慧电力解决方案,智慧电厂解决方案,电力运维方案
大数据·人工智能·安全·需求分析