中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 数据恢复[转帖] 上一主题 | 下一主题
ko20010214
版主




积分 7294
发帖 1628
注册 2002-10-16
状态 离线
『楼 主』:  数据恢复[转帖]

数据恢复
雷正海
赤壁市地税
摘  要  本文从数据的物理存储层面,使用较早的数据操作工具对数据的安全恢复做简单的探讨。
关键字  数据,安全,恢复
长期以来对计算机领域的数据恢复似乎缺乏全面的认识,我们首先应当给计算机数据一个广义的概念。某些人觉得只有类似文本文件、数据库中的记录或表这样的东西才是数据;其实从广义上说,任何位于计算机存储介质上的信息都是数据,无论是哪种介质,也无论其具体作用如何,他们都是数据。与这种概念对应,任何使这些信息发生非主观意愿的变化都可视为破坏。
数据恢复就是一个把异常数据还原为正常数据的过程。
对数据的潜在威胁
1、 恶意的程序:大家最熟悉的恶意程序就是病毒,2、 很多人认为病毒对数据的影响仅仅是病毒的破坏性,3、 这是不4、 正确的,5、 实际上病毒的感染本身就是一种破坏。一个病毒无论修改你的引导区、可执行程序还是office文档,6、 都能改变你的正常的数据,7、 当然,8、 你可能举良性伴随性病毒这种极端的例子。但毫列疑问,9、 它同10、 样对数据构成了破坏,11、 至少它减少了你的硬盘的可用空间。恶意的程序还包括特洛伊木马、逻辑炸弹等等。它们造成的破坏可能是最难恢复12、 的。
13、 其它恶意的破坏:即使不14、 借助病毒或其它的工具,15、 只要拥有足够的权限,16、 任何系统都有一定的“自毁”能力。比如依靠系统正常的删除、移动、格式化等操作可以导致数据破坏。随着网络技术的发展,17、 威胁已经不18、 公仅仅限于本机。
19、 误码操作:很多数据丢失源于使用者的操作失误,20、 比如误删除,21、 误格式化等等。
22、 操作系统或应用软件的错误:随着操作系统和应用程序的代码成倍23、 增加,24、 BUG也不25、 断增加。我们最常用的桌面系统WIN9X就是一个BUG大王。操作系统和应用软件的错误,26、 往往会给人的工作带来一些不27、 可预期的影响。比如前阶段Frontpage 98 的一个BUG,28、 触发后会把你目录下的文件全部删除,29、 另外,30、 象著名31、 的游戏神话II,32、 出现了如不33、 安装默认目录中可能会使你丢失扩展分区这样严重的问题。
34、 加密和权限:尽管加密和权限设置是你保护数据的有效手段,35、 但遗忘密码也会带来很大的问题。
36、 掉电:机器突然掉电的后果可能不37、 仅仅是内存数据的丢失,38、 也可能造成磁盘数据的丢失,39、 或导致系统无法正常启动。
40、 内存溢出:导致内存溢出或者进程非法终止等低层错误的原因很多,41、 它就象掉电一样,42、 会使你损失当前的工作。
43、 升级:软件系统升级有时会带来一些问题,44、 后面我们将举相应例子。
45、 硬件损坏和失窃:这可能是最严重的威胁之一。有时这把你恢复46、 数据的可能降低为零。
数据丢失的各种逻辑现象
对数据的恢复,基本上是一种逻辑处理。只有对情况有一个准确的判定,才能做出准确的应对。一般来说,可以归纳为以下几种情况。
1、 硬盘无法完成正确引导:因物理故障造成的逻辑损坏、引导区故障、重要扇区崩溃等等,2、 都会使系统不3、 能完成正常的自举过程。
4、 文件丢失:有意破坏、误删除等等都会造成数据的丢失,5、 这种归类不6、 仅仅包括某个或几个文件,7、 也适用于目录,8、 分区或卷的丢失。
9、 文件无法正常打开:由于病毒感染、加密、文件头损坏等情况,10、 会使文件无法正常打开。
11、 数据紊乱:由于各种因素的影响,12、 数据库中的信息、文本文件等,13、 可能面目全非。
系统工作机理的简单介绍
1、DOS(DOS兼容系统)硬盘数据的构成
DOS磁盘系统,可以按照逻辑分区的概念管理物理空间,不同分区可以装载不同的OS系统。
FAT结构的每一分区都有独立的引导记录,FDT表,FAT表等。同时,系统还有一个最为重要的主引导记录,在0柱0面1扇区,今后我们用CYL代表柱、SIDE代表面、SEC代表扇区。
以下简单介绍一下重要的部分:
主引导记录又称主分区表、MBR等等:MBR占一个扇区,在CYL 0、SIDE 0、SEC 1,由代码区和数据区构成。其中代码区是一段标准的程序,完成BIOS自举到OS BOOT之间的工作,为OS启动做最后的准备。标准代码区可以由FDISK/MBR重建,但对于多系统引导的不标准MBR,将被这一操作破坏。MBR的数据区记录了分区情况。
系统扇区:CYL 0、 SIDE 0、SEC 1-CYL 0、SIDE 0、SEC 63,共62个扇区。
引导区又称BOOT区:CYL 0、SIDE 1、SEC 1,过去称为DOS引导区。也占一个扇区。
隐藏扇区:CYL 0、SIDE 0、SEC 1,如果是FAT16那么占一个扇区,如果是FAT32则占32个扇区。
文件分配表以称FAT,是记录文件占用簇的情况和连接关系的地方。一般有两个FAT表,起到备份的作用。FAT12、FAT16的第一FAT表一般均在0-1-2,FAT32的第一FAT表在0-1-33。由于FAT表记录文件占用扇区连接的地方,如果两个FAT表都坏了,后果不堪设想。由于FAT表的长度与当前分区的大小有关,所以FAT2的地址是须要计算的。
根目录区(ROOT、FOT):这里记录了根目录的目录文件项等,ROOT区跟在FAT2后面。
数据区:跟在ROOT区后面,这才是数据内容。
其实,MBR、隐含扇区、BOOT区的重建都比较容易。数据恢复的关键在于恢复数据文件。由于FAT表记录了文件在硬盘上占用扇区的链表,如果两个FAT表都完全损坏了。那么恢复文件,特别是恢复占用多个连续扇区的文件就相当困难了。
2、主引导记录简单说明
主引导记录是硬盘引导的起点,关于代码区不多说了,其数据区,比较重要的是2个标志,80H和55AA,80H一般在偏移1BE处,80是分区激活的标志表示系统可引导,且整个分区表只能有一个80标记。另一个就是结尾的55AA标记,用来表示主引导记录是一个有效的记录。另外,各个分区自身的引导记录,也是以55AA结束,这是我们查找分区的标志。我们后面在介绍主引导记录时,给出了一个完整的分区表的例子,大家可对照查看。
数据区中,用10H字节表示一个分区,最多可表示4个分区,分别从1BE、1CE、1DE、1EE开始,我们后面给出了分区表项对应地址的含义。大家可以对应分析一下以下分区的情况。
80  01 01 00  0B  FE BF FC  3F 00-00 00  7E 86 BB 00
    ①   ②      ③    ④           ⑤         ⑥
