0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微軟與LLVM、Rust達(dá)成合作,將CFG支持添加到編譯器

如意 ? 來源:開源中國 ? 作者:白開水不加糖 ? 2020-08-20 11:44 ? 次閱讀

微軟方面宣布,該公司已與 LLVM 和 Rust 開發(fā)團(tuán)隊(duì)達(dá)成合作,將對 Windows Control Flow Guard(CFG)平臺安全功能的支持添加到了 Clang 和 Rustc 編譯器中。此前,CFG 僅適用于使用 Microsoft Visual C ++ 編譯的 C/C ++ 代碼。

CFG 是微軟自 Windows 8.1 版本開始添加的一項(xiàng)強(qiáng)大的安全功能,目前已在 Windows 10 中被廣泛使用 。該功能可以保護(hù)應(yīng)用程序代碼的執(zhí)行流,以防止惡意代碼(例如內(nèi)存錯誤的結(jié)果)劫持本機(jī)“控制流”并使應(yīng)用程序執(zhí)行有害的操作。CFG 是對其他漏洞利用緩解措施的補(bǔ)充,例如地址空間布局隨機(jī)化(Address Space Layout Randomization,ASLR)和數(shù)據(jù)執(zhí)行保護(hù)(Data Execution Prevention,DEP)。

目前,CFG 功能已在 LLVM 10.0 和 Rust 1.47(當(dāng)前為 Nightly 版本)兩個版本中可用。

“LLVM 10.0 現(xiàn)在支持 CFG。我們對 CFG 的實(shí)現(xiàn)完全包含在核心庫中,這使得它可以在基于 LLVM 的任何編譯器中重用–前端編譯器只需要設(shè)置正確的 flags 即可?!?/p>

“CFG 在 Rust 1.47(當(dāng)前為 Nightly 版本)中可用。要啟用 CFG,只需添加 -C control-flow-guard flag 即可?!?/p>

