軟件FUZZ中代碼分支檢測(cè)算法研究與實(shí)現(xiàn)
【文章頁(yè)數(shù)】:65 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2-2上述代碼中存在的所有分支情況??路徑爆炸是使用動(dòng)態(tài)符號(hào)執(zhí)行進(jìn)行二進(jìn)制代碼分析時(shí)不可避免的一個(gè)問(wèn)題
??(24)種狀態(tài)(如圖2-2所示),cnt存在五個(gè)可能的值,但是只有一個(gè)值能夠觸??發(fā)漏洞。在執(zhí)行過(guò)程中,符號(hào)執(zhí)行引擎可以收集到程序關(guān)于輸入的約束條件。對(duì)??于最左側(cè)的葉子節(jié)點(diǎn),給定隨機(jī)輸入,符號(hào)執(zhí)行引擎執(zhí)行結(jié)束后即可獲得該路徑??約束條件p=<il#a,i2冉),i3弁,i4....
圖3-1棧結(jié)構(gòu)與棧溢出效果圖??如果存在棧溢出漏洞,可以看到,從存在棧溢出的變量開(kāi)始,自上而下的數(shù)??,eb、地址
到低地址的存儲(chǔ)。x86架構(gòu)使用call指令來(lái)完成一個(gè)函數(shù)的調(diào)用,該指令實(shí)際完??成兩個(gè)操作:第一步,將EIP寄存器的值設(shè)置成目標(biāo)代碼的地址;第二步,將call??指令的下一條指令的地址壓入棧頂。如圖3-1所示,每一次的函數(shù)調(diào)用都會(huì)創(chuàng)建??一個(gè)函數(shù)獨(dú)享的棧幀,棧的底部是函數(shù)返回地址....
圖3-2格式化字符串攻擊示意圖??上述示例完成了兩個(gè)功能,泄露內(nèi)存數(shù)據(jù)和任意地址寫入任意數(shù)據(jù),這是一??
等數(shù)據(jù)傳輸接口,F(xiàn)在我們假設(shè)userjnput可以包含任意內(nèi)容的數(shù)據(jù),那么現(xiàn)在??攻擊者已經(jīng)可以構(gòu)造包含任意模式的輸入了,包括。/on、這兩個(gè)比較重要的模??式。圖3-2給出了在x86架構(gòu)下32位系統(tǒng)中一種可能的棧布局,format指針和??其對(duì)應(yīng)的格式化字符串存儲(chǔ)在棧上相鄰的位....
圖4-7輸入流交叉示意圖??圖4-7給出了一種可能的情況:輸入中的第一段數(shù)據(jù)只對(duì)狀態(tài)S1有作用,??
分支圖?狀態(tài)樹(shù)??圖4-6分支圖與狀態(tài)樹(shù)的關(guān)系??事實(shí)上在建立狀態(tài)樹(shù)的過(guò)程中還存在另外一個(gè)問(wèn)題,考慮如圖4-7所示的一??種情況。??種子A?種子B?種子C????????MMH?X?mm???MOW?S?<NMt???)MM*?X?3MHC?*???NMM?9t?*?mm???....
本文編號(hào):3948356
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3948356.html