系统还原技术研究和应用.docVIP

  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文档。上传文档
查看更多
系统还原技术研究和应用

系统还原技术研究和应用摘要:随着互联网的日益普及,计算机用户在享受互联网所带来的种种便利外,也面临着各种各样的网络安全威胁,当前互联网上各种恶意软件、木马、病毒肆虐,一不小心系统就“中招”,系统安全受到越来越多的重视,几乎每台计算机必装一套防病毒软件。除了防病毒软件以外,市场上也出现了一批还原软件如影子系统、还原精灵等,这些还原软件也提供了另外一种保护方式使得计算机系统不受病毒影响,受到网吧、学校机房的广泛欢迎。本文阐述这些还原软件的工作原理并对其中的关键点进行技术分析。 关键词:系统还原;存储栈;过滤驱动 中图分类号:F224.33 文献标识码:A 1 系统还原技术原理 所谓还原技术,就是指记录下以前某个时刻计算机系统的状态,并提供一种“回滚”手段使得计算机系统又能够回到那个时刻的状态,其间任何对系统的改动,如文件修改,注册表修改等全部消失,这样只要计算机用户能保证系统在之前的状态是“干净”的、可信赖的,利用这种“回滚”机制整个系统就可以一直保持“干净”状态。这里面最核心的技术是记录原先的状态和截获并存储新的改动,这就涉及到对操作系统I/O流程的干预。 图1是计算机操作系统中存储栈(storage stack)关键组件的层次图,应用程序打开文件进行读写,I/O子系统则负责把用户的文件读写请求发给文件系统驱动,然后文件系统驱动把文件读写请求转化成块(block)读写请求,并把块读写请求转发给卷(例如:在Windows操作系统中卷指的是C盘、D盘、E盘等)驱动程序,卷驱动修正一下块的偏移位置然后转发给磁盘(Windows磁盘管理中磁盘0、磁盘1、磁盘2等)驱动,磁盘驱动最后把该请求发到真实磁盘硬件上进行真正的处理(主要是中断处理、读写寄存器等)。所有的I/O(最终体现为对硬盘数据块内容的修改)都在这个存储栈上流动,因此尽管不同的还原软件有不同的实现方法,但是一定位于这个存储栈上的某个位置以监视数据块的改变。以WindowsXP自带的系统还原为例,其还原功能的核心组件实际上就是一个卷过滤驱动程序(又称卷影拷贝,volsnap.sys),位于文件系统驱动与卷驱动之间,这样,在卷一级数据块的修改会先被卷过滤驱动程序截获,卷过滤驱动然后就可以做些处理使得日后能够还原。图2描述了基于卷过滤驱动的还原软件的详细处理流程。 如图2所示,假设用户文件对应卷上的三个数据块a、b和c,然后用户启动了系统还原功能建立了一个还原点,那么卷影拷贝驱动就开始工作,接着用户修改了这个文件,导致对应的b数据块遭到修改,由于卷影拷贝驱动在卷驱动上方,对b数据块的修改被卷影拷贝驱动先截获,卷影拷贝驱动把改动写入其内部维护的“改动存储池”(用b’’数据块代表),接着登记一个映射记录,然后返回成功给应用程序。假设以后应用程序需要读取数据块b的内容了,读取请求又被卷影拷贝驱动先于卷驱动前截获,卷影拷贝驱动查找映射记录表,获知b块对应着改动存储池中的b’’块,于是卷影拷贝驱动直接读取b’’块的内容返回给上层应用程序;如果应用程序读取的不是b块而是c块,同样块读取请求被卷影拷贝驱动先得到,这次卷影拷贝驱动在映射记录表中查找不到跟c块对应的记录,于是卷影拷贝驱动直接下发请求到下层卷驱动去读取c块内容;同理,卷影拷贝驱动也是这样处理对其他文件数据块的改变;如果之后用户想还原整个卷了,系统还原程序只需要丢弃整个“改动存储池”,删除映射记录表就可以了。类似的,基于磁盘的还原软件也有同样的实现原理,只不过稍微底层一些,它们把自己做成一个磁盘过滤驱动,位于卷驱动和磁盘驱动之间,只捕获磁盘级别的数据块修改;用户创建还原点后,任何对磁盘数据块的修改都会被重定向到内部“改动存储池”中,并且建立起数据块的映射关系;用户执行还原操作后,也是删除映射记录表,撤销“改动存储池”。 2 改动存储池的实现 以上描述的是各类还原软件如何在I/O路径上截获数据块的修改;对于“改动存储池”的实现,不同的还原软件也有不同的设计,最简单的莫过于在原来磁盘上划分出一块区域来作为独立存储改动后的数据块,比如可以把硬盘的最末尾一段未分配的存储空间拿出来作为存储池,这样的设计好处是实现简单,缺点是局限性比较大,比如存储池大小缺乏伸缩性,划分出来的硬盘区域容量决定了最大可以容纳多少变化的数据块;又比如无法适用于用户的硬盘已经被完全分区过了的情况;复杂一点的设计是把一个或若干文件作为“改动存储池”,缺点是实现变得复杂了,但存储池伸缩性很大,可动态适应各种需求,其原理是还原软件在创立一个还原点的时候也创建一个大文件来对应这个还原点,并且通过文件系统接口获知了这个大文件在卷(基于卷的还原技术)或者磁盘(基于磁盘的还原技术)上的分配位置,以Windows平台上的NTFS文件系统为例,NTFS文件系统

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档