[发明专利]一种检测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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top