女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

image.png

GCC編譯過程與插件的交互流程

image.png

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

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

image.png

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

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

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

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

image.png

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

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

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

總結(jié):

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

審核編輯:湯梓紅

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

    關注

    0

    文章

    110

    瀏覽量

    25320
  • 代碼
    +關注

    關注

    30

    文章

    4894

    瀏覽量

    70449
  • 插件
    +關注

    關注

    0

    文章

    340

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

    請問基于GCC編譯器的initcall在STM32如何實現(xiàn)

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

    如何一眼定位SQL的代碼來源:一款SQL染色標記的簡易MyBatis插件

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

    分析C語言代碼結(jié)構(gòu)的設計問題

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

    MariaDB配置日志審計

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

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

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

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

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

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

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

    VSCode批量遷移插件

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

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

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

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

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

    數(shù)據(jù)庫安全審計系統(tǒng):滿足數(shù)據(jù)安全治理合規(guī)要求

    伴隨著數(shù)據(jù)庫信息價值以及可訪問性提升,使得數(shù)據(jù)庫面對來自內(nèi)部和外部的安全風險大大增加,如違規(guī)越權(quán)操作、惡意入侵導致機密信息竊取泄漏,但事后卻無法有效追溯和審計。 國內(nèi)專注于保密與非密領域的分級保護
    的頭像 發(fā)表于 07-04 13:04 ?541次閱讀

    安全服務加密存儲代碼怎么查

    安全服務加密存儲代碼的查詢與實現(xiàn)是一個復雜的過程,涉及到多個方面,包括數(shù)據(jù)加密、密鑰管理、訪問控制等。 1. 引言 隨著云計算的快速發(fā)展,越來越多的企業(yè)和個人將數(shù)據(jù)存儲在云端。然而,數(shù)據(jù)安全
    的頭像 發(fā)表于 07-02 09:28 ?701次閱讀