一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

利用GCC插件實(shí)現(xiàn)代碼分析和安全審計(jì)

zz愛(ài)尚科技 ? 來(lái)源:zz愛(ài)尚科技 ? 作者:zz愛(ài)尚科技 ? 2022-10-13 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

利用GCC插件實(shí)現(xiàn)代碼分析和安全審計(jì)

GCC 4.5.0開始引入的一項(xiàng)插件功能,允許用戶通過(guò)插件來(lái)干預(yù)GCC的編譯過(guò)程,獲取到GCC編譯過(guò)程中的各種數(shù)據(jù),甚至可以修改編譯過(guò)程中生成的中間數(shù)據(jù),從而達(dá)到修改最終生成的二進(jìn)制文件行為的目的(注:特別需要注意的是GCC-Plugin的API是會(huì)隨版本變化的)。此特性從程序員的角度來(lái)看,就相當(dāng)于把原來(lái)GCC的黑盒編譯過(guò)程一下子打開了,GCC編譯的過(guò)程數(shù)據(jù)可以“大白于天下”,可以清清楚楚的看個(gè)夠。

下圖為GCC編譯架構(gòu)****

image.png

GCC編譯過(guò)程與插件的交互流程

image.png

注:圖引自DragonEgg 在"Reimplementing llvm-gcc as a gcc plugin"

