[发明专利]一种检测C代码空指针引用的方法及系统有效
申请号: | 201410160140.5 | 申请日: | 2014-04-21 |
公开(公告)号: | CN103955426B | 公开(公告)日: | 2017-08-29 |
发明(设计)人: | 孙毓忠;陈英超;朱洋民 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律诚同业知识产权代理有限公司11006 | 代理人: | 祁建国,梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种检测C代码空指针引用的方法及系统,本发明涉及计算机信息安全领域中的程序代码检测领域。该方法包括简化该C代码,得到目标代码,根据该目标代码通过语义分析获取该目标代码的语法树结构;获取待检测的函数,遍历该语法树结构,查找与该函数相对应的语法树结构,遍历该函数的语法树结构,在判断语句或循环语句的节点之前插入动态检测过程的语法树结构,得到新语法树结构;根据该新语法树结构,得到最终代码,编译并执行该最终代码,若该最终代码执行异常,则输出该空指针的位置。本发明可以达到方便、快速检测C代码中可能存在的空指针引用缺陷。 | ||
搜索关键词: | 一种 检测 代码 指针 引用 方法 系统 | ||
【主权项】:
一种检测C代码空指针引用的方法,其特征在于,包括:步骤1,简化该C代码,得到目标代码,根据该目标代码通过语义分析获取该目标代码的语法树结构,其中该步骤1还包括,将该C代码中的判断语句统一为if else语句,将循环语句统一为while语句;步骤2,获取待检测的函数,遍历该语法树结构,查找与该函数相对应的语法树结构,遍历该函数的语法树结构,在判断语句或循环语句的节点之前插入动态检测过程的语法树结构,得到新语法树结构;步骤3,根据该新语法树结构,得到最终代码,编译并执行该最终代码,若该最终代码执行异常,则输出该空指针的位置;步骤4,根据步骤1‑3生成检测代码,并将该检测代码嵌入待检测的C代码中;其中步骤2中该动态检测过程的语法树结构,用于使后续该判断语句或该循环语句中的条件表达式产生真、假两种约束条件,并具体采用穷举法或调用Z3定理证明器分别为该两种约束条件赋值,生成相应真、假两种赋值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410160140.5/,转载请声明来源钻瓜专利网。