基于符号执行设备驱动无设备测试系统研究.pdfVIP

基于符号执行设备驱动无设备测试系统研究.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

SymDrive:无需设备的驱动程序测试

MatthewJ.Renzelmann,AsimKadav和

MichaelM.Swift计算机科学系,威斯康星大学麦迪逊分校

{}

mjr,kadav,swift@

模式。

设备驱动程序的开发和测试是一项复杂且容易出错Coverity[17]和的静态驱动验证工具

的工作。例如,测试错误处理代码需要模拟来自设[31]等静态分析工具可以快速发现许多bug。然而,这

些工具被设计用于对大量代码进行快速、相对浅层的分析,

备的错误输入。单个驱动程序可能支持数十种设备,

因此仅对某些代码特性(例如指针)的行为进行近似处理。

而开发人员可能无法其中任何一种设备。因此,此外,它们难以检测驱动程序多次调用的bug。因此,

许多Linux驱动程序补丁都包含注释“仅编译测试”。静态分析无法覆盖驱动程序行为的许多重要方面。

SymDrive是一个可在没有实际设备的情况下测试

Linux和FreeBSD驱动程序的系统。该系统使用符号我们通过使用符号执行来测试设备驱动程序以应对这

些。这种方法可以在所有可能的设备输入下执行驱动

执行技术以消除对硬件的需求,并在以下面了

程序代码,允许在没有设备的情况下运行驱动程序代码,

以往的工具。首先,SymDrive利用静态分析和源到源

并能更全面地覆盖驱动程序代码,包括错误处理代码。

的转换,显著减少了测试新驱动所需的工作量。其次,

2

DDT[26]和SE[14,15]先前也将符号执行应用于驱动程

SymDrive的检查器是普通的C代码,并在内核中执序测试,但这些系统在测试新的驱动程序类别时,甚至在

行,在那里它们可以完全内核和驱动的状态。最后,许多情况下测试特定的新驱动程序时,都需要开发人员投

SymDrive了一个执行工具,用于识别补丁如何入大量精力。

改变对设备的I/O操作,并可用于比较不同的设备驱动

本文介绍了SymDrive,一个无需设备即可测试

实现。在对21个Linux驱动和5个FreeBSD驱动的Linux和FreeBSD驱动程序的系统。SymDrive使用静

应用测试中,我们发现了39个错误。态分析识别驱动程序代码的关键特性,例如点函数和

1引言循环。通过这种分析,SymDrive生成一个经过插桩的驱

动程序,并带有对测试代码的调用,从而使得许多驱动程

设备驱动程序作系统的可靠性至关重要,但它们的

序可以在无需修改的情况下被测试。对于其余驱动程序,

测试和调试却十分。它们运行在内核模式下,这使

只需添加少量注解,以帮助在SymDrive识别的位置进行

得许多适用于用户模式代码的运行时程序分析工具(如

文档评论(0)

136****1820 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档