1 激活标2 记,3 80表示可引导分区。
4 分区开始的磁头号为01、开始的扇区号为01、开始的柱面号为00,5 由于开始的扇区号为2进制6位,6 而7 开始的柱面号为2进制10位,8 因此扇区号所用字节的高两位要加在柱面号高两位。
9 分区的系统类型FAT32(0B),01是FAT12,04为FAT16,06为BIGDOS,07为NTFS,其他参见分区类型表。
10 分区结束磁头号254、分区结束扇区号63、分区结束柱面号764。
11 首扇区的相对扇区号63。
12 总扇区数12289622。
数据可恢复的前提
数据恢复,作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复,第二是怎么恢复。解决了这两个问题,我们事实上就把握了数据恢复的。这一部分就是探讨从哪里恢复的问题。
1、 有效而2、 及时的备3、 份是数据恢复4、 最可靠的来源:在许多人倡导备5、 份到秒的今天,6、 恐怕不7、 会有人怀疑这点。而8、 有些备9、 份机制则是系统内建的,10、 比如两份FAT表。
11、 数据的实际有效性的判定是关键:对我们来说,12、 硬盘无法自举、文件找不13、 到、文件打不14、 开等现象,15、 其实并不16、 与数据丢失划等号。因为此时往往只是逻辑丢失,17、 在物理意义上,18、 它仍然存在或部分存在。最明显的就是文件删除的例子,19、 事实上,20、 这只是把文件首字节改为0E5而21、 已,22、 文件体依然存在。
23、 数据损坏过程的可逆性分析:对数据的改变无非两种,24、 取代和变换,25、 前者是不26、 可逆的,27、 后者则是可逆的。我们以杀毒为例,28、 对于大多文件性病毒来说,29、 那些以附加而30、 非代换方式感染的文件型病毒,31、 理想的杀毒过程就是感染的逆过程。这种分析也适用于重要信息被隐藏搬移或者被加密的情况,32、 但分析将比较复33、 杂。
34、 数据本身是否是标35、 准信息:有些信息实际是通用或局部通用的,36、 你无须考虑如何从本机抢救。只要有相同37、 或相近的系统版本就可以了,38、 比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。典型的例子如分区表代码区,39、 这是一段标40、 准代码,41、 事实上,42、 它就放在你的FDISK程序里面,43、 你可以用DEBUG把他提取出来。
44、 数据本身是否可以由其它信息统计再生:有些信息尽管丢失了,45、 也没有备46、 份。但它实际可以从其他数据中间接求得。最典型的就是主分区表中的分区信息,47、 即职使你把它清零也不48、 必害怕,49、 因为你可以从你几个分区中计算再生。
50、 破坏的完成程度:事实上,51、 FDISK、FORMAT都不52、 会彻底破坏数据,53、 一般只有低格和扇区覆盖操作才会彻底破坏数据。但有时,54、 破坏过程或者误码操作过程会因人工终止、死机等原因不55、 能完成。最明显的就是CIH病毒的例子,56、 由于CIH是以1024字节为单位覆盖扇区,57、 这当然是不58、 可逆过程,59、 于是我们最初都认为,60、 破坏是很难恢复61、 的,62、 除非人工终止。事实上,63、 当病毒覆盖某些扇区时会与WIN9X系统发生冲突,64、 从而65、 造成死机,66、 使数据得到了保护。
常用的基本操作
1、读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。
例:
DEBUG
-a100;   从此处开始汇编
126C:0100 MOV ax,201; 读操作一个扇区
126C:0103 mov bx,300; 送入地址300
126c:0106 mov cx,1; 0面1扇区
126c:0109 mov dx,80; 80H为硬盘,头为0
126c:010c int 13
126c:010e int 3
126c:010f
-g=100; 执行
AX=0050 BX=0300 CX=0001 DX=0080 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=126C ES=126C SS=126C CS-126C IP=010E
NV UP EI PL NZ NA PO NC
        这里用了I/O中断13,涉及的寄存器含义为:
