[发明专利]基于变量关联规则的缓冲区溢出检测方法有效
申请号: | 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.vipzhuanli.com/pat/books/202010012878.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:追溯码管理系统
- 下一篇:一种基于温度在线监测的高质量激光骨加工方法