数据恢复之反黑行动

来源:计算机等级考试    发布时间:2012-08-27    计算机等级考试视频    评论

  数据恢复一直以来都是我们关注的问题,因为你的电脑数据每天都在受着诸如病毒、恶意代码、黑客、误操作等的威胁!那么如何才能恢复你的数据呢?希望本文能对你有所帮助!
  一、理论篇
  要深入学习数据恢复,并非是一件容易的事,要想成为一个数据恢复专家,没有深厚的理论知识是不可能的,你必须了十分了解磁盘的逻辑结构,就让我们来看看需要学习的理论知识吧。
  当我们对文件进行访问时,你有没有想过,操作系统是如何对文件进行操作的呢?这些文件又是如何存放在磁盘当中的呢?先来看看硬盘的总体结构,在介绍硬盘总体结构之前有必要介绍一下硬盘的参数,硬盘是以磁头(Heads),柱面(Cylinders),扇区(Sectors)进行访问的。其中: 磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023 (用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6 个二进制位存储). 每个扇区一般是 512个字节,学习过汇编语言的朋友可能想到了,BIOS中断13H的入口参数中,CH是磁道号其值为0H~FEH(最多255个磁道),CL中低6位为扇区号,其值为1H~3FH(最多63个扇区),DH为磁头号的低位,CL中的高2位为磁头号的高位,也就是说,磁头号最多由10位二进制数表示,(1111111111)2=(1023)10,也就是说最多可以表示的磁头数为1024个。请大家记住这些在我们以后的学习中还会用到的,由此可以看出基于这种访问方式我们最大能访问的磁盘容量为:
  255 * 1023 * 63 * 512字节=8414461440/1048576=8024.66M
  只有大约8G的空间,这是因为早期磁盘还很小,想想当年你拥有一块200M硬盘时的喜悦心情吧!就好象当年的科学家们以为1K内存已经很大了一样,让电脑用户很长一段时间都为配置DOS下的内存而烦恼。而今,你肯定拥有一块大于8G的硬盘了,你能够用她,应该多亏了一种较新的硬盘访问技术——扩展 Int13H 技术。采用线性寻址方式存取硬盘, 所以突破了 8 G的限制, 而且还加入了对可拆卸介质(如活动硬盘)的支持,因为是谈数据恢复不是谈编程,关于扩展INT13H技术我在此就不详述了。
  硬盘数据(基于FAT结构)总体结构如下:
  1、主引导扇区(Master boot sector) (占用一个扇区)
  2、第一个分区的引导扇区(Boot sector)(占用一个扇区)
  3、第一个分区的FAT1 (占用空间由磁盘大小和FAT类型来定)
  4、第一个分区的FAT2 (占用空间由磁盘大小和FAT类型来定)
  5、第一个分区的根目录区
  6、第一个分区数据区 (用来存放各种文件的数据)
  7、扩展分区表 (占用一个扇区 )
  8、第二个分区的引导扇区(Boot sector)(占用一个扇区)
  9、第二个分区的FAT1 (占用空间由磁盘大小和FAT类型来定)
  10、第二个分区的FAT2 (占用空间由磁盘大小和FAT类型来定)
  11、第二个分区的根目录区
  12、第二个分区数据区 (用来存放各种文件的数据)
  13、扩展分区表
  注意:当你的硬盘没有扩展分区的时候,你就没有扩展分区表了;当你只有一个硬盘分区的时候你的硬盘结构到6就完了。
  (一)主引导扇区(Master boot sector)的结构:
  它是硬盘的第一个扇区, 由主引导程序(MasterBoot Record简称MBR),硬盘分区表(Disk Partition Table简称DPT )和结束标识三部分组成。其结构如下:
  1、偏移0H~1BDH 主引导程序(占446个字节,但实际可能并没有到这么多的字节)
  2、偏移1BEH~1FDH 硬盘分区表(占64个字节,每个分区项占16个字节,最多可容纳4个分区项)
  3、偏移1FEH~1FFH 结束标识 (占2个字节,结束标志,总为55H AAH)
  主引导程序我在此就不分析了,需要注意的是在主引导程序中有一些出错信息,一些引导型病毒往往会覆盖这些信息来将自己嵌入到主引导程序中去,并将主引导程序开始的几个字节改为一条跳转指令,通过观察主引导程序的变化,往往可以让我们看出自己的电脑是否有引导型病毒,一旦发现异常,我们可以用 FDISK/MBR命令来覆盖原有的MBR。结束标识的两个字节总是55H AAH,该标识只是用于判断这个扇区是否是有效的主引导扇区,如果主引导程序发现没有这个结束标识,将会认为操作系统丢失,并显示“Missing Operating System”。
  硬盘分区表:
  从偏移1BEH~1FDH的64个字节存放的是硬盘分区表,其中最多包含4个分区项,每个分区项由16个字节构成,其结构如下:
  1、1BEH~1CDH 分区项1
  2、1CEH~1DDH 分区项2
  3、1DBH~1EDH 分区项3
  4、1EFH~1FDH 分区项4
  注意:没有用到的分区项上的记录总是16个十六进制码00H
  我们再来看看每个分区项的详细含义,假设我们的一个分区占用的16个字节被标为00H~0FH,其结构如下:
  00H 引导标识字节,其值只能为00H或80H,为00H时表示该分区不可引导,为80H时表示该分区可用于引导 。在许多诸如BOOT MAGIC之类的软件都是利用了这一原理,实现多操作系统引导的,了解了这一原理,你也可以写出你自己的多操作系统引导程序了。
  01H 分区起始磁头号
  02H 其高2位为分区起始柱面号的高位,底6位为分区起始扇区号
  03H 分区起始柱面号的低位
  04H 分区系统标志,当该值为00H时,表示此分区为不可识别的系统;为04H时该分区为FAT16分区;为05H或0FH该分区为扩展分区;为0B时该分区为 FAT32分区 ;为83H时表示该分区为Linux分区, 为07时该分区为NTFS分区等等。一些如PQMAGIC磁盘软件在隐藏分区操作时就是将此字节的内容保存后在把它改为00H。
  05H 分区结束磁头号
  06H 其高2位为分区结束柱面号的高位,底6位为分区结束扇区号
  07H 分区结束柱面号的低位
  08H~0BH 此4个字节为在线性寻址方式下的分区的扇区地址。当分区大于8G时,扩展INT13H是通过该信息进行寻址的,我们可以发现在这种方式下寻址最多可访问的空间为:FFFFFFFFH扇*512B/扇=2048G,也就是说我们用扩展INT13H最大可以访问的空间为2048G,这个数字现在对我们来说是非常大的,但谁都不能想象计算机的发展之快,到时到底要如何来突破这个限制呢?现在谁也不知道。注意:此4个字节是从高位到低位排列的!例如我的分区表第一个分区项此4字节的内容为“3FH 00H 00H 00H”,它代表该分区是从0000003FH开始的,也就是从线性地址63扇开始的(线性地址把硬盘的第一个扇记为0H扇)
  0CH~0FH 此4个字节为以扇区为单位的该分区大小(总扇区数),此4个字节同样是从高位到低位排列的 !
  (二)引导扇区(Boot sector)的结构:
  当主引导程序找到了带有引导标识为80H的分区后,就会将该分区的引导扇区读入到内存地址为0000:7C00处,并把控制权交给引导扇区中的引导程序,让我们来看看其中一些需要了解的地方:
  1、0H~02H 一条跳转指令,指针指向后面的引导程序
  2、03H~0AH 厂商名和系统版本
  3、0BH~0CH 每扇字节数,一般为512字节
  4、0DH 每簇扇区数(有关簇的概念我们在后面会详细介绍),对于FAT32的磁盘该字节一般为08H,既每簇为8H*512B=4K。
  5、0EH~0FH 保留扇区数
  6、10H 磁盘FAT的个数,一般为2个
  7、11H~12H 对于FAT16的磁盘为根目录的最大目录项,对于FAT32的磁盘该值总为“00H 00H”
  8、13H~14H 对于软盘或早期小硬盘该处为分区总扇区数,对于硬盘一般此值为“00H 00H”
  9、15H 介质描述,对于1.44软盘此处长为“F0H”,对于硬盘此处长为“F8H”
  10、16H~17H 对于软盘或早期小硬盘该处为每个FAT占用的扇区数,对于硬盘一般此值为“00H 00H”
  11、18H~19H 每道扇区数,一般为“3FH 00H”,即每道有63个扇区
  12、1AH~1BH 磁头数,一般为“FFH 00H”,即每个柱面有255个磁头
  13、1CH~1FH 隐含扇区数
  14、20H~23H 对于大硬盘来说该处存放的是该分区占用的扇区数
  15、24H~27H 对于大硬盘来说该处存放的是每个FAT占用的扇区数
  16、40H 该处为磁盘BIOS信息,第一块硬盘为“80H”,一般软盘为“00H”
  17、47H~51H 用户设置的卷标,如果没有卷标此处常为字符串“NO NAME ”
  18、52H~59H 文件系统,对于FAT32文件系统此处常为“FAT32 ”
  19、1FEH~1FFH 结束标识,和上文提到的主引导区的结束标识一样为“55H AAH”
  以上是引导扇区的一些信息,在上面我们可以获得一些有用的信息,我们也可以想象一下为什么当我们在分区上单击右键在分区属性中可以看到一些分区信息,比如分区大小,文件系统等等,知道原理,你也可以直接调用这些参数了。
  (三)磁盘文件分配表(FAT)
  在介绍FAT之前,我们要先了解有关簇的概念,簇(Cluster)是文件数据区被划分成的具有大小相等的区域用于磁盘文件的计量分配单位。一个簇可能有1、2、4、8、16、32、64或128(必须是2的幂)个扇区构成,但对于一种磁盘系统是其值往往是一定的,比如FAT16中每簇一般为 32K(占64个扇),FAT32中每簇一般为4K(占8个扇)。
  要理解操作系统为什么要用簇对磁盘进行管理,还是得学习FAT,FAT32磁盘中在系统引导区之后有一些保留未用的扇区,再后面有一个以 F8H FFH FFH 0FH 开始的FAT表,(对于FAT16是以F8H FFH开始的),每个FAT项占32位(4个字节),FAT16的每个FAT项占16位(2个字节),不同的FAT值有不同的含义:
  FAT12的表项值 FAT16的表项值 FAT32的表项值 值的含义
  000H 0000H 00000000H 未用的空簇
  001H~FEFH 0001H~FFEFH 00000001H~0FFFFFEFH 文件已使用的簇
  FF0H~FF6H FFF0H~FFF6H 0FFFFFF0H~0FFFFFF6H 系统保留簇
  FF7H FFF7H 0FFFFFF7H 坏簇
  FFF8H~FFFH FFF8H~FFFFH 0FFFFFF8H~0FFFFFFFH 文件的最后一簇
  注意:在FAT表项中的16进制码总是从高向底排列的。

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答