[發明專利]基于變量關聯規則的緩沖區溢出檢測方法有效
| 申請號: | 202010012878.2 | 申請日: | 2020-01-06 |
| 公開(公告)號: | CN111382427B | 公開(公告)日: | 2022-04-26 |
| 發明(設計)人: | 李煉;李廣威;張馨元;高琳 | 申請(專利權)人: | 寧波中科天齊信息技術有限公司 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52 |
| 代理公司: | 北京君恒知識產權代理有限公司 11466 | 代理人: | 余威 |
| 地址: | 315000 浙江省寧波*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 變量 關聯 規則 緩沖區 溢出 檢測 方法 | ||
1.基于變量關聯規則的緩沖區溢出檢測方法,其特征在于,包括以下幾個步驟:
S1:掃描程序代碼;
S2:在步驟S1中掃描到的程序代碼中通過預定義的關聯規則識別并傳播緩沖區關聯三元組集合,關聯三元組O,x,f記錄緩沖區對象O和該緩沖區的容量f(x),其中f是變量x和容量的關聯函數,每個所述關聯三元組O,x,f形成關聯三元組集合;
S2.1:為所有掃描到的緩沖區分配語句O=malloc(f(x))通過預定義的關聯規則[MALLOC]生成一個相應的關聯三元組O,x,f;
若所述變量x為結構體域變量,則通過關聯規則[FD MALLOC]生成涉及結構體的關聯三元組T.d1,T.d2,f,
O=malloc(f(T(s→d2)))
其中T(s→d)表示d是指向結構體類型T的指針s的一個域;
S2.2:查找將已知緩沖區關聯關系存儲到結構體中的代碼片段;所述代碼片段由兩個連續的存儲語句組成,分別將一個指針和一個整型數據存入同一變量的兩個域變量中,若所述的指針指向一個緩沖區O,而所述的整型數據是變量x的函數g,并且存在由O和x組成的已識別的關聯三元組O,x,f,則識別出一個傳播到結構體的緩沖區關聯關系,并通過關聯規則[STST]生成相應的關聯三元組T.d1,T.d2,f·g-1;d1表示結構體類型T的域d1;O是指緩沖區;
O,x,f
O→p;store p,T(s→d1)
S2.3:查找通過函數調用以函數參數的方式傳入函數關聯關系的代碼片段,所述代碼片段為一個通過函數參數傳入兩個及兩個以上參數的函數調用語句,如果函數F的調用語句的第m個實參pm是指向一個緩沖區O,第n個實參pn是一個整型變量x的表達式g(x),并且存在由O和x組成的已識別的關聯三元組O,x,f,則識別出一個通過函數參數的緩沖區關聯關系傳播,并通過關聯規則[CALL]生成相應的關聯三元組F.pm,F.pn,f·g-1,其中F.pn代表函數F的第n個形參;
S3:收集在步驟S1中掃描到的程序代碼中的所有緩沖區訪問點O,offset(x),其中offset(x)是對緩沖區O的訪問偏移量,且是變量x的函數;
在步驟S2中所述關聯三元組集合中搜索O,x,f,若offset(x)≥f(x),則檢測出緩沖區溢出。
2.根據權利要求1所述的基于變量關聯規則的緩沖區溢出檢測方法,其特征在于,在步驟S2中所述的預定義的關聯規則包括和
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于寧波中科天齊信息技術有限公司,未經寧波中科天齊信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010012878.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:追溯碼管理系統
- 下一篇:一種基于溫度在線監測的高質量激光骨加工方法