ah,操作方式,02H为读,03H为写
al,送扇区数
bx,送准备装入扇区的内存偏移地址
cx,送从那一道那一扇区开始,我们一般依靠改换cx来读写不同逻辑盘某个逻辑扇区
dx,送盘符和头数
int 3是断点中断,使程序运行到此停止。
2、显示引导区内容:我们把扇区读到某个内存地址并不是为了看到它的内容,在DEBUG中D命令可以方便地查看内存单元的内容。
续前例,如果我们要看到主引导区的内容的话,既然装载到300。
-d300 1200就可以查看了,一个引导区的映象可以直观地看到我们前面所提到的代码区和数据区。
3、反汇编主引导区内容:判定MBR的代码区是否正常,对于数据区的基本情况,我们可以通过直观观察得出,但对于引导型病毒,或者引导区出现异常代码的情况,我们可能须要分析MBR中代码区的指令。这一般要对已经读入内存引导区进行反汇编。反汇编用指令U。
续前例:
-u300 115D; 反汇编主引导扇区代码区内容
126C:0300 33C0       XOR  AX,AX
126C:0302 8ED0      MOV  SS,AX
...................
126C:045C 65         DB   65
126C:045D 6D        DB    6D
4、写内存单元:在我们的前例中,主分区类型是0B是FAT32的,假定这个类型实际是NTFS的,我们该如何修改呢?由于主分区类型的偏移是4C3H,我们可以用E命令写到内存单元中,从附表中查得NTFS的类型为07。因此-e4c3  7
再比如说,假定我们想把无效的分区表清零,那么,我们应当用另一个命令F,这个命令可以填充一个内存地址范围。清零分区表的操作就是-f4be 4ff 00,以下两个操作也比较常见。
重置80标记,-e4be 80
重置55AA标记,-f4ff 4fe 55 aa
不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。因此需要用int 13中断把改写的结果写回硬盘。
续前例,
-a100
126c:0100  mov ax, 301 ; 写操作一个扇区
-g=100; 执行
其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为。
126C:0100  mov  ax ,301;写操作一个扇区
126C:0103  mov  bx ,300;从内存地址300
126C:0106  mov  cx,1  ;0面1扇区
126C:0109  mov  dx,80  ;80H为硬盘,头为0
126C:010C  int    13
126C:010E  int    3    ;断点
5、绝对磁盘内容的读出与写入:类似操作在FAT32结构硬盘被CIH破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二FAT表覆盖第一FAT表。那么无疑要读出第二FAT表的内容,再回写到第一FAT表的位置上。一般来说,大量连续扇区的读出写入DiskEDIT进行非常方便,如果用DEBUG做则要写一段子程序,不过程序的主要技巧就是利用int 25绝对磁盘读中断读出的内容,而用int 26绝对磁盘写写入内容。
恢复实例
恢复处理过程能够表现一定思想,而不是纯粹的技术手段,其本身并不算复杂,在不出现汇编程序的情况下一般能够理解;但恢复本身并不完美,中间可能犯一些错误,有的甚至局部失败。
被CIH破坏硬盘恢复一例
硬盘情况:CIH发作,蓝屏死机,用KV300 F10进行修复不成功,又恢复了保存的MBR。
修复工具:准备3张软盘 DISK1-WIN98启动盘(带DEBUG);DISK2-DiskEDIT等工具;DISK3-DOS下杀CIH的工具
基本思路:
1、 FAT2没有损坏的情况,2、 用FAT2覆盖FAT1。
3、 FAT2也已经损坏的情况,4、 一般只期待找回其中某些关键的文件了。
我们最期待的是这些文件是连续的。如果不连续的话,也并非没有可能,但这往往还要知道文件的一些细节,包括对一些文件本身的连接结构有了解。如果FAT2没有完全破坏,是有一定用处的,另外,一般来说,FAT16的硬盘因为FAT表靠前破坏的比较严重,一般两个FAT表都破坏了,小硬盘也很难恢复了。
修复过程:
开机,进入SETUP,检测硬盘,把参数记下――CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LAB。
用准备好的软盘启动:
A:>C:
显示Invalid drive specification
FDISK/MBR重建主引导记录(这是个习惯),新软盘引导(可能没有必要).此时已经看得见C:硬盘.启动DiskEdit,启动过程中显示Invalid media type reading DRIVER C,先用DEBUG清空分区表,并置80和55AA标志。重新启动,再运行DISKEDIT,显示设定为READ ONLY,把TOOLS/CONFIGURATION中的只读选项去掉,存盘,好了,可以编辑了。
由于当时接的硬盘有多块,我把这块当成了是一块只有C分区,所以没看别的东西,我们期待FAT2没有损坏,以用FAT2覆盖FAT1,在这个时候DISKEDIT要比DEBUG容易的多,在FIND OBJECT中选择FAT,查一下起始扇区,好的,在CYL 0 SIDE68 SEC 14,0000H,F8 FF FF 0F(FAT32的),好的,FAT2没坏.其实如果不用DISKEDIT的可以用一段小程序查,偏移0000的F8 FF FF。
由于以为只有C分区,所以,上来就在FIND中查找IO    SYS(IO和SYS中要有六个空格)以查找ROOT区。找到后观察,是否有C:\下常见文件。好的,ROOT区没被破坏。记下了该扇区的CYL 0、SIDE 68、SEC 14,备用。
FAT1一般前面已经被破坏了,但后面应该还在,这可以作为检查。因为是32位的,FAT1一般在CYL 0 SIDE1 SEC 33。因为有了ROOT区然后应该计算FAT表的长度了,因为FAT2到ROOT前一扇区为止,所以非常简单。然后可以用FAT2覆盖FAT1,这里用DEBUG还是DISKEDIT都可以,如果用DEBUG一般是用INT 25读绝对扇区,再用INT 26写入,用DISKEDIT则比较简单。
然后可以恢复主引导记录、隐含扇区和BOOT区,可以先用NDD修复分区表,其它可以考虑用标准覆盖法,如果你希望下一步由NORTON UTILITIES来接手这些都可以不做。我从另一台FAT32的机器上取来了相应的部分。写了进去。这时发现有一个D盘。先看一下。关机串上硬盘,用NORTONUTILITIES 4扫描C盘,文件基本恢复,对C盘杀毒,WHY,没有发现病毒,换了2种杀毒软件还是没有病毒,现在显示C盘是948M,有一个D盘,但是95下无法浏览,DOS下乱码。于是再修复D盘,再回到DOS,用DEBUG查找结束标志为55AA的扇区,然后根据后面是否有FAT判定是否为扩展分区。此时可算出大小来返回修订主分区表。当然,许多工具也可以很好的完成这一工作。如果你没有把握,就用它们完成好了。其实我就是用RE做的,否则手工做确实太麻烦。



ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
2003-4-20 00:00
查看资料  发送邮件  发短消息 网志  OICQ (16959102)  编辑帖子  回复  引用回复
pizigao
银牌会员

