指针逻辑的扩展应用.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优秀毕业论文,完美PDF格式,可在线免费浏览全文和下载,支持复制编辑,可为大学生本专业本院系本科专科大专和研究生相关类学生提供毕业论文范文范例指导,也可为要代写发表职称论文提供参考!!!

摘要 摘要 在信息时代,计算机软件技术得到了广泛的应用。然而,随着软件功能越 来越强大,软件本身也变得愈发复杂,软件的可靠性和安全性越来越难以得到 保障。在通常使用的C,C++或者Java语言中,为了使程序能够高效运行,指 针或者引用在程序中大量使用。但是指针的灵活使用很容易引起错误,比如空 指针或者悬空指针引用,内存泄露等。这些错误不仅难以发现,如果一旦发生 可能导致系统崩溃。而且,这些程序漏洞可能被黑客加以利用。另一方面,指 针错误之所以难以被发现,是因为不同指针之间存在可能的别名关系,即是两 个语法上不同的名字在运行的时候可能引用同一个内存地址。修改一个名字对 应的值,别的名字所对应的值可能也会随之改变,给程序调试和程序推理带来 很大的困难。因此,带有指针程序的安全性在软件安全研究中占有重要位置。 由于指针程序安全研究具有很大的挑战性,工业界常用的软件测试方法无 法完全保证错误不会发生,因而指针程序性质证明方法成为当前研究热点。 而现有的证明方法,要么需要显式引入堆或栈等高级语言语法之外的概念来 刻画程序的运行状态,要么生成的验证条件太过于复杂而不能够自动证明, 而需要程序员手工证明。堆和栈的描述需要知道确切的内存地址,但是具有 同构结构的堆是不可以区分的。而无存储模型方法则克服了上述所有困难, 不需要显式引入堆栈概念,而其良好性质保证可以被自动机实现,因而证明 可以自动。指针逻辑在本质上是基于无存储模型方法,但是当前还具有很多 不足。当前指针逻辑缺少抽象模型描述,导致了指针逻辑规则都是由算法风 格函数辅助构成,这使得难以看清楚指针逻辑本质。而且,当前指针逻辑支 持的指针特征较少,虽然断言语言支持符号访问路径,用户自定义谓词和描 (Pointer 述性谓词,但是其实现PLCC(V1) LogicCertifyingCompiler,简称 为PLCC,V1表示version1,后面的V2表示Version2)的推理并不支持。最重 要的是,PLCC(V1)生成的验证条件并不能自动证明,而需要程序员通过交 互式定理证明器COQ来完成证明。 · 基于上述考虑,本文在访问路径相等概念上提出一个无存储模型,研究了 该模型的各种性质,例如右规则性,前缀闭包性等。同时,本文专注于无存储 模型上的指针逻辑断言的良型性,继而重新阐述了指针逻辑推理规则。为了 使指针逻辑能够验证更大范围的程序,本文提出了针对指针逻辑的框架规则 (frame rule)和函数调用规则。此外,本文在原有指针逻辑基础上,扩展源语 言和断言语言来支持指针算术,然后在方便模块化实现前提下扩展指针逻辑规 则来保障指针算术的安全。原来指针逻辑中的集合是无名集合,而无名集合不 能处理含有某些情况下的函数调用的程序,因而本文提出带标签的集合可以适 摘要 用于任意函数调用的验证。在实现方面,本文根据无存储模型性质设计了实现 指针逻辑规则的自动推理算法,并提出了展开机制来处理断言语言支持用户自 定义谓词和描述性谓词。最后,本文工作均在PLCC(V2)的前端中实现。 本文的主要特色和贡献为: ·本文提出了一个比己存在无存储模型更有效更简洁的无存储模型。此模型 不仅继承了已存在无存储模型的优点,而且克服了其冗余多,表示代价高 的缺点。 ·本文完善了指针逻辑,在抽象模型上以一种简单更为容易理解的方式重新 阐述指针逻辑推理规则。由于抽象模型没有传统无存储模型的冗余,花费 et 代价大等缺点,因而本文可以发现以前指针逻辑(Chena1.,2007ab)规 则中具有一个漏洞:以前指针逻辑所定义的no—leak函数在某些时候会将某 些正确程序误认为会出现内存错误而拒绝。本文给出修正此漏洞的规则, 同时这也反映了建立抽象模型的必要性,因为以前的指针逻辑规则是基于 一些复杂的算法风格的辅助函数,并且导致难以看清楚指针逻辑的本质。 ·本文扩展了指针逻辑。相比扩展前的指针逻辑,本文扩展了指针逻辑在局 部推理的规则、扩展支持在动态数组上的指针算术以及利用带标签的

文档评论(0)

ygeorcgdw + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档