首页> 外文会议>Static Analysis >Cleanness Checking of String Manipulations in C Programs via Integer Analysis
【24h】

Cleanness Checking of String Manipulations in C Programs via Integer Analysis

机译:通过整数分析来检查C程序中的字符串操作的整洁度

获取原文

摘要

All practical C programs use structures, arrays, and/or strings. At runtime, such objects are mapped into consecutive memory locations, hereafter referred to as buffers. Many software defects are caused by buffer overflow - unintentional access to memory outside the intended object. String manipulation is a major source of such defects. According to the FUZZ study, they are the cause of most UNIX failures. We present a new algorithm for statically detecting buffer overflow defects caused by string manipulations in C programs. In many programs, our algorithm is capable of precisely handling destructive memory updates, even in the presence of overlapping pointer variables which reference the same buffer at different offsets. Thus, our algorithm can uncover defects which go undetected by previous works. We reduce the problem of checking string manipulation to that of analyzing integer variables. A prototype of the algorithm has been implemented and applied to statically uncover defects in real C applications, i.e., errors which occur on some inputs to the program. The applications were selected without a priori knowledge of the number of string manipulation errors. A significant number of string manipulation errors were found in every application, further indicating the extensiveness of such errors. We are encouraged by the fact that our algorithm reports very few false alarms, i.e., warnings on errors that never occur at runtime.
机译:所有实用的C程序都使用结构,数组和/或字符串。在运行时,将此类对象映射到连续的内存位置,以下称为缓冲区。许多软件缺陷是由缓冲区溢出引起的-意外访问了预期对象之外的内存。字符串操作是此类缺陷的主要来源。根据FUZZ的研究,它们是大多数UNIX故障的原因。我们提出了一种新算法,用于静态检测由C程序中的字符串操作引起的缓冲区溢出缺陷。在许多程序中,即使存在重叠的指针变量(以不同的偏移量引用同一缓冲区),我们的算法也能够精确地处理破坏性的内存更新。因此,我们的算法可以发现以前的工作无法发现的缺陷。我们将检查字符串操作的问题减少到分析整数变量的问题。已经实现了算法的原型,并将其应用于静态发现实际C应用程序中的缺陷,即,在程序的某些输入上发生的错误。选择应用程序时,无需事先了解字符串操作错误的数量。在每个应用程序中都发现了大量的字符串操作错误,这进一步表明了此类错误的广泛性。我们的算法报告很少的错误警报,即对运行时从未发生的错误的警告,这一事实使我们感到鼓舞。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号