0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

微软与LLVM、Rust达成合作,将CFG支持添加到编译器

如意 来源:开源中国 作者:白开水不加糖 2020-08-20 11:44 次阅读

微软方面宣布,该公司已与 LLVM 和 Rust 开发团队达成合作,将对 Windows Control Flow Guard(CFG)平台安全功能的支持添加到了 Clang 和 Rustc 编译器中。此前,CFG 仅适用于使用 Microsoft Visual C ++ 编译的 C/C ++ 代码。

CFG 是微软自 Windows 8.1 版本开始添加的一项强大的安全功能,目前已在 Windows 10 中被广泛使用 。该功能可以保护应用程序代码的执行流,以防止恶意代码(例如内存错误的结果)劫持本机“控制流”并使应用程序执行有害的操作。CFG 是对其他漏洞利用缓解措施的补充,例如地址空间布局随机化(Address Space Layout Randomization,ASLR)和数据执行保护(Data Execution Prevention,DEP)。

目前,CFG 功能已在 LLVM 10.0 和 Rust 1.47(当前为 Nightly 版本)两个版本中可用。

“LLVM 10.0 现在支持 CFG。我们对 CFG 的实现完全包含在核心库中,这使得它可以在基于 LLVM 的任何编译器中重用–前端编译器只需要设置正确的 flags 即可。”

“CFG 在 Rust 1.47(当前为 Nightly 版本)中可用。要启用 CFG,只需添加 -C control-flow-guard flag 即可。”

值得一提的是,微软方面透露,将 CFG 支持扩展到 LLVM/Clang的主要驱动器是 Chromium,而 Chromium 代码库是使用 Clang 编译的。“因此,Chromium 团队正在努力在 Windows 版本中启用 CFG,这是在 Google Chrome 和 Microsoft Edge 中采用 CFG 的第一步。”

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6253

    浏览量

    103085
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48638
  • CFG
    CFG
    +关注

    关注

    0

    文章

    10

    浏览量

    9709
收藏 人收藏

    评论

    相关推荐

    怎么把stlink server添加到keil里?

    stlink server的使用说明里面是支持keil5.25的。怎么把stlink server添加到keil里?
    发表于 03-27 07:28

    如何F-RAM™添加到现有的PSoC™ Creator项目?

    我们在PSoC™ Creator 中有一个 PSoC6 项目,并希望 QSPI F-RAM™存储添加到TDA5235_868_5_BOARD中。我很难找到如何在F-RAM™ PSoC
    发表于 03-01 12:14

    FCX3是否具有PTS或SCR添加到映像帧的功能?

    问题 1) FCX3是否具有PTS或SCR添加到映像帧的功能,如随附的USB规范中所述? 如果可能,请提供有关如何配置每个 PTS 和 SCR 的详细信息。 问题 2) CAN FCX3 支持1080x1280@120fps传
    发表于 02-26 08:23

    如何TC1798器件添加到MDK KEIL?

    我正在尝试使用 KEIL MDK(µVision)为英飞凌TC1798编程,但我不确定如何TC1798器件添加到MDK KEIL。 谁能帮我拿到 .pack 或者.zip 对于 TC1798?
    发表于 02-01 08:18

    把LTC6811的C文件和头文件添加到工程里后,编译显示cell_asic没有定义是什么意思?

    把LTC6811的C文件和头文件添加到工程里后,编译显示cell_asic没有定义,啥意思? void LTC6811_init_cfg(uint8_t total_ic, //!<
    发表于 01-05 11:53

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. RustLLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3.
    的头像 发表于 01-02 11:00 240次阅读

    安装python怎么添加到环境变量

    Python是一种简单易学的脚本语言,广泛应用于开发各种类型的应用程序。为了在Windows操作系统上使用Python的命令行工具,需要将Python添加到系统的环境变量中。本文将向您详细介绍如何在
    的头像 发表于 11-23 16:40 760次阅读

    西门子博途S7-1200:将模块添加到机架的方法

    在网络视图中将设备从硬件目录添加到组态后,即可向设备中添加模块。
    的头像 发表于 09-04 15:22 4021次阅读
    西门子博途S7-1200:将模块<b class='flag-5'>添加到</b>机架的方法

    LLVM-RISCV编译器的安装方法

    在cmake安装时,记得勾选把cmake添加到系统环境变量中,安装包默认是不添加到环境变量中。
    发表于 08-25 10:01 833次阅读
    <b class='flag-5'>LLVM</b>-RISCV<b class='flag-5'>编译器</b>的安装方法

    ARM编译器ARM C和C++库和浮点支持用户指南

    本文介绍了对Arm®编译器6各种功能的支持级别。 ArmCompiler6基于Clang和LLVM技术构建。因此,它具有比文档中描述的一组产品功能更多的功能。以下定义阐明了对这些功能的支持
    发表于 08-10 06:39

    如何将溶解氧添加到WiFi水培套件

    电子发烧友网站提供《如何将溶解氧添加到WiFi水培套件.zip》资料免费下载
    发表于 06-14 10:00 0次下载
    如何将溶解氧<b class='flag-5'>添加到</b>WiFi水培套件

    什么是LLVMLLVM的优势和特点有哪些?

    LLVM是一个开源的编译器基础设施项目,它以"Low-Level Virtual Machine"的缩写命名,尽管名称中包含了"虚拟机"一词,但LLVM不仅仅是一个虚拟机,而是一个综合的编译器
    的头像 发表于 06-11 15:54 6266次阅读

    最大化Rust性能:编译器优化的比较分析

    Rust以其独特的安全性、速度和并发性组合而迅速流行。但是与其它任何语言一样,要充分利用Rust需要的不仅仅是理解它的语法和习惯用法——还需要深入了解如何有效地利用和优化它的编译器
    的头像 发表于 05-29 16:17 1473次阅读
    最大化<b class='flag-5'>Rust</b>性能:<b class='flag-5'>编译器</b>优化的比较分析

    赛昉科技成功将EDK II支持添加到VisionFive 2中

    近日,赛昉科技成功将EDK II支持添加到VisionFive 2(昉·星光 2)中。VisionFive 2是赛昉科技推出的高性能RISC-V单板计算机(SBC),自发布以来,在生态伙伴、社区开发者及赛昉科技的共同努力下,VisionFive2的软件生态已取得长足的发展
    的头像 发表于 05-19 15:30 768次阅读
    赛昉科技成功将EDK II<b class='flag-5'>支持</b><b class='flag-5'>添加到</b>VisionFive 2中

    如何check() API公开添加到SPIFFS?

    SPIFFS.remove() 失败。我在 c api 中看到有一个 spiffs_check.c,但我认为它没有暴露在 SPIFFS obj 模型中。有点让我头疼,但现在我认为我目前唯一的办法是重新格式化 spiff, check() API 公开添加到 SPIFF
    发表于 05-08 07:00