【问题标题】:When would I not wish to enable “Control Flow Guard” in Microsoft Visual Studio?我什么时候不希望在 Microsoft Visual Studio 中启用“控制流防护”?
【发布时间】:2017-05-09 15:42:27
【问题描述】:

引用MSDN:

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

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

那我什么时候不启用呢?

或者换句话说,在启用代码之前我必须检查哪些内容以及风险是什么?

【问题讨论】:

    标签: c++ c visual-studio controlflowguard


    【解决方案1】:

    看起来它会使程序运行速度变慢。不过,他们没有说多少。文章的简单语言表明所有间接调用现在都通过内核?如果是真的,那真是灾难性的。

    【讨论】:

    • 我做了这么多,但决定其他人一定会问同样的问题,并且带有清单等的好答案可能会获得 很多 票。由于在谷歌的前几次点击中没有任何内容以明确的方式列出负面因素。
    • 我不认为间接调用靠近内核地址空间,只是在用户地址空间中运行的 Windows 库检查它们。但由于内核可以在进程启动时移动函数,因此它已在系统中驻留。
    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2011-06-10
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多