穿透还原系统实现的关键技术(2)

来源:网络(转载) 作者:康金翠 发表于:2011-07-18 09:48  点击:
【关健词】还原系统 穿透 文件系统过滤层
4)目录区DIR(Directory)即根目录区的简写,在FAT32格式中,根目录区的位置可以在分区中的任意位置,其起始位置是由引导扇区给出的。单有FAT表还不能确定文件在磁盘中的具体位置,只有FAT表和DIR区配合使用,才能

  4)目录区DIR(Directory)即根目录区的简写,在FAT32格式中,根目录区的位置可以在分区中的任意位置,其起始位置是由引导扇区给出的。单有FAT表还不能确定文件在磁盘中的具体位置,只有FAT表和DIR区配合使用,才能准确定位文件的确切位置。DIR记录着每个文件(目录)的起始单元、文件的属性等,操作系统在读写文件时,根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置。定位文件位置时,操作系统根据FDT中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。
  5)数据区data在DIR区之后,是存储数据的地方,它占有硬盘的大部分区域。
  将物理磁盘打开,确定系统文件在磁盘的地址。从硬盘的0磁道0 柱面1扇区处得到DPT 值,找到活动分区。然后从DPT中得到活动分区的起始扇区号。从活动分区的第1扇区得到DBR,再从DBR中得到分区保留扇区数、FAT 数、FAT 所占扇区数以及每簇所占扇区数,那么系统文件的物理磁盘位置A=N+n1+n2*n3+C*n4。其中各项含义如下:
  3 穿透还原系统过滤驱动加载
  要想实现写入数据到磁盘,必须穿透文件系统过滤层。而文件系统过滤层工作在内核模式,只要能够进入内核模式就能对其进行修改。Win32内核中文件系统驱动程序是I/O子系统下的一个重要组件,其功能是实现用户对磁盘或磁带等非易失性存储介质存取数据的服务。I/O 管理器是一个可扩展的结构,通过用户自行开发过滤驱动程序可以扩展I/O子系统的功能。I/O 管理器支持分层驱动程序模型,操作系统的还原程序以及杀毒软件的监控程序通过开发驱动程序插入到这个层次结构中,从而截获来自上层的操作请求。将扩展文件以各种方式附加到主文件,从主文件的资源项中找出驱动文件数据,并将其写入独立的文件中。通过创建该驱动程序对应的服务,便可进入到内核工作模式。因为扩展文件是以资源的方式附加在主文件中,因此有必要分析清楚PE文件格式,从而在PE文件资源项中找出扩展文件。
  文件是一些连续的数据组织起来的,不同类型的文件组织形式各不相同;PE文件格式也是一种文件组织形式,它是32位Window系统中的可执行文件EXE以及动态连接库文件DLL的组织形式。PE的意思就是Portable Executable(可移植的执行体)。意味着此文件格式是跨Win32平台的。PE是Win32可执行文件的标准格式。它的一些特性继承自Unix 的Coff (common object file format)文件格式。在WindowsNT中,驱动程序也是这种格式。所有Win32执行体(除了VxD和16位的D11)都使用PE文件格式,包括NT的内核模式驱动程序。
  PE文件格式被组织为一个线性的数据流,包括DOS头、NT映像头、节、节表、可选映像头(Optional Header)。
  PE文件格式的第一个组成部分是MS-DOS头部。PE文件头部是由MS-DOS头部的e_lfanew域定位的,这个域只是给出了文件的偏移量,所以要确定PE头部的实际内存映射地址,就需要添加文件的内存映射基地址。PE文件格式中,开始两个字节是4D5A(MZ)。DOS头后面的是PE文件的NT映像头(IMAGE_NT_HEADER),PE整个文件信息分布的重要字段都存放在这里。通常判断一个文件是不是PE文件,最基本的方法就是先看该文件的前两个字节是不是4D5A(MZ),如果不是,则说明不是PE文件;如果是,则提取PE字串的偏移位置,然后察看该偏移位置的四个字节是否是50\45\00\00(PE),如果不是,说明不是PE文件,否则可以初步认为其是PE文件,当然进一步的准确判断还需要依赖其它条件。)可选映像头(Optional Header)是一个可选的结构。位于映像文件头的后面。提供了PE文件的逻辑分布信息。紧接着NT映像头之后的就是节表。它实际上是一个结构数组,其中每个结构包含了该节的具体信息(每个结构占用28H字节)。该数组成员的数目由映像文件头(IMAGE_FILE_ HEADER)结构中NumberofSections域的域值来决定。节(Section)紧跟在节表之后,一般PE文件都会有几个“节”,如代码节、引入函数节等,这里只给出本系统中用到的资源节。资源节为树形结构。存放如图标、对话框、菜单等程序要用到的资源。
  本文到此为止讲述了文件系统过滤层穿透技术、通过定位系统文件在磁盘的位置直接读写物理磁盘以及穿透还原系统过滤驱动加载这些关键技术,基于这些技术基础上,首先利用操作系统提供的资源查找、资源锁定等API函数将驱动程序从主文件中释放出来。然后将将驱动程序注册为系统服务程序并启动。打开驱动设备对象对应的符号链接,从而调用驱动的功能函数,断开附加在磁盘设备上的文件过滤驱动程序以便使过滤驱动程序失效。通过调用API 函数DeviceIoControl将程序代码写入到直接定位物理磁盘偏移的系统文件中。这样就实现了对还原系统的穿透。
  
  参考文献:
  [1] 浅谈计算机硬盘数据的维护.姜峰.2008年8期.
  [2] Delphi编程实现硬盘数据读写、保护与恢复金林樵2007.3
  [3] Windows NT文件系统过滤驱动程序在信息安全中的应用 董亮卫等.2005年10期.
  [4] 数据恢复技术在计算机取证中的应用李俊莉2008.9
  [5] Windows平台下磁盘数据恢复技术的研究与实现王强 2008
  作者简介:
  康金翠,(1969-),女,河北行唐县人,实验师,学士学位。研究领域:计算机硬件与网络技术。
 

(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.