三生缘里笑红尘


积分 1063
发帖 292
注册 2003-3-9
状态 离线
『第 2 楼』:  

goog



2003-4-21 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
如是大师
元老会员

步行的人


积分 9654
发帖 3351
注册 2003-3-11
来自 湖北
状态 离线
『第 3 楼』:  

好,这样的东西大大的要。



弄花香满衣,掬水月在手。
                 明月鹭鸟飞, 芦花白马走。
       我自一过后,野渡现横舟。
              青云碧空在,净瓶水不流。
http://dos.e-stone.cn/guestbook/index.asp
   ======中國DOS聯盟=====
我的新网页http://rsds.7i24.com欢迎光顾
2003-4-21 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dezi745
初级用户




积分 126
发帖 7
注册 2003-4-30
状态 离线
『第 4 楼』:  

very goooooood

2003-4-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
44944
初级用户




积分 118
发帖 12
注册 2003-4-30
状态 离线
『第 5 楼』:  

没这么麻烦吧~

2003-4-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttimber
初级用户




积分 198
发帖 43
注册 2004-11-2
状态 离线
『第 6 楼』:  

这样的东西好




我爱电脑,更爱软件,最爱的是我的父母和老婆!
2005-6-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yuexinghun
新手上路





积分 7
发帖 4
注册 2007-3-20
状态 离线
『第 7 楼』:  