值得一提的是,微軟方面透露,將 CFG 支持?jǐn)U展到 LLVM/Clang的主要驅(qū)動器是 Chromium,而 Chromium 代碼庫是使用 Clang 編譯的?!耙虼?,Chromium 團(tuán)隊(duì)正在努力在 Windows 版本中啟用 CFG,這是在 Google Chrome 和 Microsoft Edge 中采用 CFG 的第一步?!?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6554

    瀏覽量

    103899
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49017
  • CFG
    CFG
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    9793
收藏 人收藏

    評論

    相關(guān)推薦

    AI編譯器技術(shù)剖析

    隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進(jìn)入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如高級語言編寫的源代碼
    的頭像 發(fā)表于 07-17 18:28 ?1411次閱讀

    人工智能編譯器與傳統(tǒng)編譯器的區(qū)別

    人工智能編譯器(AI編譯器)與傳統(tǒng)編譯器在多個方面存在顯著的差異。這些差異主要體現(xiàn)在設(shè)計(jì)目標(biāo)、功能特性、優(yōu)化策略、適用范圍以及技術(shù)復(fù)雜性等方面。以下是對兩者區(qū)別的詳細(xì)探討,旨在全面解析其內(nèi)在差異。
    的頭像 發(fā)表于 07-17 18:19 ?1616次閱讀

    請問如何cURL庫添加到ESP8266_RTOS_SDK項(xiàng)目中?

    我想使用 curl api,但我不知道如何添加到我的項(xiàng)目中,這樣當(dāng)我將該庫的頭文件包含在我的項(xiàng)目中時它就不會抱怨。 有誰知道如何正確地第三方庫添加到ESP8266_RTOS_SD
    發(fā)表于 07-09 07:52

    芯來科技與華東師范大學(xué)SOLE實(shí)驗(yàn)室合作推動LLVM/CLANG編譯器優(yōu)化

    行深入的LLVM/CLANG編譯器優(yōu)化以及程序性能優(yōu)化和調(diào)優(yōu)。 我們不僅優(yōu)化了LLVM編譯器的多個關(guān)鍵環(huán)節(jié),提升了代碼生成效率和執(zhí)行性能,還針對視頻編解碼、性能測試等應(yīng)用場景進(jìn)行了深入
    的頭像 發(fā)表于 06-12 09:09 ?554次閱讀
    芯來科技與華東師范大學(xué)SOLE實(shí)驗(yàn)室<b class='flag-5'>合作</b>推動<b class='flag-5'>LLVM</b>/CLANG<b class='flag-5'>編譯器</b>優(yōu)化

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設(shè)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸
    的頭像 發(fā)表于 06-04 15:31 ?1369次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 <b class='flag-5'>支持</b>最新C和C++語言

    怎么把stlink server添加到keil里?

    stlink server的使用說明里面是支持keil5.25的。怎么把stlink server添加到keil里?
    發(fā)表于 03-27 07:28

    如何F-RAM?添加到現(xiàn)有的PSoC? Creator項(xiàng)目?

    我們在PSoC? Creator 中有一個 PSoC6 項(xiàng)目,并希望 QSPI F-RAM?存儲添加到TDA5235_868_5_BOARD中。我很難找到如何在F-RAM? PSoC
    發(fā)表于 03-01 12:14

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

    問題 1) FCX3是否具有PTS或SCR添加到映像幀的功能,如隨附的USB規(guī)范中所述? 如果可能,請?zhí)峁┯嘘P(guān)如何配置每個 PTS 和 SCR 的詳細(xì)信息。 問題 2) CAN FCX3 支持1080x1280@120fps傳
    發(fā)表于 02-26 08:23

    HighTec怎么添加.o文件?

    請問大神HighTec怎么添加.o文件,我現(xiàn)在有個軟件包,其中幾個函數(shù)沒有源碼,軟件包里提供的是.o文件里面包含了這幾個函數(shù),該怎么添加到編譯器里才能編譯通過呢?
    發(fā)表于 02-18 07:16

    如何TC1798器件添加到MDK KEIL?

    我正在嘗試使用 KEIL MDK(μVision)為英飛凌TC1798編程,但我不確定如何TC1798器件添加到MDK KEIL。 誰能幫我拿到 .pack 或者.zip 對于 TC1798?
    發(fā)表于 02-01 08:18

    ADuCM355硬件參考手冊——Keli編譯

    在 Arm Compiler 5 和 Arm Compiler for Embedded(以前稱為 Arm Compiler 6)之間,底層技術(shù)發(fā)生了重大變化,從專有編譯器 armcc 轉(zhuǎn)變?yōu)榛陂_源 LLVM/Clang 的編譯器
    的頭像 發(fā)表于 01-12 09:35 ?1246次閱讀
    ADuCM355硬件參考手冊——Keli<b class='flag-5'>編譯</b>版

    把LTC6811的C文件和頭文件添加到工程里后,編譯顯示cell_asic沒有定義是什么意思?

    把LTC6811的C文件和頭文件添加到工程里后,編譯顯示cell_asic沒有定義,啥意思? void LTC6811_init_cfg(uint8_t total_ic, //!<
    發(fā)表于 01-05 11:53

    從Rustup出發(fā)看Rust編譯生態(tài)

    從Rustup出發(fā)看Rust編譯生態(tài) 1. RustLLVM的關(guān)系是怎樣的? 2. Rustup中targets是什么,為什么可以安裝多個? 3.
    的頭像 發(fā)表于 01-02 11:00 ?479次閱讀

    編譯器的優(yōu)化選項(xiàng)

    一個程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個重要的考量。要編寫高性能的程序,第一,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu);第二,應(yīng)該編寫編譯器能夠有效優(yōu)化以轉(zhuǎn)換成高效可執(zhí)行代碼的源代碼,要做到
    的頭像 發(fā)表于 11-24 15:37 ?838次閱讀
    <b class='flag-5'>編譯器</b>的優(yōu)化選項(xiàng)

    安裝python怎么添加到環(huán)境變量

    不同的Windows版本中添加Python到環(huán)境變量中。 為什么需要將Python添加到環(huán)境變量中: 環(huán)境變量是一種系統(tǒng)范圍內(nèi)的設(shè)置,用于指定操作系統(tǒng)在執(zhí)行命令時需要查找的程序和文件的位置。Python
    的頭像 發(fā)表于 11-23 16:40 ?2940次閱讀