`
tubaluer
  • 浏览: 1500148 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

Windows8开发指南(8)在Visual Studio11编译器的安全性增强-下一代Visual C++2012的新特性

 
阅读更多


微软正在积极开发的Visual Studio11,不断寻找方法提高安全相关的功能作为这项工作的一部分我们正在更新一些增强/ GS编译器开关,这默认,使基层代码生成的安全功能超越了现在熟悉基于cookie的堆栈溢出保护这些以后的文章我们将提供一些细节

安全开发生命周期(SDL/ GS编译器能协助安全软件开发范围之外建议这些具体代码生成功能使用安全相关的编译器警告和更多一般性建议适当初始化或消毒指针strict_gs_check范围。

这是第一次我们希望能提供一个中央机制,使这些额外的安全性支持通过一个新的/ SDL开关 / SDL影响是双重的:

- / SDL SDL强制编译器警告在编译过程中错误处理

- / SDL使额外的代码生成功能,如增加栈缓冲区溢出保护指针初始化或消毒有限的一套明确界定情况范围

这种双管齐下的办法,反映了我们信念安全软件是最好的实现结合检测,并固定在开发过程中代码中的错误安全缓解部署将显着增加难以利用任何剩余错误

/ SDL编译器开关默认是禁用的,并且可以在Visual Studio的用户界面轻松地打开当前项目属性页,并访问配置属性 - > C / C ++ - >常规选项启用

那么是什么/ SDL开关吗?

使一切都包含/ GS/ SDL开关启用的功能是启用/ GS启用/ SDL一个我们将提供更多的背景额外的/ GS/ SDL在未来职位特点,在深入细节现在,我们注意到,它们包括

启用下列SDL强制编译器警告视为错误

Warning

Command line switch

Description

C4146

/we4146

A unary minus operator was applied to an unsigned type, resulting in an unsigned result

C4308

/we4308

A negative integral constant converted to unsigned type, resulting in a possibly meaningless result

C4532

/we4532

Use of “continue”, “break” or “goto” keywords in a __finally/finally block has undefined behavior during abnormal termination

C4533

/we4533

Code initializing a variable will not be executed

C4700

/we4700

Use of an uninitialized local variable

C4789

/we4789

Buffer overrun when specific C run-time (CRT) functions are used

C4995

/we4995

Use of a function marked with pragma deprecated

C4996

/we4996

Use of a function marked as deprecated

一个开发人员选择大部分/ SDL的功能,但排除一个给定的警告编号假设为例C4146然后可以通过/ WD开关禁用彗星/彗星++具体警告实现 - >命令行 - >附加选项Visual Studio的用户界面

strict_gs_check pragma是适用于所有的C/ C + +代码编译/ SDL指示编译器将考虑作为潜在的堆栈缓冲区溢出保护候选人更多的功能 Visual Studio 2010中引入的GS优化得到了提高strict_gs_check一起更好地工作,特别是使许多额外的安全检查strict_gs_check被证明是不必要和删除

附加/ SDL代码生成功能,在以后的职位详细覆盖

Microsoft强烈建议使用/ GS开关因为在以往的Visual Studio版本在Visual Studio11/ SDL开关提供更大保障覆盖面机会期间和之后发展停留特定的安全利益使用/ GS的更多细节调整在Visual Studio11和/ SDL

当然,安全性开发生命周期(SDL是一个完整的过程和开发安全的软件这样方法包括远远高于使用特定的编译器开关 - 阅读更多查找到SDL额外资源

分享到:
评论

相关推荐

    Visual C++ Redistributable for Visual Studio 2012 U4_x86.rar

    Visual Studio 2012是微软在2012年发布的一代开发工具,它包含了多个版本的Visual C++ Redistributable,以支持不同的更新和功能。"Update 4"是该版本的一个重要更新,修复了之前版本中的一些问题,并添加了新的功能...

    《Intel C++ 编译器Windows版》(Intel.C.Plus.Plus.Compiler.v10.0.026)

    《Intel C++ 编译器Windows版》(Intel.C.Plus.Plus.Compiler.v10.0.026)[Bin] 软件版权归原作者及原软件公司所有,如果你喜欢,请购买正版软件 常驻服务器 : DonkeyServer No2, 7x24, 根据工作需要暂停 [版本说明] ...

    Visual Studio 14 CTP1下载地址

    微软今天发布了下一代Visual Studio的首个社区技术预览版(CTP),代号为Visual Studio 14,将于2015年正式发布,外界猜测其正式命名可能是Visual Studio 2015。 Visual Studio“14”社区技术预览版发布  今天发布的...

    VisualC++ windows8/10 都可以使用

    本文主要针对Visual C++ 6.0版本在Windows 8和10操作系统上的安装与使用进行详细阐述,帮助开发者在新一代操作系统上充分利用这一经典工具。 1. **Visual C++ 6.0概述** Visual C++ 6.0是一款集成开发环境,它集成...

    Intel_parallel_studio_xe_2013_sp1_update3_for_windows

    在 Windows* 平台上,它们与 Microsoft Visual Studio* 2008、2010 和下一代工具兼容。在 Linux* 平台上,它们与 GNU* 工具兼容。 多种操作系统支持,多种语言支持 英特尔® Parallel Studio XE 可用于 Windows*,...

    Visual C++ 6.0 (3/3)

    然而,值得注意的是,Visual C++ 6.0也有一些局限性,例如对现代C++标准的支持不足,不包含对C++11及以上版本的新特性的支持,以及安全性方面的考虑,比如对缓冲区溢出等问题的防护不足。因此,在开发新的项目时,...

    x265源码visual studio 2015编译ok的工程

    Visual Studio 2015是一款由微软开发的集成开发环境(IDE),广泛用于Windows平台上的C++项目开发。本篇将详细介绍如何在Visual Studio 2015环境下编译x265源码。 1. **HEVC编码标准** HEVC是继H.264之后的下一代...

    win10 版本21H2 + vs2022 + Windows 11 版本 22H2 WDK 驱动工程demo

    这个压缩包文件的内容似乎是一个关于在Windows 10版本21H2、Visual Studio 2022以及Windows 11版本22H2环境下开发驱动程序的示例项目,名为"MyDriver1"。 首先,我们来详细了解下这些关键组件: 1. **Windows 10 ...

    Windows Kits 8.0 8.1 10.0

    - **Visual C++ Compiler Update**:8.1版更新了C++编译器,支持C++11标准,提升了性能和兼容性。 - **Windows Store App Development**:对Windows Store应用的开发环境进行了优化,增加了Live Tiles和通知服务的...

    Visual+C+++6.0(支持win7)

    《Visual C++ 6.0在Windows 7系统下的应用详解》 Visual C++ 6.0是一款由Microsoft公司推出的经典编程环境,尤其对于初学者和老程序员来说,它具有极高的价值。这款IDE(集成开发环境)在当时是C++编程的主流工具,...

    vc运行时库(2005-2010,x86x64)

    VC2010是微软推出的下一代C++编译器,支持C++11标准的部分特性,如自动类型推断(auto关键字)、右值引用(Rvalue References)和lambda表达式。同时,它提供了对.NET Framework 4的支持。这个版本的运行时库对于...

    windows下libcurl64位静态库

    6. **SSPI**:通过SSPI支持多种安全认证机制,增强了安全性。 7. **Schannel**:使用Windows内置的Schannel作为SSL/TLS实现,确保了加密连接的安全。 8. **预编译对象文件**:提供了预编译的对象文件,便于开发者...

    virtual c++ 6.0 (2/3)

    这款工具在20世纪末至21世纪初,是Windows平台下C++开发的标准之一,其稳定性和高效性使其成为当时许多软件开发项目的首选。 一、虚拟化C++ 6.0概述 VC6的全称是Microsoft Visual C++ 6.0,它集成了编译器、调试器...

    OpenSource+libssh2-1.10.0-x86-64-vc143

    《OpenSource libssh2-1.10.0在Visual Studio 2022环境下的应用与实践》 libssh2是一个开源的SSH2客户端库,它为开发者提供了实现SSH2协议所需的各种功能,包括安全的远程登录、文件传输、隧道创建等。版本1.10.0是...

    c++语言简介.pdf

    11. C++编译器和开发环境:C++程序通常需要一个编译器来编译成机器码,Microsoft Visual C++、GNU g++、Borland C++、Metrowerks CodeWarrior等都是流行的C++编译器。开发环境如Visual Studio、CodeWarrior、Eclipse...

    turbo C++3.0

    10. **现代替代品**:尽管Turbo C++ 3.0在教学和学习过程中有其价值,但现代开发中推荐使用如Microsoft Visual Studio、Code::Blocks、GCC或Clang等更现代的IDE和编译器,它们不仅支持最新的C++标准,还具有更强大的...

    VC++6.0中文版下载 Windows7能用

    1. **C++11/14/17标准支持**:新版本的Visual Studio支持最新的C++标准,提供了更多的语言特性和库功能。 2. **更好的代码编辑和导航**:现代IDE提供了智能感知、代码重构和代码导航等工具,提高编写代码的效率。 ...

    windows borland c

    Windows Borland C++,通常被称为Win-TC,是在这个背景下诞生的,它是Borland为Windows操作系统专门定制的C++开发工具。它的出现,使得程序员能够在Windows环境下进行C++程序的编写、调试和构建,极大地推动了...

    零基础学Visual C# 2005 电子教程

    - **背景介绍:** 2000年6月22日,微软宣布了其下一代计算平台——.NET,这标志着互联网时代的软件开发进入了一个全新的阶段。 - **.NET的概念:** .NET是一个开放的、综合性的平台,它支持多种编程语言,并通过...

Global site tag (gtag.js) - Google Analytics