開源GCC插件列表**** (來(lái)自https://gcc.gnu.org/wiki/plugins):

image.png

基于GCC此插件特性,從安全測(cè)試的角度來(lái)看,可以用它來(lái)干什么呢?

A.可以把GCC編譯過(guò)程的內(nèi)部數(shù)據(jù)結(jié)構(gòu)圖形化,方便分析應(yīng)用程序。****

圖形化對(duì)象可以是控制流圖、函數(shù)調(diào)用圖、支配圖、Tree結(jié)構(gòu)、Gimple結(jié)構(gòu)、RTX結(jié)構(gòu)、Pass列表等等。

下圖是Gimple層次圖**** :

image.png

B、 利用可以修改中間數(shù)據(jù)的能力,可以不用修改源代碼就能添加新功能的功能,從而實(shí)現(xiàn)動(dòng)態(tài)安全分析、安全加固的能力。

在安全測(cè)試中為了監(jiān)控程序執(zhí)行路徑情況,需要通過(guò)動(dòng)態(tài)插裝來(lái)實(shí)現(xiàn),常見的插裝工具有Pin、Dynamo,但這些動(dòng)態(tài)插裝會(huì)對(duì)程序的運(yùn)行性能產(chǎn)生影響,降低程序運(yùn)行效率,嚴(yán)重的會(huì)導(dǎo)致程序不能正常運(yùn)行。但如果能預(yù)先在目標(biāo)程序中把插裝代碼編譯進(jìn)去,這樣既兼顧到性能,有兼顧到實(shí)現(xiàn)插裝的目的,一般要實(shí)現(xiàn)這個(gè)目的都是在源代碼層面由開發(fā)人員增加插裝代碼,但增加的代碼只是為了測(cè)試的目的,在實(shí)際發(fā)布版本中是不需要的,因此直接在源代碼層面增加插裝代碼就給代碼維護(hù)帶來(lái)的不便,但如果我們應(yīng)用GCC編譯器的插件能力,在編譯構(gòu)建過(guò)程中自動(dòng)添加插裝代碼到最終生成的二進(jìn)制文件中,這樣只需根據(jù)需要重新編譯就能得到不同目的的應(yīng)用程序而不需要修改任何一行源代碼,既增加插裝代碼的動(dòng)作對(duì)上層是透明的。

基于上述在編譯過(guò)程中自動(dòng)增加插裝代碼,可以實(shí)現(xiàn)對(duì)測(cè)試活動(dòng)的度量和提升測(cè)試效率,比如測(cè)試時(shí)代碼覆蓋率的統(tǒng)計(jì)與度量,基于執(zhí)行路徑來(lái)優(yōu)化測(cè)試用例提升fuzz效率等等功能。

總結(jié):

利用GCC的插件功能,可以利用編譯過(guò)程中的內(nèi)部數(shù)據(jù)來(lái)幫助安全分析人員對(duì)程序進(jìn)行安全分析和安全加固等事情,提升程序分析效率和分析精準(zhǔn)度。

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    111

    瀏覽量

    25388
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70674
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    23041
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    中軟國(guó)際以AI賦能某省構(gòu)建統(tǒng)一智能審計(jì)整改系統(tǒng)

    隨著審計(jì)監(jiān)督從“查問(wèn)題”向“促整改、強(qiáng)治理”延伸,如何推動(dòng)審計(jì)整改從“事后補(bǔ)救”邁向“系統(tǒng)治理”,已成為提升國(guó)家治理體系和治理能力現(xiàn)代化水平的關(guān)鍵。面對(duì)整改周期長(zhǎng)、跟蹤難度大、管理方式分散等挑戰(zhàn),
    的頭像 發(fā)表于 07-10 11:50 ?301次閱讀

    CW32L010 MCU在VSCode+GCC+EIDE+JLink下的使用示例

    、安裝Embedded IDE、Cortex-Debug等插件。 2、下載安裝gcc-arm-none-eabi工具鏈。 3、運(yùn)行VSCode,打開CW32L010 MCU的GCC示例工程
    的頭像 發(fā)表于 07-01 14:52 ?153次閱讀
    CW32L010 MCU在VSCode+<b class='flag-5'>GCC</b>+EIDE+JLink下的使用示例

    KiCad-Parasitics:KiCad 寄生參數(shù)分析插件

    “ ? 這是一款用于分析 PCB 編輯器中走線(wires)寄生參數(shù)的插件。 ? ” ? ? 要使用該插件,您必須在電路板上標(biāo)記兩個(gè)點(diǎn)。通常情況下,最好是選擇由同一根走線連接的兩個(gè)焊盤。標(biāo)記后,該
    的頭像 發(fā)表于 06-25 11:14 ?1051次閱讀
    KiCad-Parasitics:KiCad 寄生參數(shù)<b class='flag-5'>分析</b><b class='flag-5'>插件</b>

    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件實(shí)現(xiàn)自動(dòng)化代碼編程!

    。結(jié)合 Visual Studio Code(VSCode)的 Cline 插件,開發(fā)者可以實(shí)現(xiàn)高效的自動(dòng)化代碼編程。本文將詳細(xì)介紹如何配置和使用 QWQ:32B 模型與 Cline 插件
    的頭像 發(fā)表于 03-21 18:12 ?589次閱讀
    使用 QWQ:32B 模型搭配 VSCode 的 Cline <b class='flag-5'>插件</b><b class='flag-5'>實(shí)現(xiàn)</b>自動(dòng)化<b class='flag-5'>代碼</b>編程!

    函數(shù)HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT實(shí)現(xiàn)代碼里有處理DMA請(qǐng)求,這是出于什么考慮?

    函數(shù)HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT實(shí)現(xiàn)代碼里有處理DMA請(qǐng)求,這是出于什么考慮?求解答!
    發(fā)表于 03-14 09:01

    請(qǐng)問(wèn)基于GCC編譯器的initcall在STM32如何實(shí)現(xiàn)?

    請(qǐng)問(wèn)各位基于GCC編譯器的initcall在STM32如何實(shí)現(xiàn)?有哪位實(shí)現(xiàn)了嗎?
    發(fā)表于 03-13 06:24

    如何一眼定位SQL的代碼來(lái)源:一款SQL染色標(biāo)記的簡(jiǎn)易MyBatis插件

    作者:京東物流 郭忠強(qiáng) 導(dǎo)語(yǔ) 本文分析了后端研發(fā)和運(yùn)維在日常工作中所面臨的線上SQL定位排查痛點(diǎn),基于姓名貼的靈感,設(shè)計(jì)和開發(fā)了一款SQL染色標(biāo)記的MyBatis插件。該插件輕量高效,對(duì)業(yè)務(wù)
    的頭像 發(fā)表于 03-05 11:36 ?413次閱讀
    如何一眼定位SQL的<b class='flag-5'>代碼</b>來(lái)源:一款SQL染色標(biāo)記的簡(jiǎn)易MyBatis<b class='flag-5'>插件</b>

    分析C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題

    來(lái)分析一個(gè)C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請(qǐng)了內(nèi)存。用完后,內(nèi)存釋放,防止內(nèi)存泄漏。 大家覺(jué)得,這樣的代碼設(shè)計(jì)有沒(méi)有問(wèn)題。
    的頭像 發(fā)表于 02-11 09:31 ?366次閱讀

    MariaDB配置日志審計(jì)

    確認(rèn)插件路徑下是否有日志審計(jì)插件server_audit.so。
    的頭像 發(fā)表于 02-05 13:34 ?399次閱讀

    徹底移除Calico網(wǎng)絡(luò)插件

    0.前言 參考文檔:https://github.com/containernetworking/cni Pod網(wǎng)絡(luò)插件,為了實(shí)現(xiàn)Pod網(wǎng)絡(luò)而需要的插件、組件。由于Kubernetes通過(guò)開放
    的頭像 發(fā)表于 01-23 17:26 ?1060次閱讀
    徹底移除Calico網(wǎng)絡(luò)<b class='flag-5'>插件</b>

    如何提高嵌入式代碼質(zhì)量?

    技術(shù) 現(xiàn)代的嵌入式開發(fā)工具和測(cè)試技術(shù)可以極大地提升代碼質(zhì)量和開發(fā)效率: 1. 靜態(tài)分析工具:如Coverity、Lint等,能夠幫助發(fā)現(xiàn)潛在的代碼缺陷和
    發(fā)表于 01-15 10:48

    Kubernetes的CNI網(wǎng)絡(luò)插件之flannel

    Kubernetes設(shè)計(jì)了網(wǎng)絡(luò)模型,但卻將它的實(shí)現(xiàn)講給了網(wǎng)絡(luò)插件,CNI網(wǎng)絡(luò)插件最重要的功能就是實(shí)現(xiàn)Pod資源能夠跨主機(jī)通信。
    的頭像 發(fā)表于 01-02 09:43 ?805次閱讀

    VSCode批量遷移插件

    代碼的路 打開之前電腦,找到原電腦VS Code的插件安裝目錄: 如: C:\\\\Users\\\\用戶名\\\\.vscode\\\\extensions 將extensions文件夾拷貝到
    的頭像 發(fā)表于 11-06 16:04 ?773次閱讀
    VSCode批量遷移<b class='flag-5'>插件</b>

    什么是協(xié)議分析儀和訓(xùn)練器

    網(wǎng)絡(luò)性能和穩(wěn)定性。 安全審計(jì)與監(jiān)控:檢測(cè)惡意攻擊、入侵行為,監(jiān)控潛在的安全威脅,加強(qiáng)網(wǎng)絡(luò)安全防護(hù)和審計(jì)。 分類: 硬件型協(xié)議
    發(fā)表于 10-29 14:33

    數(shù)據(jù)庫(kù)安全審計(jì)系統(tǒng):筑牢數(shù)據(jù)安全防線 提高數(shù)據(jù)資產(chǎn)安全

    隨著萬(wàn)物互聯(lián)的技術(shù)演進(jìn),以及數(shù)字化轉(zhuǎn)型的快速發(fā)展,數(shù)據(jù)庫(kù)成為最具有戰(zhàn)略性的數(shù)字資產(chǎn)載體,保障數(shù)據(jù)庫(kù)安全也就保障了存儲(chǔ)其中的數(shù)據(jù)安全,數(shù)據(jù)庫(kù)安全審計(jì)是對(duì)數(shù)據(jù)庫(kù)“增、刪、改、查”具體操作的
    的頭像 發(fā)表于 07-17 13:38 ?1985次閱讀