[發(fā)明專利]一種基于狀態(tài)的路徑敏感的符號化函數(shù)摘要算法有效
| 申請?zhí)枺?/td> | 201710370313.X | 申請日: | 2017-05-23 |
| 公開(公告)號: | CN107193742B | 公開(公告)日: | 2020-09-04 |
| 發(fā)明(設(shè)計)人: | 王曉斌;屈鴻;汪一文;王留帥;符明晟;楊林川;季江州 | 申請(專利權(quán))人: | 電子科技大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 成都弘毅天承知識產(chǎn)權(quán)代理有限公司 51230 | 代理人: | 李春芳 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 狀態(tài) 路徑 敏感 符號化 函數(shù) 摘要 算法 | ||
1.一種基于狀態(tài)的路徑敏感的符號化函數(shù)摘要算法,其特征在于,包括以下步驟:
步驟(1)、構(gòu)建編譯單元的函數(shù)調(diào)用圖,然后按照拓?fù)湫驅(qū)瘮?shù)調(diào)用圖中的函數(shù)進(jìn)行基于符號執(zhí)行技術(shù)的上下文無關(guān)的過程內(nèi)分析;
步驟(2)、在過程內(nèi)分析過程中,對出現(xiàn)的漏洞進(jìn)行報錯,對于依賴于上下文環(huán)境確定的漏洞則推遲到函數(shù)摘要在函數(shù)調(diào)用點(diǎn)實(shí)例化和應(yīng)用時再進(jìn)行選擇地報錯;
步驟(3)、在過程內(nèi)分析過程中,對于函數(shù)調(diào)用語句,首先判斷是否存在被調(diào)用函數(shù)的函數(shù)摘要,如果不存在,則對被調(diào)用函數(shù)進(jìn)行單獨(dú)的過程內(nèi)分析,收集被調(diào)用函數(shù)的函數(shù)摘要信息;
步驟(4)、在過程內(nèi)分析中,對于函數(shù)調(diào)用語句,如果存在被調(diào)用函數(shù)的函數(shù)摘要,則在當(dāng)前函數(shù)調(diào)用點(diǎn)使用上下文環(huán)境的信息對函數(shù)摘要進(jìn)行實(shí)例化;
步驟(5)、符號化函數(shù)摘要實(shí)例化以后,收集函數(shù)摘要中各程序狀態(tài)中對上下文環(huán)境副作用的信息,將這些副作用應(yīng)用到上下文環(huán)境中,在函數(shù)摘要應(yīng)用過程中對延遲報錯信息進(jìn)行檢查,選擇地對出現(xiàn)的漏洞進(jìn)行報錯;
步驟(6)、在過程內(nèi)分析中,面對當(dāng)前函數(shù)返回語句,收集當(dāng)前符號化的程序狀態(tài)作為當(dāng)前函數(shù)的摘要信息。
2.根據(jù)權(quán)利要求1所述的一種基于狀態(tài)的路徑敏感的符號化函數(shù)摘要算法,其特征在于,所述的步驟(1),包括以下步驟:
步驟(11)、使用深度優(yōu)先遍歷法構(gòu)建編譯單元的函數(shù)調(diào)用圖,在構(gòu)建函數(shù)調(diào)用圖過程中,忽略函數(shù)指針調(diào)用、C++多態(tài)調(diào)用以及遞歸調(diào)用;
步驟(12)、按照拓?fù)湫驅(qū)瘮?shù)調(diào)用圖中的函數(shù)進(jìn)行上下文無關(guān)的過程內(nèi)分析。
3.根據(jù)權(quán)利要求2所述的一種基于狀態(tài)的路徑敏感的符號化函數(shù)摘要算法,其特征在于,所述的步驟(2),包括以下步驟:
步驟(21)、過程內(nèi)分析首先構(gòu)建函數(shù)的控制流圖,然后使用隊列算法對控制流圖中的元素進(jìn)行符號執(zhí)行,對函數(shù)進(jìn)行上下文無關(guān)的過程內(nèi)分析;
步驟(22)、在過程內(nèi)分析過程中如果需要報錯則直接報錯,對于依賴于上下文環(huán)境確定的報錯信息,則將其存儲到程序狀態(tài)中,延遲至函數(shù)摘要實(shí)例化和函數(shù)摘要應(yīng)用時選擇地報錯;
步驟(23)、基于狀態(tài)的路徑敏感的符號化函數(shù)摘要φf定義為一組程序狀態(tài)Sp的析取式,其中程序狀態(tài)Sp是沿著可達(dá)路徑p在符號執(zhí)行完成之后所得到的,程序狀態(tài)Sp中含有能夠達(dá)到該程序狀態(tài)Sp路徑p所需要的約束條件Condp;
步驟(24)、程序狀態(tài)Sp中約束條件Condp表示為一系列謂詞的合取式,約束條件Condp用于在應(yīng)用函數(shù)摘要時,判斷當(dāng)前程序狀態(tài)是否是可行。
4.根據(jù)權(quán)利要求1所述的一種基于狀態(tài)的路徑敏感的符號化函數(shù)摘要算法,其特征在于,所述步驟(3),包括以下步驟:
步驟(31)、函數(shù)及其函數(shù)摘要使用map來組織,使用Itanium C++ABI中的名稱修飾規(guī)則對函數(shù)名進(jìn)行修飾,修飾過后獲得符號名并作為map的鍵值;
步驟(32)、在過程內(nèi)分析的過程中,如果遇到函數(shù)調(diào)用,則首先獲取函數(shù)名,然后對函數(shù)名進(jìn)行修飾,然后使用修飾過后的符號名在收集好的函數(shù)摘要map中查找,如果存在則進(jìn)行步驟(4);
步驟(33)、如果不存在該函數(shù)的函數(shù)摘要,則創(chuàng)建一個新的符號執(zhí)行引擎實(shí)例,使用該符號執(zhí)行引擎實(shí)例對該函數(shù)進(jìn)行上下文無關(guān)的過程內(nèi)分析。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于電子科技大學(xué),未經(jīng)電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710370313.X/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 路徑搜索系統(tǒng)、路徑搜索終端和路徑搜索方法
- 路徑計算方法、路徑計算單元及路徑計算系統(tǒng)
- 路徑顯示裝置、路徑顯示方法、路徑顯示程序及路徑顯示系統(tǒng)
- 路徑引導(dǎo)裝置、路徑引導(dǎo)方法及路徑引導(dǎo)程序
- 路徑搜索系統(tǒng)、路徑搜索方法及路徑搜索程序
- 路徑引導(dǎo)裝置、路徑引導(dǎo)方法以及路徑引導(dǎo)程序
- 路徑搜索系統(tǒng)、路徑搜索方法以及路徑搜索程序
- 路徑搜索裝置、路徑搜索系統(tǒng)及路徑搜索方法
- 路徑輸出方法、路徑輸出系統(tǒng)和路徑輸出程序
- 路徑評價裝置、路徑評價系統(tǒng)、路徑評價方法以及路徑評價程序





