找回密码
 注册
关于网站域名变更的通知
查看: 386|回复: 1
打印 上一主题 下一主题

[毕业设计] 基于值依赖分析的空指针解引用检测

[复制链接]
  • TA的每日心情
    开心
    2020-9-8 15:12
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-1-12 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    摘 要: 本文提出了一种基于程序值依赖分析的、路径敏感的空指针解引用检测方法.该方法通过结合数据流 分析中的到达定值分析、区间分析及指向分析创建了值依赖分析图,该图刻画了可能产生空指针语句到其解引用语句 的值依赖关系.该图中的边采用守卫标注,即描述了相邻点之间的到达条件.为了降低误报率,本文同时提出了一种需 求驱动的必然别名算法.由本文所述方法实现的工具展示了良好的实验效果,在 10个 SPEC2000项目中发现了 70余 个空指针解引用缺陷,误报率仅为 6%左右.
    / ~: M: K' m9 Z2 ?  L! w! p( J

    3 C0 N) q# |3 b7 C% W. c+ G& P关键词: 程序分析;静态缺陷检测;空指针解引用检测;需求驱动别名分析+ L9 h( }5 ~0 G  s9 |

    ( w7 _$ n' p( e, v
    9 w  M  D& O; k& L: [* y5 h0 ^" g
    ) i6 B% u4 V$ w* {4 o" z5 Q: P
    空指针解引用已经成为程序最危险的缺陷之一[1]. 空指针解引用缺陷并不容易检测,原因有三:(1)尽管在 大多数情况下,对于解引用会有非空保护存在,但保护 可能与解引用的指针在不同函数中.分析器将会判断从 指针赋值点到解引用点的所有可能路径中是否都包含 保护.(2)空指针保护中的指针变量与解引用的指针并 不是同一指针.那么保护能否生效就取决于这两个指针 是否为必然别名关系.但目前必然别名算法复杂度较 高.(3)空指针解引用的前提条件是在可能为空指针与 其解引用在同一定义使用链中.C语言中有以下两种情 况可能会产生空指针定义点:(a)动态内存分配,如 malloc,calloc函数等.如果系统没有足够的堆内存将返 回空指针.(b)对指针变量赋空.为了确定上述节点与 解引用在执行时是否可达,通用的方法采用定义使用 链,但标准数据流分析并不是跨函数的且不是路径敏感 的,这会导致相当数量的误报.! o: C/ ~" d* A/ A

    8 {, l# u( Z6 p) D

    3 N/ t* W4 K9 _7 T  q' s" o/ m附件下载:
    游客,如果您要查看本帖隐藏内容请回复

    2 l& {' P% `: M& B; W* u

    该用户从未签到

    2#
    发表于 2021-1-12 13:10 | 只看该作者
    空指针解引用检测
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-20 23:49 , Processed in 0.109375 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表