| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 游戏 | 娱乐休闲 | 软件下载 | 在线视频 | 留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • NB知识扫盲之透视笔记本光驱

  • 笔记本无惧路颠簸  CF卡变身…

  • 数据永远偷不走 揭密IBM指纹…

  • 笔记本每日一贴——笔记本硬…

  • 本本菜鸟进阶必读之硬盘选购…

  • 动手改造!迷你笔记本的硬盘…

  • 占笔记本40%价值 LCD屏幕知识…

  • 笔记本密码设置知识一点通

  • 水货笔记本硬盘鉴别方法

  • 各款硬盘对于IBM笔记本的搭配…

  • Q
    您现在的位置: 我是IT人 >> 硬件维修 >> 硬盘 >> 文章正文
    硬盘数据恢复知识         ★★★
    硬盘数据恢复知识
    作者:宝马 文章来源:网络 点击数: 更新时间:2005-12-14
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

    令我非常遗憾的是,至今我没有发现比较出色的扇区级备份镜象工具,我曾写过一个HD-MIRROR,但由于错误较多,我提供下载的第二天就停止了发布,另外fixc的作者noz写过一个clone.exe,但可惜只适合相同的硬盘。我也曾以为GHOST可以做到这点,事实上,你目前还不能指望他为你备份一块深度破损的硬盘。。如果有一个有效的能以按扇区机制(而不是文件机制)压缩备份一块硬盘将之做成一个镜象文件的话,那么我们的恢复工作就拥有了更多的保证和余地。我们可以更大胆的做恢复的尝试。
    3、 一些自动处理工具或软件包
    首先介绍国内的一些免费修复工具
    FIXMBR:何公道先生写的一个修复MBR的工具,适合处理逻辑分区丢失的情况, 有一些可选参数,支持 FAT32、FAT16,不支持NTFS、LINUX等分区,支持8.4G以上硬盘。可修复CIH发作后的扩展逻辑分区。
    VRVFIX:北信源公司的推出的修复硬盘共享工具,适合处理逻辑分区丢失的情况,处理的基本比较准确。支持FAT32、FAT16,不支持NTFS、LINUX等分区。也不支持8。4G以上硬盘
    FIXC:国内最早出现的可以修复部分被CIH破坏的C盘的工具,作者是NOZ,新版本也加入了修复分区信息的功能,支持FAT32、FAT16,有限支持NTFS,不支持8。4G以上硬盘。目前的版本已经比较完善。
    FIXHDPT:TBSOFT工作室的分区信息修复工具。支持FAT32、FAT16,不支持NTFS和LINUX,不支持8。4G以上硬盘,是历史比较长的工具之一。
    RE(ReapirEasy):本人早期写的分区表修复工具,支持FAT32、FAT16,有限支持NTFS,不支持8.4G
    以上硬盘,和某些BIOS不兼容。其整体水准低于前面列举的工具。
    国外一些系统维护的工具目前已经达到了非常强大的程度。
    Norton Utilities:历史最悠久的系统维护工具。不仅可以数据恢复,还可以系统加速和修补内存错误。目前最新的版本是NU 4.5FOR 9X、NU2 FOR NT等。
    Tiramint:最为出色的灾难恢复工具之一,有NTFS、FAT32、FAT16、NOVELL4种版本。生成急救软盘,可以对深度破坏的磁盘进行交叉恢复。
    4、常用的基本操作
    ① 读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。
    例:
    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是断点中断,使程序运行到此停止。
    ② 显示引导区内容:我们把扇区读到某个内存地址并不是目的。而是为了看到他的内容,在DEBUG中D命令可以方便的查看内存单元的内容。续前例,如果我们要看到主引导区的内容的话,既然装载到300。
    -d300 l200就可以查看了,一个引导区的映象类似如下,可以直观的看到我们前面所提到的代码区和数据区。是否正常请大家自行分析一下
    126C:0300  33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C   3.....|.P.P....|
    126C:0310  BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04   ...PW...........
    126C:0320  38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B   8,|.u...........
    126C:0330  EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC   ....It.8,t....N.
    126C:0340  3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25   <.t...........F%
    126C:0350  96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05   ..F...<.t...<.t.
    126C:0360  3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4   :.u+@.F%.u$..UP.
    126C:0370  41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74   A..Xr...U.u....t
    126C:0380  0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF   ....V$.......f..
    126C:0390  0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E   .......3.......N
    126C:03A0  25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55   %.N...r).F..>.}U
    126C:03B0  AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB   .tZ.......u..''..
    126C:03C0  8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB   ...R..F..V....Z.
    126C:03D0  D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00   .Ot.3...........
    126C:03E0  56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4   V3.VVRP.SQ...V..
    126C:03F0  50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72   PR..B.V$..ZX.d.r
    126C:0400  0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49   
    .@u.B......^..tI
    126C:0410  6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E   nvalid partition
    126C:0420  20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61    table.Error loa
    126C:0430  64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73   ding operating s
    126C:0440  79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70   ystem.Missing op
    126C:0450  65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00   erating system..
    126C:0460  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    126C:0470  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    126C:0480  00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00   ......W.........
    126C:0490  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    126C:04A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    126C:04B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01   ................
    126C:04C0  01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00   ......?...~.....
    126C:04D0  81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00   ............u...
    126C:04E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    126C:04F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.
    ③ 反汇编主引导区内容:判定MBR的代码区是否正常,对于数据区的基本情况,我们可以通过直观观察得出,但对于存在引导型病毒,或者引导区出现异常代码的情况,我们可能需要分析MBR中代码区的指令。这一般要对已经读入内存的引导区进行反汇编。
    反汇编用指令U
    续前例:
    -u300 l15D ;反汇编主引导扇区代码区内容
    126C:0300 33C0          XOR AX,AX
    126C:0302 8ED0          MOV SS,AX
    …………
    126C:045C 65            DB 65
    126C:045D 6D            DB 6D
    ④ 写内存单元,在我们的前例中,主分区类型是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      ;断点
    ⑤ 绝对磁盘内容的读出与写入
    类似操作在FAT32结构硬盘被CIH破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二FAT表覆盖第一FAT表。那么无疑要读出第二FAT表的内容,再回写到第一FAT表的位置上。一般的来说,大量连续扇区的读出写入DISKEDIT进行非常方便,如果用DEBUG做则要写一段子程序,不过程序的主要技巧就是利用int 25绝对磁盘读中断读出的内容,而用int 26绝对磁盘写做内容写入。
    4、数据可恢复的前提
      有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全部思想脉络。而这一部分就是从哪里恢复的问题。
    ①、 有效而及时的备份中是数据恢复最可靠的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑这点。而有些备份机制则是系统内建的,比如两份FAT表。
    ②、 数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象,其实并不与数据丢失画等号。因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意义上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为0E而已。而此时文件体依然存在。
    ③、 数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是可逆的。我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较复杂。
    ④、 数据本身是否是标准信息:有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。只要相同或相近的系统版本就可以了,比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。典型的例子如分区表的代码区,这是一段标准代码,事实上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出来。
    ⑤、 数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份。但它实际可以从其他数据中间接求得。最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几个分区中计算再生。
    ⑥、 破坏的完成程度:事实上,FDISK、FORMAT都不会彻底破坏数据,一般只有低格和扇区覆盖操作才会彻底破坏数据。但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就是CIH病毒的例子,由于CIH是以1024字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造成死机,使数据得到了保护。

    上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页  

    文章录入:宝马    责任编辑:宝马 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |