Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我什么时候不希望启用“;控制流量保护装置”;在Microsoft Visual Studio中?_C++_C_Visual Studio_Controlflowguard - Fatal编程技术网

C++ 我什么时候不希望启用“;控制流量保护装置”;在Microsoft Visual Studio中?

C++ 我什么时候不希望启用“;控制流量保护装置”;在Microsoft Visual Studio中?,c++,c,visual-studio,controlflowguard,C++,C,Visual Studio,Controlflowguard,引自: Control Flow Guard(CFG)是一个高度优化的安全平台 为解决内存损坏漏洞而创建的功能。 通过严格限制应用程序可以执行代码的位置 从中,它使攻击者执行任意代码变得更加困难 通过缓冲区溢出等漏洞 我们 强烈鼓励开发人员为其应用程序启用CFG。 您不必为代码的每一部分都启用CFG,这是一种混合 启用CFG和未启用CFG的代码将正常执行。但失败 为所有代码启用CFG可以打开保护中的漏洞。 此外,启用CFG的代码在“不知道CFG”版本的 Windows,因此与它们完全兼容 那么我

引自:

Control Flow Guard(CFG)是一个高度优化的安全平台 为解决内存损坏漏洞而创建的功能。 通过严格限制应用程序可以执行代码的位置 从中,它使攻击者执行任意代码变得更加困难 通过缓冲区溢出等漏洞

我们 强烈鼓励开发人员为其应用程序启用CFG。 您不必为代码的每一部分都启用CFG,这是一种混合 启用CFG和未启用CFG的代码将正常执行。但失败 为所有代码启用CFG可以打开保护中的漏洞。 此外,启用CFG的代码在“不知道CFG”版本的 Windows,因此与它们完全兼容

那么我什么时候不能启用它呢


或者换句话说,在启用代码之前,我必须检查代码的哪些方面,以及有哪些风险?

看起来它会使程序运行变慢。不过,他们并没有说具体数量。这篇文章的通俗易懂的语言表明,所有的间接调用现在都要经过内核?如果这是真的,那真的是灾难性的。

这里有一篇好文章,内容更详细:我计算了那么多,但决定其他人一定会问同样的问题,一个带有清单等的好答案可能会获得很多选票。因为在谷歌的前几次点击中,没有什么能清楚地列出负面消息。我认为间接调用不会出现在内核地址空间附近,只是在用户地址空间中运行一个windows lib来检查它们。但是,由于内核可以在进程启动时移动函数,因此它在系统中占有一席之地。