[发明专利]一种内存访问溢出的检测方法及装置有效
申请号: | 201510072058.1 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104573503B | 公开(公告)日: | 2018-04-27 |
发明(设计)人: | 朱浩 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本申请公开了一种内存访问溢出的检测方法及装置,对源代码进行预处理、词法分析、语法分析以及语义分析,生成控制流图、数据依赖图以及抽象语义树;针对不同的检测场景建立多种检测模型,并根据多种检测模型分析控制流图、数据依赖图以及抽象语义树,进行表达式迭代以及状态空间遍历,输出检测结果;根据检测结果判断源代码中是否存在内存访问溢出,并对检测出的内存访问溢出进行反馈输出。这样,通过追溯源代码的控制流图、数据依赖图以及抽象语义树,定义多种检测模型,实现表达式迭代以及状态机分析,可以充分挖掘源代码中存在的内存访问溢出,并且可以减少遍历状态空间所花费的空间和时间代价,减少对于内存访问溢出的漏报和误报。 | ||
搜索关键词: | 一种 内存 访问 溢出 检测 方法 装置 | ||
【主权项】:
一种内存访问溢出的检测方法,其特征在于,包括:对源代码进行预处理和词法分析、语法分析以及语义分析,生成控制流图、数据依赖图以及抽象语义树;针对不同的检测场景建立多种检测模型,并根据多种检测模型分析所述控制流图、数据依赖图以及抽象语义树,进行表达式迭代以及状态机分析,输出检测结果;根据所述检测结果判断所述源代码中是否存在内存访问溢出,并对检测出的内存访问溢出进行反馈输出;所述针对不同的检测场景建立多种检测模型,并根据多种检测模型分析所述控制流图、数据依赖图以及抽象语义树,进行表达式迭代以及状态机分析,包括:针对不同的检测场景定义多种检测模型,所述检测模型包括:指针操作模型、数组访问模型、标准库函数模型和循环体与抽象迭代模型;对所述控制流图和所述数据依赖图进行剪裁,沿所述控制流图和所述数据依赖图中的路径将常量节点依次向后继节点传递,并计算常量表达式,通过操作符连接并迭代内存访问操作的输入条件,进行表达式迭代并得到所述输入条件的迭代结果;扫描所述抽象语义树的结构,对所述抽象语义树中的指针和数组变量的声明、赋值、访问以及标准库函数的节点进行关键词标记,并查找所述抽象语义树中与所述多种检测模型中相匹配的节点以及分支;建立状态机,并分析内存访问操作和所述输入条件的迭代结果,判断当前的内存访问操作是否在全量环境下有效。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510072058.1/,转载请声明来源钻瓜专利网。
- 上一篇:微机安全执行方法
- 下一篇:一种清除密码锁的方法及终端