当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于指针解引用插桩的C/C++释放后重引用动态检测方法技术

技术编号:43548581 阅读:22 留言:0更新日期:2024-12-03 12:30
本发明专利技术公开了一种基于指针解引用插桩的C/C++释放后重引用动态检测方法,在执行软件测试时,传统的Address Sanitizer无法检测到地址合法的逻辑错误,本发明专利技术通过数据流分析和对GetElementPtr指令进行插桩,实现对指针重使用内存错误的动态检测。

【技术实现步骤摘要】

本专利技术属于网络安全领域,尤其涉及一种基于指针解引用插桩的c/c++释放后重引用动态检测方法。


技术介绍

1、2011年,google的工程师首次提出了address sanitizer(以下简称asan),用以快速地进行内存错误检测,其工作原理是在编译时插入额外的代码段来跟踪内存的分配和访问,从而检测出多种内存错误。与此前的工具相比,asan具有运行效率高、检测范围广、使用方便等特点。在错误检测方面,asan可以精确定位异常的位置,并给出详细的错误报告。历经十余年的发展,asan的功能不断增强,现已成为常用的内存调试与代码缺陷检测工具。

2、然而,asan在设计上并非完备,对于以下情况可能出现漏报:缓冲区非连续越界访问,即跨越了redzone访问另一个缓冲区;同一个地址被重复申请,导致uaf指针指向的区域是合法地址,此时无法检测到错误。同时,业界已有的改进fuzzan虽然实现了上述漏报的检测,却带来了o(log n)的访问开销。

3、因此,设计并实现一种内存检测机制,在保留asan高效性(o(1)的访问开销)的基础上解决其漏检测本文档来自技高网...

【技术保护点】

1.一种基于指针解引用插桩的C/C++释放后重引用动态检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于指针解引用插桩的C/C++释放后重引用动态检测方法,其特征在于,步骤(2)中,所述提取得到集合Cf和集合Cd的参数的依赖集Vd和Vf,具体包括以下子步骤:

3.根据权利要求2所述的一种基于指针解引用插桩的C/C++释放后重引用动态检测方法,其特征在于,步骤(2)中,所述提取得到集合Cm的参数的传递集Vm,具体包括以下子步骤:

4.根据权利要求3所述的一种基于指针解引用插桩的C/C++释放后重引用动态检测方法,其特征在于,步骤(3)...

【技术特征摘要】

1.一种基于指针解引用插桩的c/c++释放后重引用动态检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于指针解引用插桩的c/c++释放后重引用动态检测方法,其特征在于,步骤(2)中,所述提取得到集合cf和集合cd的参数的依赖集vd和vf,具体包括以下子步骤:

3.根据权利要求2所述的一种基于指针解引用插桩的c/c++释放后重引用动态检测方法,其特征在于,步骤(2)中,所述提取得到集合cm的参数的传递集vm,具体包括以下子步骤:

4.根据权利要求3所述的一种基于指针解引用插桩的c/c++释放后重引用动态检测方法,其特征在于,步骤(3)中,对集合cm、集合cf和集合cd...

【专利技术属性】
技术研发人员:张浩然陶逸铭吴春明汪昌兴魏之千边振昆刘智扬买买江·克然木
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1