频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

VC++中利用/GS开关防止缓冲区溢出

来源:天极开发 作者: 出处:巧巧读书 2006-06-25 进入讨论组
上一页 1 2 3 
应用缓冲区保护

  只需简单地打开/GS编译器开关,就可启用缓冲区保护。在Visual Studio中,此开关可在"C/C++"选项页的"代码生成"选项中找到(如图2所示)。默认情况下,在Debug配置下为关,而在Release配置下为开。

VC++中利用/GS开关防止缓冲区溢出(图二)
图2:设置/GS开关

  如果用最新版本的编译器进行编译,并生成结构化异常信息,那么在默认情况下,安全结构化异常处理将是打开的,另外,也可以使用/SAFESEH:NO命令行选项来关闭安全结构化异常处理,在Visual Studio的工程设置中,是没办法关闭安全结构化异常处理的,但仍可在链接器中使用此命令行选项来完成。

  /GS及更远的安全前景

  仅仅是打开一个编译器开关,不会使一个程序彻底变得安全,但在安全漏洞以各种形式出现的今天,它将有助于使程序更加安全。基于堆栈的缓冲区溢出是安全漏洞中的一大类,但随着黑客攻击技术的不断更新,相信它的谢幕,还有一段很长的路要走。

  在Microsoft正式的术语中,/GS和SAGESEH均为软件强制的数据执行保护(DEP),软件强制的DEP也能以硬件的方式实现,如在实现了此功能的CPU中,如果数据出现在被标记为"不可执行"的内存页中,将不会执行它。Windows XP SP2及Windows Server 2003现在已支持这些技术,目前市面上的大多数的32位CPU及全部的64位CPU,都支持No Execute(NX)这类安全增强技术。

  任何一个好的安全系统,均有多层防范措施应对安全威胁。本文所涉及的编译器开关,它能防范或减少普通编码错误所带来的安全隐患,而且它具有易于使用和低成本的特点,在这场没有硝烟的战争中,不失为一个好的解决方案,绝对值得你的程序采用。本文:http://www.qqread.com/vc/i281129002.html进入讨论组讨论。
上一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章