[发明专利]一种内存访问异常的检测方法及装置有效
申请号: | 201510086609.X | 申请日: | 2015-02-17 |
公开(公告)号: | CN104636256B | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 朱浩;王淑静;刘国兴;曹新平 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/52 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 访问 异常 检测 方法 装置 | ||
1.一种内存访问异常的检测方法,其特征在于,包括:
对源代码进行排查和词法分析、语法分析以及语义分析,生成控制流图、数据依赖图、第一列表文件和第二列表文件;所述第一列表文件中包括所述源代码内的静态数组占用的内存的静态内存信息,或所述源代码内的动态分配的内存的动态内存信息;所述第二列表文件中包括所述源代码内的进行动态内存分配库函数的函数信息;
根据所述控制流图构建所述源代码的全局函数调用图,根据所述全局函数调用图、所述第二列表文件和所述数据依赖图,对所述源代码进行动态内存分配的匹配性检测;
构建虚拟执行平台,根据所述第一列表文件、所述控制流图和所述数据依赖图提取虚拟执行路径,实现对动态内存分配造成的内存泄露以及程序运行时的内存访问越界的检测操作。
2.根据权利要求1所述的方法,其特征在于,所述对源代码进行排查和词法分析、语法分析以及语义分析,生成控制流图、数据依赖图、第一列表文件和第二列表文件,包括:
调用轻量级静态检测工具对源代码进行初步排查;
对所述源代码进行词法、语法分析,对所述源代码内的静态数组占用、动态申请的内存所占用的字节数、名称进行标记,生成第一列表文件,并对动态内存分配库函数所在的源文件及函数名称、调用参数进行标记,生成第二列表文件;
根据所述源代码的分支跳转和函数调用关系,将所述源代码切分为多个基本块,并分析每个基本块之间的跳转关系,根据所述跳转关系生成控制流图,并根据所述源代码的变量之间的数据依赖关系,生成数据依赖图。
3.根据权利要求1所述的方法,其特征在于,所述根据所述控制流图构建所述源代码的全局函数调用图,包括:
提取所述控制流图内的函数的内入口基本块、出口基本块,统计所述入口基本块的入度和所述出口基本块的出度,并合并所述入口基本块和所述出口基本块对应的节点,构建节点之间的连接关系,为每一个独立源程序生成一个函数调用图;
遍历第一函数调用图内存在出度且在所述第一函数调用图内无后继节点的节点,判断与第二函数调用图内的全局函数节点是否存在调用关系,如果存在,则添加从第一函数调用图到第二函数调用图的有向边;遍历第二函数调用图内存在出度且在所述第二函数调用图内无后继节点的节点,判断与第一函数调用图内的全局函数节点是否存在调用关系,如果存在,则添加从第二函数调用图到第一函数调用图的有向边;依次处理每个函数调用图,查找到所有节点的后续节点,并删除标准库函数的后续节点,生成全局函数调用图。
4.根据权利要求1所述的方法,其特征在于,所述根据所述全局函数调用图、所述第二列表文件和所述数据依赖图,对所述源代码进行动态内存分配的匹配性检测,包括:
根据所述第二列表文件,对所述全局函数调用图内的节点进行区分标记;
提取所述全局函数调用图内的入口函数节点,通过分析所述数据依赖图,向前追溯并提取与所述动态内存分配库函数存在数据依赖的前驱节点,删除其它节点;
将每个提取的节点在所述全局函数调用图中的前驱节点与后继节点重新建立连接关系,且保持逻辑序关系不变,生成精简函数调用图;
如果任意一个节点内存在针对同一变量的动态内存分配库函数,则向该节点添加自旋弧,并删除所述精简函数调用图内由于所述自旋弧出现自闭环的边,对所述源代码进行动态内存分配的匹配性检测。
5.根据权利要求1所述的方法,其特征在于,所述构建虚拟机平台,包括:
选择目标处理器平台,基于指令集功能特征,建立指令行为级模拟器;
建立所述指令行为级模拟器的过程中,针对条件判断类及分支跳转类指令进行行为级建模时,添加先进后出的堆栈结构;所述堆栈结构用于保存所述条件判断类及分支跳转类指令的内存地址、寄存器内的数据的逆状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510086609.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种送料盘
- 下一篇:基于改进网络协议的移动数据同步中间件的实现方法