[发明专利]一种面向安全检查的代码静态分析方法有效
申请号: | 201510347630.0 | 申请日: | 2015-06-19 |
公开(公告)号: | CN104899147B | 公开(公告)日: | 2017-11-28 |
发明(设计)人: | 胡昌振;单纯;吴露霞;于泽群;马锐 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/56 |
代理公司: | 北京理工大学专利中心11120 | 代理人: | 李微微,仇蕾安 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向安全检查的代码静态分析方法,该方法首先生成程序安全检查的中间表示如控制流图和程序调用图等,获得程序的函数依赖关系;若程序调用图中存在递归环,则意味着函数依赖中存在递归。其次得到程序调用图中各依赖的权值;最后根据依赖重要性即权值决定要解除的依赖关系,提高程序漏洞的检测效率的同时,尽量降低解除递归函数依赖造成的检测损失。 | ||
搜索关键词: | 一种 面向 安全检查 代码 静态 分析 方法 | ||
【主权项】:
一种面向安全检查的代码静态分析方法,其特征在于,包括如下步骤:步骤1、对待分析的程序代码进行词法分析,即将程序代码中的字符流分割为独立的单词;步骤2、将步骤1分割得到的各个独立的单词进行语法分析,得到抽象语法树;步骤3、基于步骤2的抽象语法树,得到控制流图;步骤4、根据步骤3得到的所述控制流程图,得到函数调用图;步骤5、对程序代码的函数依赖关系进行解除,具体为:S51、计算所述函数调用图中两两函数之间的调用次数;S52、在所述函数调用图的基础上,针对任意两个有调用关系的函数,将两者之间的调用次数作为权值并赋值给该两个函数之间的条件调用边,得到带权依赖关系的函数调用图;S53、查找所述带权依赖关系的函数调用图中的递归环,针对任意一个递归环X,检测与该递归环X没有共用条件调用边的递归环,将检测到的递归环中权值最小的条件调用边解除,遍历函数调用图中所有的递归环,得到解除函数依赖关系的函数调用图;步骤6、依照所述步骤5得到的解除了函数依赖关系的函数调用图,使用静态分析方法对程序代码进行安全缺陷的检测,并将检测结果以文本形式存储并输出,供程序员查看。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510347630.0/,转载请声明来源钻瓜专利网。
- 上一篇:固态硬盘的写入方法
- 下一篇:电源供应模块及数字影像输出装置