我什么时候不希望在Visual Studio中启用“Control Flow Guard Microsoft
When would I not wish to enable “Control Flow Guard” in Microsoft Visual Studio?
引用MSDN:
控制流防护 (CFG( 是一种高度优化的平台安全性为对抗内存损坏漏洞而创建的功能。通过严格限制应用程序可以执行代码的位置从,它使漏洞利用更难执行任意代码通过缓冲区溢出等漏洞。
我们强烈建议开发人员为其应用程序启用 CFG。您不必为代码的每个部分启用 CFG,作为混合启用 CFG 和未启用 CFG 的代码将执行正常。但失败了为所有代码启用 CFG 可以在保护中打开空白。此外,启用 CFG 的代码在"CFG-Unaware"版本的视窗,因此与它们完全兼容。
那么我什么时候不能启用它呢?
或者换句话说,在启用代码之前,我必须检查代码的哪些内容以及存在哪些风险?
看起来它使程序运行得更慢。不过,他们没有说多少。文章的简单语言表明所有间接调用现在都通过内核?如果这是真的,这确实是灾难性的。
相关文章:
- 编译时未启用intel oneApi CUDA支持
- OpenGL在启用深度测试时不会丢弃我的碎片
- Visual C++GC接口如何启用它以及要包含哪个库
- 如何在自定义类中启用'auto loops'?
- 根据某个函数是否存在启用模板
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 启用从"vector<const T>&"到"const vector&"的隐式转换<T>
- 方法错误"not all control paths return a value"和方法不返回值
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- 在 Eclipse 上启用 C++17 以使用 'std::byte'
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 如何为一段代码启用 -permissive
- 是否可以/希望创建不可复制的共享指针模拟(以启用weak_ptr跟踪/借用类型语义)?
- 在 GCC 中启用"differing levels of indirection"警告/错误
- 使用 Doxygen 记录枚举类值,而不启用EXTRACT_ALL
- '_HAS_CXX17'宏是否可用于自定义项目标头以启用C++17 语言集功能?
- 如何启用转换模板参数 T 以常量 T?
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 如何启用标准::实验::atomic_shared_pointer
- 我什么时候不希望在Visual Studio中启用“Control Flow Guard Microsoft