好东西,要了

2007-3-21 00:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cdy168
初级用户




积分 129
发帖 14
注册 2004-12-25
状态 离线
『第 8 楼』:  

好文章~~学习学习~~~

2007-3-21 10:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoyu2112
新手上路





积分 18
发帖 9
注册 2007-3-25
状态 离线
『第 9 楼』:  

LZ是好人啊

2007-3-25 10:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei144
初级用户





积分 57
发帖 28
注册 2007-4-21
状态 离线
『第 10 楼』:  

还没到那境界。。。旁观ing

2007-4-26 04:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netuer
初级用户





积分 56
发帖 26
注册 2007-4-30
状态 离线
『第 11 楼』:  

晕.怎么在文字中间有那么多的数字啊,看的我头疼

2007-5-3 09:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
woainiphj
初级用户

DOS之星


积分 55
发帖 26
注册 2007-6-25
状态 离线
『第 12 楼』:  555

看不懂什么意思



DOS   之星
2007-7-4 21:29
查看资料  发送邮件  发短消息 网志  OICQ (283193995)  编辑帖子  回复  引用回复
#four#
中级用户




积分 209
发帖 34
注册 2004-5-25
状态 离线
『第 13 楼』:  

好东西,谢谢!收下了。

2007-7-5 09:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abdwq
新手上路





积分 18
发帖 12
注册 2007-7-10
状态 离线
『第 14 楼』:  

恩,不错,学习了!!


2007-7-13 12:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xxdw
初级用户





积分 29
发帖 15
注册 2007-7-26
状态 离线
『第 15 楼』:  

。。。旁观ing

2007-8-9 13:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: