亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于動態(tài)污點分析的棧溢出Crash判定技術(shù)

        2018-04-19 07:37:26露平
        計算機(jī)工程 2018年4期
        關(guān)鍵詞:污點漏洞內(nèi)存

        ,, , ,露平,

        (四川大學(xué) 電子信息學(xué)院,成都 610065)

        0 概述

        隨著信息化時代的到來,互聯(lián)網(wǎng)的運用越來越廣泛,尤其是計算機(jī)軟件已經(jīng)成為世界經(jīng)濟(jì)、科技、軍事和社會發(fā)展的重要引擎,與此同時軟件的安全問題也日益突出[1]。軟件漏洞是安全問題的主要根源之一。近年來軟件漏洞數(shù)量呈現(xiàn)明顯上升趨勢,軟件漏洞能夠引發(fā)惡性的Web攻擊事件侵害公民權(quán)益,傳播廣泛的計算機(jī)病毒造成重大經(jīng)濟(jì)損失,實施高級可持續(xù)性攻擊引發(fā)國家安全事件等[2]。因此,對軟件漏洞的分析已經(jīng)成為計算機(jī)領(lǐng)域的重要研究熱點及難點。

        當(dāng)程序發(fā)生崩潰(Crash)時,安全研究人員需要進(jìn)一步判定崩潰是由程序的內(nèi)部邏輯錯誤引起還是由外部輸入數(shù)據(jù)引起。如果是由外部輸入引起,那么這很可能是一個嚴(yán)重的崩潰,甚至是一個可利用的漏洞[3]。因此,分析Crash的可利用性,即判定Crash是否能夠被攻擊者所利用以及被利用后的危害程度是否足夠嚴(yán)重。分析崩潰的可利用性等級不僅為軟件異常分析提供重要依據(jù),還能夠有效提高漏洞挖掘速度。無論對于攻擊者還是防御者,這都是一項十分重要并且緊迫的工作。隨著計算機(jī)軟件的廣泛應(yīng)用,如何快速有效地分析評估Crash的可利用性已經(jīng)成為當(dāng)前漏洞挖掘與分析的關(guān)鍵問題之一。

        本文介紹目前用于Crash分析領(lǐng)域的3種常見方法,利用動態(tài)二進(jìn)制插樁工具Pin在Windows平臺實現(xiàn)一種基于動態(tài)污點分析技術(shù)的Crash可利用性自動化判定框架,并對若干已知漏洞的應(yīng)用程序進(jìn)行實驗驗證,與!exploitable工具的分析結(jié)果進(jìn)行對比。

        1 Crash可利用性分析方法

        目前用于Crash可利用性分析的常見方法主要有3種,靜態(tài)分析以Microsoft發(fā)布的!exploitable工具[4]為代表,靜態(tài)分析與動態(tài)分析結(jié)合以二進(jìn)制分析框架BitBlaze[5]為代表,動態(tài)分析以漏洞利用自動生成框架CRAX[6]為代表。

        1.1 調(diào)用堆棧分析

        2009年微軟安全工程中心基于微軟在Windows Vista開發(fā)過程中使用Fuzzing的經(jīng)驗創(chuàng)建了!exploitable工具,用于自動崩潰分析和安全風(fēng)險評估。該工具通過比較調(diào)用堆棧對應(yīng)的散列值分類崩潰,進(jìn)而分析崩潰上下文的語義信息定義可利用性級別。它只依賴于Crash dump,而不是導(dǎo)致崩潰的輸入[7]。程序發(fā)生崩潰時,WinDbg加載MSEC.dll,使用!exploitable命令分析Crash是否可利用,首先整理所有崩潰并創(chuàng)建哈希值來確定崩潰的唯一性,其次查看崩潰類型并判定崩潰是否可以被惡意利用,然后分配崩潰可利用性等級:Exploitable(可利用),Probably Exploitable(可能可利用),Probably Not Exploitable(可能不可利用) or Unknown(未知)。

        !exploitable工具易用性強(qiáng),效率較高,可以極大地幫助安全研究人員節(jié)省分析崩潰的時間和精力。但是該工具具有較高的假陽性率,并且只能給出Windows平臺下準(zhǔn)確的崩潰判斷,對于其他第三方軟件和一些邏輯復(fù)雜的崩潰,例如堆溢出、UAF等,準(zhǔn)確率非常低[8]。

        1.2 執(zhí)行跟蹤

        BitBlaze是UC Berkely開發(fā)的基于二進(jìn)制信息的分析平臺,該平臺主要用于確定崩潰時哪些寄存器和內(nèi)存地址來自攻擊者控制的輸入文件,并且切片Null指針查看起始位置來快速排除可利用性。該平臺支持精確的分析,結(jié)合了靜態(tài)和動態(tài)分析技術(shù)以及程序驗證技術(shù)以滿足普遍需求,有助于快速確定由基于文件變異的Fuzzing生成的特定崩潰是否可利用,以及確定崩潰產(chǎn)生的根本原因。

        分析程序崩潰的根本原因,目前主要通過手動或使用調(diào)試器完成,使用BitBlaze可以簡化和加快進(jìn)程,并且提供可重復(fù)性。BitBlaze運行在GuestOS的更底層,對目標(biāo)程序有較好的透明性,但該平臺局部開源且不便于擴(kuò)展,對于污點的設(shè)置同樣缺乏靈活性[9]。

        1.3 端到端

        2012年IEEE會議提出了基于AEG方法改進(jìn)的漏洞利用自動化框架CRAX。它是一個基于S2E的符號執(zhí)行平臺。為了生成控制流劫持攻擊,檢測符號EIP及其他基于連續(xù)的寄存器和指針,提出了一種搜索最大連續(xù)符號內(nèi)存用于有效載荷注入的系統(tǒng)方法。

        CRAX解決了沒有源代碼的大型軟件系統(tǒng)的漏洞利用自動生成,并且可以粗粒度地確定崩潰優(yōu)先級。然而CRAX未開源且耗時較AEG長,因為它進(jìn)行的是整個系統(tǒng)的符號執(zhí)行而AEG只是在應(yīng)用程序級別,只能通過減少在concolic執(zhí)行期間的約束數(shù)量進(jìn)行時間優(yōu)化。

        2 相關(guān)技術(shù)

        動態(tài)污點分析技術(shù)是指將非信任來源的數(shù)據(jù)進(jìn)行標(biāo)記,并追蹤其在程序執(zhí)行過程中的傳遞,從而達(dá)到獲取關(guān)鍵位置與輸入數(shù)據(jù)關(guān)聯(lián)信息的分析方法[10]。動態(tài)污點分析能夠準(zhǔn)確地獲取程序的執(zhí)行過程,有效地提高污點分析的精度,錯誤率較低,應(yīng)用性較強(qiáng)。動態(tài)污點分析的主要過程包括3個階段,如圖1所示[11]。

        圖1 動態(tài)污點分析過程

        各階段的作用如下:

        1)污點標(biāo)記(污染源識別):正確識別污染的來源并進(jìn)行標(biāo)記。如果對象的值來源不可信,那么將該對象標(biāo)記為污染的。

        2)污點傳播:根據(jù)正確的污點傳播規(guī)則,將污點數(shù)據(jù)隨著程序的運行進(jìn)行污點的標(biāo)記及傳遞(或移除)。

        3)安全策略檢測攻擊:通過制定合理的規(guī)則與策略,確定或者檢測出程序運行中存在的各種漏洞利用攻擊,如緩沖區(qū)溢出等[11]。

        動態(tài)污點傳播分析一般采用虛擬執(zhí)行或者動態(tài)二進(jìn)制插樁方式對污點數(shù)據(jù)進(jìn)行記錄和跟蹤維護(hù)[11]。動態(tài)二進(jìn)制插樁是指在不影響程序正常執(zhí)行結(jié)果的前提下,根據(jù)用戶需要在程序動態(tài)執(zhí)行過程中插入額外的分析代碼以監(jiān)控程序執(zhí)行過程[12]。隨著動態(tài)二進(jìn)制插樁平臺的出現(xiàn),動態(tài)污點分析的實現(xiàn)和應(yīng)用變得越加廣泛。本文提出的Crash可利用性自動化分析框架,進(jìn)行動態(tài)污點分析的前提就是需要對目標(biāo)程序進(jìn)行動態(tài)二進(jìn)制插樁。選用動態(tài)二進(jìn)制插樁平臺Pin作為原型系統(tǒng),在此基礎(chǔ)上結(jié)合動態(tài)污點分析技術(shù)實現(xiàn)對Crash的可利用性判定。

        Pin是Intel公司提供的二進(jìn)制程序插樁工具,支持IA-32、Intel(R) 64和IA64架構(gòu)上的Windows和Linux可執(zhí)行程序,具有易用、高效、可移植性以及健壯性等特點[13]。Pin采用動態(tài)編譯的方法插入探測代碼,并配合使用函數(shù)內(nèi)聯(lián)、寄存器重分配、指令調(diào)度等優(yōu)化方法,使得基于Pin開發(fā)的動態(tài)二進(jìn)制插樁工具具有較高的運行效率[14]。Pin工具內(nèi)部含有即時編譯器、虛擬機(jī)和代碼緩存,插樁工具通過插樁接口函數(shù)與Pin進(jìn)行交互[14],其整體架構(gòu)如圖2所示。

        圖2 Pin平臺框架

        使用Pin進(jìn)行動態(tài)污點分析能夠有效地實現(xiàn)自動化。Pin的指令級插樁主要通過函數(shù)INS_AddInstrumentFunction來實現(xiàn),它會自動在每執(zhí)行一條新指令時調(diào)用回調(diào)函數(shù)INS_InsertCall,并且在不影響原代碼正常執(zhí)行的同時將分析代碼插入原代碼序列中,進(jìn)而生成一個新的代碼序列并自動切換代碼的控制權(quán),使得整個分析過程自動化且高效進(jìn)行[15]。使用Pin對目標(biāo)程序進(jìn)行二進(jìn)制插樁的具體步驟如下:

        1)調(diào)用PIN_Init()初始化Pin環(huán)境。

        2)調(diào)用INS_AddInstrumentFunction(),分別聲明指令級插樁函數(shù)Instruction和鏡像級插樁函數(shù)ModLoad。其中,函數(shù)Instruction中定義了一個或多個回調(diào)函數(shù)INS_InsertCall,在每執(zhí)行一條新指令時均要調(diào)用INS_InsertCall函數(shù)執(zhí)行對當(dāng)前指令的分析代碼;函數(shù)ModLoad則對整個輸入文件進(jìn)行鏡像級插樁。

        3)調(diào)用PIN_AddFiniFunction()聲明程序退出函數(shù)Fini,該函數(shù)用于在程序運行結(jié)束時輸出最終的崩潰可利用性判斷結(jié)果。

        4)調(diào)用PIN_StartProgram()啟動程序。

        本文以動態(tài)二進(jìn)制分析平臺Pin為基礎(chǔ),利用動態(tài)插樁技術(shù)和動態(tài)污點分析技術(shù),實現(xiàn)了Crash的可利用性自動化判定框架。該框架暫不考慮保護(hù)機(jī)制的影響,如DEP、ALSR等。其整體架構(gòu)如圖3所示。

        圖3 框架整體結(jié)構(gòu)

        3 系統(tǒng)設(shè)計與實現(xiàn)

        利用該框架進(jìn)行Crash可利用性分析的具體流程如下:

        1)調(diào)用污點標(biāo)記模塊,將來自于不可信數(shù)據(jù)源的輸入數(shù)據(jù)標(biāo)記為污染源。

        2)調(diào)用Pin對目標(biāo)程序Crash樣本進(jìn)行二進(jìn)制指令級插樁。

        3)調(diào)用污點跟蹤模塊跟蹤每一條內(nèi)存/寄存器操作指令,判斷其是否引起污點傳播,并對被污染的內(nèi)存和寄存器進(jìn)行標(biāo)記,同時修改污點數(shù)據(jù)列表。

        4)調(diào)用Crash可利用性判定模塊,對能夠改變程序控制流的call、jmp、ret指令判斷其目的地址/操作數(shù)是否已被標(biāo)記,同時對進(jìn)行讀寫內(nèi)存操作的mov指令判斷其操作的內(nèi)存地址是否可控以及是否操作污點數(shù)據(jù),由此給出判定結(jié)果。

        3.1 污點標(biāo)記模塊

        污點標(biāo)記是進(jìn)行污點傳播分析的前提,其標(biāo)記方法和結(jié)果將極大程度地影響污點傳播處理和污點信息存儲的效率[11]。污點標(biāo)記模塊主要有2個功能:1)將目標(biāo)程序的輸入數(shù)據(jù)作為污染源并為其全部添加污點標(biāo)記;2)對于污點跟蹤模塊中的污點傳播,如果有污點數(shù)據(jù)污染了內(nèi)存/寄存器,則為其添加污點標(biāo)記,如果已被污染的內(nèi)存/寄存器被非污點數(shù)據(jù)覆蓋則移除其污點標(biāo)記。定義2個污點數(shù)據(jù)列表:addressTainted和regsTainted,分別用于存放被污染的內(nèi)存地址和寄存器。該模塊工作流程如圖4所示。

        圖4 污點標(biāo)記模塊工作流程

        3.2 污點跟蹤模塊

        通過污點標(biāo)記模塊將不可信輸入數(shù)據(jù)全部標(biāo)記為污染源后目標(biāo)程序開始執(zhí)行。此時調(diào)用污點跟蹤模塊對程序進(jìn)行指令級插樁,從而分析程序執(zhí)行過程中污點的傳播情況。分析時需要對每條指令做出如下判斷:1)這條指令是否是內(nèi)存/寄存器操作指令;2)如果是,這條指令是否引起了污點傳播。該模塊工作流程如圖5所示。

        圖5 污點跟蹤模塊工作流程

        3.3 Crash可利用性判定模塊

        Crash可利用性判定模塊工作流程如圖6所示。

        圖6 Crash可利用性判定模塊工作流程

        一般情況下程序的代碼段是不可重寫的,攻擊者只能通過修改程序的輸入數(shù)據(jù)(如跳轉(zhuǎn)指令的目的地址、格式化字符串函數(shù)的參數(shù)等),來控制程序的執(zhí)行流從而進(jìn)行攻擊操作[16]。此過程中涉及到2類危險指令的操作,分別是跳轉(zhuǎn)指令和讀寫內(nèi)存指令,該模塊通過檢測在程序崩潰點之前是否出現(xiàn)過這2類危險指令而給出Crash可利用性的判斷結(jié)果:Unknown(未知)和Exploitable(可利用),其中,Exploitable分為Normal(默認(rèn))和High。

        根據(jù)上述2類危險指令,Crash可利用性判定規(guī)則如下:

        1)跳轉(zhuǎn)指令:主要是指call、jmp及ret,它們能夠改變程序的控制流。程序正常運行時一般不會出現(xiàn)污點數(shù)據(jù)被用作跳轉(zhuǎn)指令的目的地址的情況,因此當(dāng)call、jmp或ret指令的目的地址是一個被污染的內(nèi)存地址或寄存器時,表明攻擊者很可能已經(jīng)通過輸入數(shù)據(jù)改寫了這些目的地址,并嘗試獲取程序控制流來運行惡意的shellcode或繞過安全檢查等。

        (1)call/jmp 指令:判斷call、jmp指令的目的地址是否是污點數(shù)據(jù)。對于call/jmp指令,其操作數(shù)可能是一個內(nèi)存地址也可能是一個寄存器,分別進(jìn)行如下判斷:①對于call/jmp[MEM]指令,如果[MEM]已被污染則該崩潰“可利用”,特別地,對于[MEM]為[reg_base+offset],如果reg或reg所指向的內(nèi)存單元已被污染,則該崩潰“可利用”;②對于call/jmp REG指令,如果REG或者REG所指向的內(nèi)存單元[addr]已被污染,則該崩潰“可利用”。

        (2)ret指令:判斷ret指令的目的地址是否是污點數(shù)據(jù)并確定污點目的地址中的可控字節(jié)數(shù)。ret指令沒有操作數(shù)但會跳轉(zhuǎn)到某個返回地址。首先從esp中獲取ret指令的返回地址,然后進(jìn)行如下判斷:①如果返回地址所指向的內(nèi)存單元已被污染,則該崩潰“可利用”;②如果返回地址本身已被污染(如緩沖區(qū)溢出漏洞會覆蓋返回地址),則該崩潰“可利用”,此時還需要判斷該污點目的地址的可控字節(jié)數(shù),如果崩潰點之前有跳轉(zhuǎn)指令,其目的地址是污點數(shù)據(jù)且4個字節(jié)全部可控,那么通過這條跳轉(zhuǎn)指令就能得到對一個4 GB(232 Byte)內(nèi)存空間的控制權(quán),這表明該崩潰具有極高的可利用性,因為攻擊者能夠在其中插入任意的shellcode進(jìn)行攻擊。

        2)讀寫內(nèi)存指令:指通過寄存器對內(nèi)存單元進(jìn)行讀寫數(shù)據(jù)操作。攻擊者通常會將危險輸入數(shù)據(jù)寫入某塊內(nèi)存單元從而間接地獲取控制流,該過程不可避免地會進(jìn)行讀寫內(nèi)存指令。如果讀取的內(nèi)存地址可控,或者對被污染的內(nèi)存單元或寄存器進(jìn)行了寫操作甚至寫入的內(nèi)容是污點數(shù)據(jù),那么這條讀/寫內(nèi)存指令就極有可能被攻擊者所利用,例如用于覆蓋SEH(結(jié)構(gòu)化異常處理)[17]等。

        (1)讀內(nèi)存指令:判斷mov REG,[MEM]指令中MEM是否可控。讀內(nèi)存指令中[MEM]的表示形式可能是[reg_base + reg_index*scale + offset],如果reg_base或reg_index已被污染,進(jìn)而獲取ebp的內(nèi)存地址,如果ebp的內(nèi)存地址也被污染,則該崩潰“可利用”。因為如果[MEM]的reg_base和reg_index中任意一個被污染,則內(nèi)存地址可控,也就意味著攻擊者能夠通過讀內(nèi)存指令將某個指定地址中的值寫入REG中,從而觸發(fā)讀內(nèi)存異常或引起程序崩潰甚至用于覆蓋SEH,此時進(jìn)一步判斷ebp的內(nèi)存地址是否被污染,如果是則表明棧中的SEH可能已被修改,則該崩潰“可利用”。

        (2)寫內(nèi)存指令:判斷mov[MEM],REG指令中REG是否是污點數(shù)據(jù),MEM是否可控。寫內(nèi)存指令中[MEM]的表示形式可能是[reg_base + reg_index*scale + offset],如果reg_base或reg_index已被污染,進(jìn)而獲取ebp的內(nèi)存地址,如果ebp的內(nèi)存地址也被污染則該崩潰“可利用”。因為如果[MEM]的reg_base和reg_index中任意一個被污染,則內(nèi)存地址可控,若此時REG也是污點數(shù)據(jù),這就意味著攻擊者能夠通過寫內(nèi)存指令將任意數(shù)值通過REG寫入某個指定地址的值中,從而觸發(fā)讀內(nèi)存異?;蛞鸪绦虮罎⑸踔劣糜诟采wSEH,此時進(jìn)一步判斷ebp的內(nèi)存地址是否被污染,如果是則表明棧中的SEH可能已被修改,則該崩潰“可利用”。

        4 實驗結(jié)果分析

        本文的實驗對象為存在已知漏洞的CoolPlayer、Word等多個應(yīng)用程序,實驗環(huán)境如表1所列,實驗結(jié)果如表2所列。其中,*表示標(biāo)注為!exploitable工具的測試結(jié)果。以1號實驗為例,當(dāng)CoolPlayer Portable 2.19.1試圖打開一個包含超過260 Byte的特定字符串的.m3u文件時,則會觸發(fā)棧溢出漏洞。構(gòu)建引發(fā)該軟件崩潰的輸入數(shù)據(jù)如圖7所示。

        表1 測試環(huán)境參數(shù)

        表2 實驗結(jié)果對比

        圖7 污染源文件

        使用該框架和!exploitable工具分別進(jìn)行崩潰可利用性判定的結(jié)果如圖8所示。

        圖8 測試結(jié)果對比

        該框架不僅能夠準(zhǔn)確定位到發(fā)生崩潰的指令,還能檢測到引發(fā)崩潰的ret指令的返回地址被覆蓋為用戶輸入數(shù)據(jù),且根據(jù)返回地址中的可控字節(jié)數(shù)對該崩潰可利用性的高低進(jìn)行進(jìn)一步判定,準(zhǔn)確度較!exploitable工具更高。

        對表2的實驗結(jié)果分析如下:

        1)該框架能夠準(zhǔn)確定位到發(fā)生Crash的指令,并進(jìn)一步判定可利用性高低,針對棧溢出類型漏洞的崩潰可利用性判定,相比!exploitable工具準(zhǔn)確率較高。

        2)當(dāng)測試程序小巧且污染源文件較小時,該框架分析速度較快。但對于Word等較大程序,盡管污染源文件很小,該框架分析速度也明顯下降。

        3)針對堆溢出、UAF、格式化字符串以及邏輯關(guān)系復(fù)雜的崩潰,該框架暫時無法準(zhǔn)確有效地判定其可利用性。

        4)動態(tài)污點分析針對數(shù)據(jù)流,并不能對控制流信息進(jìn)行分析,往往難以發(fā)現(xiàn)與控制流相關(guān)的脆弱性,使得最終分析結(jié)果存在精度不高的問題。

        5 方法比較

        比較該框架與前文所提到的3種分析方法,如表3所示。

        表3 對比分析

        綜合上述分析可知,BitBlaze和CRAX這2種分析工具由于尚未完全開源,應(yīng)用覆蓋范圍較窄,但對于程序崩潰可利用性判定研究具有重要的參考價值。目前主要利用!exploitable工具靜態(tài)分析Crash dump的方法初步判定Crash可利用性,然而該工具具有較高的假陽性率。本文提出的框架利用動態(tài)污點分析技術(shù),便于擴(kuò)展,針對棧溢出漏洞的可利用性判定準(zhǔn)確率明顯高于!exploitable工具。

        6 結(jié)束語

        本文采用Windows下二進(jìn)制插樁平臺Pin,提出了一種基于動態(tài)污點分析技術(shù)的Crash可利用性自動化判定框架。該框架能夠有效地檢測出可利用的崩潰并分配可利用性等級,準(zhǔn)確分類棧溢出漏洞。但該框架主要存在2個問題:1)對于邏輯關(guān)系較為復(fù)雜的崩潰只能進(jìn)行粗粒度的判斷,準(zhǔn)確度較低;2)對于較大的程序或樣本,檢測時間開銷較大且收集的信息易重復(fù),效率降低。

        下一步將針對該框架的性能和效率進(jìn)行優(yōu)化,增加對程序指令的識別覆蓋面,完善Crash可利用性判斷規(guī)則,避免污染缺失的情況,提高判定準(zhǔn)確性;通過對內(nèi)存讀寫操作代碼的優(yōu)化,提高運行效率;結(jié)合動態(tài)符號執(zhí)行技術(shù)[18]分析異常指令后的多條路徑,提高路徑覆蓋率。

        [1] 吳世忠,郭 濤,董國偉,等.軟件漏洞分析技術(shù)進(jìn)展[J].清華大學(xué)學(xué)報(自然科學(xué)版),2012,52(10):1309-1319.

        [2] MCGRAW G.Software security:building security in[M].Boston,USA:Addison-Wesley Professional,2006.

        [3] KROHNHANSEN H.Program crash analysis:evaluation and application of current methods[EB/OL].[2017-06-05].https://www-esv.nhtsa.dot.gov/Proceedings/24/files/24ESV-000055.PDF.

        [4] Microsoft.!exploitable crash analyzer——MSEC debugger extensions[EB/OL].[2017-06-05].http://msecdbg.codeplex.com.

        [5] MILLER C,CABALLERO J,BERKELEY U,et al.Crash analysis with BitBlaze[J].Revista Mexicanade Sociología,2010,44(1):81-117.

        [6] HUANG Shih-kun,HUANG Min-hsiang,HUANG Po-yen,et al.CRAX:software crash analysis for automatic exploit generation by modeling attacks as symbolic continua-tions[C]//Proceedings of the 6th International Conference on Software Security and Reliability.Washington D.C.,USA:IEEE Press,2012:78-87.

        [7] WEINSTEIN D,SHIRK J.The history of the !exploitable crash analyzer[EB/OL].[2017-06-05].http://blogs.technet.com/b/srd/archive/2009/04/08/the-history-of-the-exploitable-Crash-analyzer.aspx.

        [8] ZHANG Puhan,WU Jianxiong,XIN Wang,et al.Program crash analysis based on taint analysis[C]//Proceedings of the 9th International Conference on P2P,Parallel,Grid,Cloud and Internet Computing.Washington D.C.,USA:IEEE Press,2014:492-498.

        [9] 葉永宏,武東英,陳 揚.一種基于細(xì)粒度污點分析的逆向平臺[J].計算機(jī)工程與應(yīng)用,2012,48(28):90-96.

        [10] 史大偉,袁天偉.一種粗細(xì)粒度結(jié)合的動態(tài)污點分析方法[J].計算機(jī)工程,2014,40(3):12-17.

        [11] 宋 錚,王永劍,金 波,等.二進(jìn)制程序動態(tài)污點分析技術(shù)研究綜述[J].信息網(wǎng)絡(luò)安全,2016(3):77-83.

        [13] REDDI V J,JANAPA V,SETTLE A,et al.PIN:a binary instrumentation tool for computer architecture research and education[C]//Proceedings of Workshop on Computer Architecture Education.New York,USA:ACM Press,2004:1-7.

        [14] 王 乾.基于動態(tài)二進(jìn)制分析的關(guān)鍵函數(shù)定位技術(shù)研究[D].鄭州:信息工程大學(xué),2012.

        [15] 孔德光,鄭 烇,帥建梅,等.基于污點分析的源代碼脆弱性檢測技術(shù)[J].小型微型計算機(jī)系統(tǒng),2009,30(1):78-82.

        [16] 黃 昭.一種改進(jìn)的動態(tài)污點分析模型[D].武漢:華中科技大學(xué),2011.

        [17] WU Weimin,GUO Chaowei,HUANG Zhiwei,et al.Vulnerability exploitation technology of structured exception handling based on windows[J].Computer Engineering,2012,38(20):5-8.

        [18] ZHANG Yufeng,CHEN Zhenbang,WANG Ji,et al.Regular property guided dynamic symbolic execution[C]//Proceedings of the 37th IEEE International Conference on Software Engineering.Washington D.C.,USA:IEEE Press,2015:643-653.

        猜你喜歡
        污點漏洞內(nèi)存
        漏洞
        基于代碼重寫的動態(tài)污點分析
        “春夏秋冬”的內(nèi)存
        使用Lightroom污點去除工具清理照片中的瑕疵
        三明:“兩票制”堵住加價漏洞
        漏洞在哪兒
        兒童時代(2016年6期)2016-09-14 04:54:43
        高鐵急救應(yīng)補(bǔ)齊三漏洞
        我國“污點證人”刑事責(zé)任豁免制度的構(gòu)建
        基于內(nèi)存的地理信息訪問技術(shù)
        上網(wǎng)本為什么只有1GB?
        亚洲av男人的天堂一区| 99精品国产兔费观看久久| 亚洲精品美女久久久久网站| 一区二区三区中文字幕在线观看| 亚洲av无码乱码精品国产| 中年熟妇的大黑p| 一本大道久久精品 东京热| 中文字幕一区二区区免| 洲色熟女图激情另类图区| 亚洲h在线播放在线观看h| 精品第一页| 亚洲国产精品二区三区| 亚洲一区二区在线观看网址 | 日本不卡一区二区三区久久精品 | 一区二区丝袜美腿视频| 天堂网日韩av在线播放一区| 国产精品久久久久久一区二区三区| 精品性高朝久久久久久久| 免费无码黄网站在线观看| 国产精品大片一区二区三区四区| 免费观看羞羞视频网站| 两个黑人大战嫩白金发美女| 99久久久精品国产性黑人| av在线免费观看网站,| 久久成人国产精品免费软件| 91麻豆精品激情在线观看最新 | 国产91极品身材白皙| 一本色道久久综合狠狠躁篇| 久久国产成人午夜av影院| 日本一区二区三本视频在线观看| 中文字幕日韩有码国产| 国产综合在线观看| 亚洲精品二区中文字幕| 国产啪啪视频在线观看| 精品无人区无码乱码毛片国产| 免费看泡妞视频app| a级国产精品片在线观看| 国产亚洲av综合人人澡精品| 久久久久久久97| 久久综合成人网| 亚洲视频观看一区二区|