返回主页 数据恢复

数据恢复相关

硬盘扇区读写技术━━修复硬盘与恢复文件

在本论坛发帖,不知能否带附件?如果可以,我准备将我写的程序陆续送给大家,并期待与大家进行技术交流

本程序是中文显示界面,程序内部调用的是扩展INT13H中断,能读取128G硬盘的任意扇区。诺顿8.0软件中的DISKEDIT程序,调用的是基本

INT13H中断,只能读取8.4G以下的硬盘扇区

    昨天给了大家第一个工具程序HRSECTOR.EXE,该程序能将扇区数据备份到文件中加以保存,这一功能在修复硬盘的引导故障时是非常实

用的。0号扇区存储着主引导记录和主分区表,63号扇区存储着C盘的分区引导记录。C盘后面的每一个逻辑驱动器,都有两个扇区存储着分

区链表和分区引导记录。在硬盘正常工作时,运行HRSECTOR.EXE将这些扇区中的系统引导数据,备份到文件中加以保存。当硬盘出现引导故

障时,再将文件中的数据写回到相应的扇区中去,就能使硬盘恢复如初。

    今天再给大家一个写硬盘扇区工具程序HWSECTOR.EXE,该程序能将前面备份文件中的数据,写回到扇区中去,以达到修复硬盘引导故障

的目的。

    这两个程序都是16位程序,可以在DOS实模式下运行,也可以在WINDOWS 98的DOS窗口中运行。但它们不能在NT内核的WIN 2K和WIN XP下

运行,因为在NT内核的操作系统中,屏蔽了INT13H功能调用。

    笔者还有另外一整套WIN32程序,可以在WIN 2K和WIN XP下运行,等到适当的时候再送给大家。

    最后,说一下工具程序与成品软件的区别。大家所用的成品软件,或者叫应用软件,其功能被限定在编程者的思维框架之内,有很大的

局限性。硬盘的故障五花八门,各种各样,成品软件很难满足需要。使用者并不了解编程者的思路,在使用中具有很大的盲目性。

因为软件是人编写的,它永远不可能超越人的大脑,如果真发生这种情况,人类也就快要灭亡了。

工具程序则不同,它只是授於操作者一种方法。操作者使用这种方法,就能透明地观察硬盘扇区数据,然后再运用自己大脑的思维活动,去

准确地判断故障所在。这就给了操作者最大的发挥自己的灵感和想像力的空间,是成品软件无法比拟的。

举一例说明这个问题。假如我造好了房子给大家住,肯定不会满足所有人的要求。如果我把设计房子的方法告诉大家,则每个人都能发挥自

己的聪明才志,根据实际情况,造出最适合自己的房子来。
相对扇区

    在对物理硬盘扇区进行操作的时候,是使用的绝对扇区编号,这就是扇区线性寻址方式。将硬盘的第1个物理扇区编为“0”号,一直编

到最后一个扇区。这种编号方式是由扩展INT13H中断调用和BIOS磁盘服务程序所决定的。

    在CHS扇区寻址方式中,扇区编号是由1开始的。不过这种扇区寻址方式只能访问8.4G硬盘。只有在老式主板上才使用,现在已经被淘汰

了。我前文曾提到过的,著名的诺顿8.0软件中的DISKEDIT程序,就是使用的CHS寻址方式,因此该程序也只能对8.4G以下的硬盘进行操作。

这并不是编程者的问题,因为当时还没有对大硬盘的寻址方式。

硬盘0磁道63个扇区监视程序--H0SE63.EXE

    今天送给大家的是硬盘0磁道监视程序,程序名为H0SE63.EXE。文件名中的“H”表示程序的显示界面是中文字符;“0”表示0磁道;

“SE”表示扇区SECTOR;“63”表示63个扇区。

    在硬盘0磁道的63个扇区中,系统引导数据只占用了第1个扇区,也就是线性寻址时的“0”号扇区,存储的是硬盘主引导记录和主分区

表。其他的62个扇区,系统闲置不用。通过观察0磁道的变化,可以发现一些程序运行中的机密。

硬盘的0磁道属于隐藏磁道,该磁道的63个扇区属于隐藏扇区。无论是操作系统,还是一般的应用软件,都不能访问0磁道的63个扇区。高

级格式化程序FORMAT只能格式化逻辑驱动器,对0磁道也无能为力。分区程序FDISK在运行时只操作0磁道的第1个扇区,向扇区内写入主引

导记录和主分区表,对其他的62个扇区不进行操作。

    综上所述,似乎只要不使用INT13H中断,调用BIOS磁盘服务程序,对物理扇区进行读写操作的话,0磁道的63个扇区应该不会发生任何

变化。

    但事实恰恰相反,正因为0磁道63个扇区的特殊性,它们成为很多程序隐藏代码的地方。请看都有哪些方面对它感兴趣:1.操作系统;

2.病毒;3.软件保护的识别码;4.运行程序使用的密钥;5.硬盘逻辑锁;6.主板BIOS功能扩展程序;7.多系统引导软件等。

  如果能经常监视0磁道的变化,就能适时发现一些问题,提前作好预防措施。今天送给大家的程序,就是用于监视0磁道63个扇区的变

化的。

    本程序运行时,将0磁道的每一个扇区中的512个字节,算出一个累加算术和,显示在屏幕上。同时建立一个备份文件H0SE63.TXT,存储

的内容与屏幕上显示的内容相同,以备操作者日后查看。

    为什么要计算扇区的累加算术和呢?因为每个扇区有512个字节,若被改动几个字节,一般情况下很难察觉。使用本程序中的累加和监

测功能,就能很直观地看出扇区数据是否被改动。当发现两次备份出来的同一个扇区的数据文件,其累加和不一致时,说明扇区数据被改动

了。然后再仔细查看每一个字节的值,就能发现隐藏的玄机。这是一个很实用的监测方法,大家在使用中很快就能体会到它的方便之处。

还有很多应用软件在安装或运行时,也会向0磁道的某些扇区写入数据,以下列举几个具体实例。

    第一例是早期的多操作系统引导软件System Commander。在安装时将原主引导记录替换成它自己的一段代码,当硬盘启动时,这段代码

指向引导软件设定的某一区域,继而实现多操作系统的选择启动。如果引导软件意外损坏,或被操作者不正常删除,代码指向的文件或数据

不能正常读取,硬盘就陷入了类似被加上逻辑锁的状态。

    难怪《电脑报》上曾有人撰文说,使用System Commander必须谨慎,一旦操作失误,硬盘就有被迫低级格式化的危险。

    其实了解了该软件的控制机理以后,使用笔者编写的扇区清零程序,解除硬盘的死锁状态乃是轻而易举的事。使用工具程序的清零功

能,将引导软件写入隐藏扇区的代码清除即可。扇区清零程序日后再送给大家。

    第二例是后期的多操作系统引导软件Partition Magic。在安装时也向隐藏扇区写入代码,该软件的使用比较安全,不会发生某些严重

的后果。

    第三例是BIOS功能扩展程序EZ-Drive。一些老主板上的BIOS程序,不能识别大容量硬盘。硬盘生产厂开发出BIOS功能扩展程序,随硬盘

送给购买者。该程序能接替主板BIOS,实现对大容量硬盘的管理。

    安装该程序以后,再运行H0SE63.EXE,会发现0磁道的很多扇区数据发生了变化,数量有20几个之多。这其实是该程序的执行代码,这

些代码不能放在数据区中,因为有可能被删除或被格式化,大硬盘的管理功能也就随着消失了。所以该程序选择了一个非常安全,而又被系

统弃之不用的区域放置其代码,这就是0磁道的2-63扇区。该程序的卸载要遵守正常操作的原则,不能简单的删除文件了之。

    在使用DM的柱面选择功能,将硬盘的坏磁道划出去的操作中,所有的工作必须都在DM中完成。其中包括分区、写入系统引导文件、格式

化。这之后就不能再用FDISK重新分区,一般情况下也不能再将硬盘挂接到另外的计算机上使用,甚至不能变换IDE口。

以下是全部程式所有汇编语言源程序和C语言源程序,都可以使用Borland c++ 3.1进行编译和连接。(Borland c++ 3.1不仅提供了开发C语

言程序的集成开发环境,还提供了对汇编程序的编译工具TASM。EXE和TLINK。EXE。)

  前文曾阐述过0磁道63个扇区的特殊性,今天讲一下如何利用这些扇区的特殊性。

  硬盘的引导故障,大多是由于系统引导扇区的数据被破坏所致。其中最重要的有两个扇区,一个是0号扇区,存储的是主引导记录和主分

区表;另一个是63号扇区,存储的是主分区C的分区引导记录。如果能把这两个扇区的数据保存好,则硬盘就没有什么大问题了,因为操作

系统一般是安装在C盘上。

    使用HRSECTOR程序可以将扇区数据备份到文件中,这虽然是一种保存数据的方法,但文件可能损坏,也可能你存放文件的逻辑盘不能引

导了,文件也就读不出来了。

现在将前面给大家的三个程序联合使用,就能实现一种最安全的保存数据的方法。先用HRSECTOR程序备份两个扇区数据,它们是0号扇区和

63号扇区。再用HWSECTOR程序将两个文件的内容写入1-62号扇区中去(注:线性寻址的扇区号,与0磁道中63个扇区的磁道内编号差1)。在

进行操作的前后,用H0SE63程序进行监测验证。

    如果硬盘发生故障,不能引导了。可以用软盘引导,然后将备份的数据读出来,再写回系统扇区中去,就能修复硬盘。只要硬盘的0磁

道不坏,备份的数据就万无一失。

    至于C盘以后的逻辑驱动器,必须掌握了扇区寻址的计算方法以后,才能找到它们的系统引导数据,进行备份。这些内容,我改日再向

大家介绍。

今天送给大家第四个工具程序,程序名为“数制转换.EXE”。这是一个WIN32程序,可以运行在WINDOWS 9X操作系统,也可以运行在NT内核

的操作系统,如WIN 2K和WIN XP。

为什么要写这样一个程序呢?

在对物理硬盘扇区进行寻址计算时,经常需要对扇区的某些字段值进行数制间地换算。因为扇区数据是以十六进制形式显示的,而对扇区进

行寻址时需要输入的扇区号是十进制的,所以在这个操作过程中,就要将十六进制转换成十进制。反过来,当查找到具有某种特征的扇区

时,又需要将找到的扇区号换算成十六进制的字段值,进而发现某些系统数据的存储规律。

    如果不使用工具程序,就需要查表,或是进行手工计算,那是很费时费力的。

今天给大家的工具程序,能进行数制间的相互转换。每一种原数据,都可以转换成三种制式的目的数据。原数据可以是二进制、十进制和十

六进制,转换后的目的数据是二进制、八进制、十进制和十六进制。

    在输入原数据的时候,要注意不能超出32位值的最大限制。举例来说,如果输入一个十六进制的原数据,其最大值是ffffffffH。

到今天为止,已经给大家介绍了四个工具程序。使用这四个工具程序,就可以进行一系列的扇区寻址计算了。具体能实现的功能有以下几

项:
1.计算硬盘上所有逻辑驱动器的分区链表扇区地址。
2.计算硬盘上所有逻辑驱动器的分区引导记录扇区地址。
3.计算硬盘上FAT逻辑盘的两个FAT表扇区地址。
4.计算硬盘上FAT逻辑盘的文件目录表(FDT表)扇区地址。
5.计算硬盘上FAT逻辑盘的数据区起始扇区地址。

    对使用NTFS文件系统的逻辑盘,暂不进行分析,这一部分内容是我在关于硬盘的第二本书中所要介绍的。现正在准备素材阶段,计划下

半年开始写,年底有可能完稿。

    今天再送给大家一个程序,程序名是“HBABO.EXE”。“H”表示汉字显示,“BA”表示备份“BACKUP”,“BO”表示引导“BOOT”,意

思是备份引导扇区程序。

    该程序能备份硬盘上所有的逻辑驱动器的引导扇区数据,每个逻辑驱动器备份出两个文件,一个是分区表扇区,另一个是分区引导记录

的第一个扇区(注:因为FAT32和NTFS的分区引导记录有多个扇区)。假设硬盘上有5个逻辑驱动器,就备份出10个扇区文件,每个文件都是

512个字节。

    另外程序还建立一个文件SENUMBER.TXT,记录了这些系统引导扇区的扇区号。

到现在为止,给大家的这5个程序,已经能形成一个完整的操作体系。利用它们可以完成对硬盘扇区的一般分析,为以后继续深入研究打下

基础。譬如怎样在没有引导扇区备份的情况下,拼凑一个引导扇区的字节数据,以挽救不能启动的硬盘;怎样从无法修复引导故障的硬盘上

恢复文件;怎样设置硬盘锁,保护自己的绝密资料等等。

    硬盘工作的全过程,有两个重要的软件接口,在此不讨论硬件接口。一个是INT13H中断接口,一个是ATA接口。在两个接口之间进行数

据转换和传递的,是主板BIOS的磁盘服务程序。INT13H中断接口的作用,是接受操作系统或应用软件的磁盘操作指令,同时返回磁盘操作后

的状态信息。ATA接口的作用,是根据BIOS指令对磁盘进行驱动,同时返回磁盘动作后的信息。

    现在论坛上被一些人炒来炒去的所谓“固件”,实际上就是硬盘生产厂的一些程序代码。这些代码分两部分,一部分是写在硬盘电路板

的ROM里面,作用是将ATA接口的指令解释为硬盘的动作指令。另一部分写在磁盘的保留区里,作为磁头的定位信息。硬盘生产厂的这些程序

代码都是高级机密,一般人是得不到的。即使是硬盘厂的销售代理,也只能得到一般性的技术资料,最底层的技术资料是得不到的。

    再说,向硬盘刷新“固件”的操作,毫无技术可言。刷新程序是人家写的,“固件”的代码也是人家写的,操作者只不过执行了一次傻

瓜式的操作而已。况且,稍有不慎,将硬盘的型号和“固件”的版本号搞错了,硬盘将会彻底报废。

    说句实在话,如果能得到硬盘生产厂的技术资料,以我的编程能力,写一个类似PC3000的软件,可以说不是一件困难的事。至于设计一

块插接卡电路板,更是易如反掌,因为我的本行是搞电路设计的,许多名牌产品的控制板电路都出自我手,编写程序只是我的业余爱好。

    有些人将硬盘的操作技术划分成高、中、低三个等级,这种认识是非常幼稚的。这说明他们没有全面了解硬盘技术,是对硬盘技术管窥

的结果。

    即便是从有些人想赚钱的角度来分析,他们选择的方向也是不正确的。我问一个问题大家就能明白,是硬盘值钱,还是硬盘上的数据值

钱?现在一块80G的硬盘,才500多块钱。当这块硬盘上的“固件”出了问题,或是已经发现了坏道时,它还有多大的维修价值?要知道现在

硬盘的寿命是大大缩短了,转速的提高和存储密度的提高与其寿命是成反比的,这就是硬盘生产厂都将质保期改为一年的原因。

    硬盘在没有物理损坏的情况下,出现最多的是逻辑故障。对这些硬盘的操作,首先要争取将系统引导数据进行修复,这样硬盘上的所有

数据都能保留。如果系统引导数据实在无法修复了,则可以采用数据恢复的方法将重要文件提取出来。

    在对硬盘进行上述操作的过程中,光会使用几个应用软件还不行,我在前文中曾经讲过,软件不是万能的,它永远不会超过人的大脑。硬盘

    出现的逻辑故障是各种各样的,操作者必须根据硬盘的实际运行状况,或出现的提示信息,经过自己的逻辑推理,才能正确地进行判断。这就要求恢复数据的操作者要有创新,要有独具一格的分析方法和技巧。

    我举一个例子来说明这个问题。在WINDOWS 2000和WINDOWS XP操作系统中,如果某一个逻辑盘使用的是NTFS文件系统,则可以将逻辑盘中的文件进行EFS加密处理。但是当系统崩溃,或被误格式化,或人为地不想让别人得到这些文件而采取了某些破坏性操作,如何将这些文

件出来呢?目前所有的数据恢复软件都无能为力。如果想靠修硬盘赚钱的人能在这一方向上有所突破,则“钱”途无量。因为这些数据的恢

复,硬盘的主人是会出很大的酬金的。而且服务对象的范围很广,如作家的文稿、研究生的毕业论文、税务部门查帐、公安部门破案等。

我给出的工具程序,在源代码中将入口参数设为80H,也就是读当前的启动硬盘。如果将其设为81H,就可以读第二个硬盘。也可以多加几条

语句,由操作者选择输入硬盘的编号。将来得到工具程序的源代码后,大家可以随心DIY。

   如果在BIOS中将硬盘设为NONE,那就读不到扇区数据了,因为在DOS下运行的程序没有磁盘映射功能,将来我给大家的WIN32工具程序具有这

种功能。

 致浪子

   如果需要一段明文作为参照,我可以再提供一个扇区的明文数据。虽然在实际的解密过程中是不可能有明文作参照的,但我们现在是进行学

术探讨,可以将条件适当放宽,以达到循序渐进的目的。

 等你的回复
XXXXX的遭遇说明了什么?

    对硬盘的引导扇区进行操作,或是想从硬盘上恢复数据,操作者必须了解扇区分析的基本常识,才能达到预期的目的。如果盲目地运行一些应用软件,有时可能会使故障进一步扩大。因为在运行应用软件时,操作者不知道程序的内部进行了哪些运算和判断。
如果先使用工具程序对有关的扇区数据进行观察和分析,找到故障的原因所在,接下来不管是使用工具程序直接对扇区的错误数据进行修复,还是运行应用软件,其成功率就会大大提高。
    因为使用工具程序对扇区的操作,是完全透明的,是在操作者的逻辑思维之内的。只要人们还承认大脑的智慧要比软件强,这种操作方式就有无可替代的优越性。

    送上一个对扇区清0的WIN32程序

  该程序可运行在NT内核的操作系统中,不能运行在9X内核的操作系统中,因为程序中调用的函数不被9X所支持。程序使用64位数标识磁盘

地址,根据目前硬盘的容量,可以认为对硬盘的操作是无限的“连续扇区清零.EXE”工具程序的性能介绍:

这是一个WIN32工具程序,可以运行在WINDOWS 2000和WINDOWS XP操作系统中,不能运行在WINDOWS 9X和DOS中,因为程序中调用的函数,不

能被WINDOWS 9X和DOS所支持。

现在把该工具程序的运行特点说明一下:

1.以64位数标识磁盘地址,所以可操作的硬盘容量是很大的,只要你的主板BIOS能识别的硬盘,都能进行清零。

2.硬盘的编号从“0”开始,接在第一IDE口的是0号硬盘,第二IDE口的是1号硬盘。如果还接有SCSI硬盘,则为2号硬盘。

3.扇区编号也是从“0”开始,一直编到硬盘的最后一个扇区。

4.只要硬盘接在计算机上,不管在BIOS中如何设置,工具程序都能读取。

5.由于NT内核的操作系统具有磁盘映射功能,所以本程序在扇区清零功能上,比目前所有的应用软件都要强。比DM,比LFORMAT,比

DISKEDIT都强。

6.清除硬盘锁,不费吹灰之力。

7.清除软件垃圾造成的硬盘死锁,易如反掌。


    我教给大家的是一种基本的编程方法,只要掌握了这种方法,每个人都能写出自己的工具程序。如大家所说的扇区对拷程序,其实就是

对扇区进行读和写的两个基本功能。再如大家普遍使用的DISKGEN程序,也是使用了这两个基本功能。按照我告诉大家的方法,茶余饭后的

间,就能写一个自己的实用程序。当你使用自己设计的程序时,你会感到得心应手,因为程序中所有的运算过程,都是自己的思维过程,对

自己来说是完全透明的。

    每个人都遇到过使用成品软件,将问题搞复杂化,甚至是越搞越坏的情况。这并不是说成品软件不好,而是使用者不了解程序内部的运

算过程,使用中带有很大的盲目性的原因。可惜,没有看到该书用DEBUG的工具来怎么样写入硬盘主引导记录表的方法{这是最原始的手编辑

程序}?我几次用DEBUG这工具写入小硬盘的硬盘主引导记录表不成功.......只有写一个字节成功过....不知原因???????????咳,再看吧

DEBUG程序是伴随着DOS操作系统诞生的,至今已有几十年的历史了。在这期间,介绍DEBUG的书籍和文章多如牛毛。

《硬盘。。。》一书由于受篇幅所限,不可能将DEBUG的使用方法收入书中。至于书中有些地方使用了DEBUG的原因,是在讲述工具程序的编

写之前,为了分析分区表的有关字段值,用DEBUG将扇区内容读出来,其主要目的并不是介绍DEBUG。既然lswyl对DEBUG仍然感兴趣,我就专

门为你送上一段DEBUG程序,该程序能将一个扇区文件写入CHS寻址方式的第8扇区,你可以在此基础上任意DIY。

先编辑一个512字节的文件,文件名为SECTOR,然后执行下述指令:
E:\>debug
-nsector ;指定打开的文件名
-l200 ;指定缓冲区地址
-a100 ;由100H处输入代码
1873:0100 mov ax,0301 ;写一个扇区
1873:0103 mov bx,0200 ;取200H处数据
1873:0106 mov cx,0008 ;柱面0,扇号8
1873:0109 mov dx,0080 ;磁头0,硬盘1
1873:010C int 13 ;调用中断
1873:010E int 20 ;返回
1873:0110
-g ;执行程序

Program terminated normally
-q ;退出

    美国的MACROMEDIA公司堪称网页制作软件的鼻祖,该公司的三大软件独霸互联网。这三大软件是:网页制作软件DREAMWEAVER MX、图象

处理软件FIREWORKS MX和动画制作软件FLASH MX,购买这三大正版软件的总价达一万多元。这三大软件也有试用版,但时间限制为一个月。

超过试用期后,软件不能运行,即使重新安装操作系统和三大软件,也无济于事。那么这三大软件采用了什么保护机制呢?请大家看我下面

的操作过程:

1.先在硬盘的某一个逻辑驱动器上安装WIN 2K操作系统。

2.将该逻辑盘作一个GHOST镜像文件。

3.运行零磁道监视程序0SE63.EXE,将数据备份到文件。

4.安装三大软件试用版,然后再运行零磁道监视程序,可以发现有一个扇区被写入了新数据,这就是三大软件的识别代码。

5.试用期过后,软件已不能运行,执行下述操作:

● 释放GHOST镜像文件,耗费时间2分钟。

● 运行扇区操作多功能程序EALLSE.EXE,将前面写入新数据的扇区清零,耗时不到半分钟。

● 安装三大软件,耗时5分钟。

6.再运行三大软件,一切OK。不到10分钟的时间,节省一万多元,而且三大软件可以无限期试用,何乐而不为。

    采取这种保护方式的软件还有很多,只要大家用心去分析,就能发现许多不为人知的秘密。

    现在有这样一个技术。

    明明一个硬盘,进行逻辑扫描,全盘扫不动,因为数据要保留,所以没有进行任何擦除操作。给一个高人处理后,(没有开盘换磁头)

,数据倒出来了,连这个硬盘都仅仅只有少量坏道。


你说的“逻辑扫描”,不知是什么含义,是否指的是对逻辑盘的扫描?

    当逻辑盘的所有系统数据被破坏得很严重,已经无法修复时,最后的方法就是通过读取绝对扇区来恢复数据了。

我所说的'逻辑扫描‘,是指以LBA方式扫描硬盘,比如昆腾的QDPASS(昆腾数据安全系统)、迈拓POWERMAX等等软件都是以逻辑地址来扫描

的,和任何分区都没有关系。

    对于你所说的通过读取绝对扇区来恢复数据,对于倒出数据,可行,但是,那个硬盘是如何从无法扫描到仅有少数坏道的?我认为那个

高人不是用你所说的方法的,因为我拿到手上的时候,那个硬盘的分区都在,数据也在,我自己都可以COPY出来。

     问题是,我不明白他是如何解决一个硬盘从无法扫描到仅有少数坏道的???

检测和修复硬盘坏道的软件很多,每个软件内部的运算方法都不相同。当进行LBA扫描时,如果在一个坏磁道上通不过了,则就不能继续

了。这时可以多试几个软件,只要某一个软件能通过卡脖子的坏道,后面的操作就可以继续进行了。

MHDD支持任意LBA地址开始扫描,我说的那个盘,任意LBA地址开始,都无法继续下去的。

MHDD通不过,其他的软件则有可能通过。

    我有很多自己保留使用的工具程序,没有形成严密的程序结构,所以不便外传,这是原因一。原因二是我不提倡向维修硬盘的物理故障

的方向发展,因为这些技术都不可能真正修好硬盘,说白了就是有点蒙骗别人,我的观点可以从我以前发的帖子中看出来。现在一块80G的

硬盘还不到500元,并且其价格仍然是在不断地下行中,试问修盘还有多少可发展的空间?真正有发展空间的是数据恢复。

    我原贴说的这个技术,就是数据恢复用的,没有说要来修盘。这些软件,只可以测测硬盘。如果你知道我一直强调的那个技术(即,我

不明白他是如何解决一个硬盘从无法扫描到仅有少数坏道的???),大方的话,就给个技术提示,否则就不要老是转移话题了。

另外,对于硬盘维修是怎么回事,我看你也不是很明白,我也不多说。但是,每件事都有它存在的理由的,讽刺或者嘲笑都不是可取的态

度。

    有一点你说的很对,在对硬盘的所有操作中,我从来不用别人的软件。不管是对扇区的读写操作,还是对ATA端口的读写操作,我都是

使用自己写的工具程序。对那些修盘的软件,不要说熟悉了,我根本就不知道怎么用。

    不过在编写工具程序的过程中,我对硬盘的认识是比较深刻的,很多故障现象和操作行为的预期后果,是可以从原理上去分析、去推导的。

    我举一个例子说明这个问题,如果将一辆汽车作为参照物的话,那些使用软件的人好比司机,他必须亲自开一下这辆车,才能知道其性

能如何。那些开发软件的人好比汽车设计者,他只要根据图纸和数据,不用接触这辆车,就能知道其性能如何。

我也举个例子:

    好比一个人,肚子里长了个肿瘤,不治的话,或缓或急的都会死去,治的话,说不定就可以治好。从而延长生命。

    硬盘维修,就是延续硬盘的生命。


   硬盘维修和数据恢复不能分开!

    严重同意!如果仅仅进行硬盘维修难度就会小的多.难就难在即要修好盘,又要保留数据

    同意楼上所说,如果硬盘没有物理损坏,仅引导记录、分区表等软故障,要恢复数据是最容易的.反之如果硬盘有物理损坏,如物理坏道、 

FW丢失、磁头不良等,即修好硬盘,又要恢复数据,的确很难,没有工具以及开盘环境等条件,那是难上难.


    每一个学习扇区分析的人,都要从十六进制的存储规律和换算方法学起。每一个学习编程的人都要从最基本的语法学起。要想达到能自

由驰骋的境界,第一必须打好基础,第二必须要不懈地努力。

  在整个学习过程中,有两道槛要过。
  第一道槛是进入必然王国的槛,也就是学习编程的一些基本语法和技巧。这道槛比较容易过,每个在校的学生经过一段学习之后,都可以

具备写程序的能力。

   第二道槛是进入自由王国的槛,也就是能够进入到想象和创造的自由空间,将自己的想象力写成代码,继而编译成可执行的程序。这一

道槛是比较难的,除了要有扎实的基本功外,往往还需要每个人发挥自己的一点“小聪明”。

    我在《硬盘。。。》一书的原稿中曾经有一段话,是我研究扇区读写技术和编程技术的切实感受,也是我思想认识的升华。但由于出版

社的后期编辑没有类似的经历和体会,可能认为我的那段话是可有可无的通俗比喻,将其删掉了。

这段话的原文是:

“4. 暂时还不会编程的读者,在对过程类内容学习的时候,可以逐步进入到编程领域。其实学习编程并不难,不要将编程看得很神密,认

为高不可攀。在笔者看来,编程其实是一项技能,一门艺术,它和民间的捏面人、剪纸花一样,都属于技能类的范畴,只不过其入门的门槛

比较高罢了。”

    我这段比喻想说明的是,编程不需要任何高深的理论基础,只要会加、减、乘、除四则运算就可以。但是要想达到捏面人和剪纸花的艺

人,能将自己的作品送到联合国去欣赏的水平,是需要付出艰苦的努力和发挥自己的一点“小聪明”的。

    始终默默地关注着数据恢复的发展。硬盘维修和数据恢复那一个重要,取决于一个人的价值观。硬盘维修可以节省不少现钱,但不要忘

记寿命也缩短不少,不稳定因素增加不少。数据恢复时能结合硬盘维修的工具和技巧,则会事倍功半。

    “网上远程硬盘数据恢复,由于其技术门槛较高,目前可能除我之外还没有人能够涉足”

    此话如何理解?不认盘的硬盘网上远程数据恢复,先生是如何实现的,能否给个提示。富士的硬盘大部分情形可以达到,我理

解。MPG、MPF硬盘已有现成的。

    在我的网站上介绍得很清楚,“网上远程硬盘数据恢复”只处理逻辑故障的硬盘,而不能处理发生物理故障的硬盘。

目前我研究的重点,是解决硬盘的逻辑故障。我开发的工具程序中,大多数也是围绕着这个重点而设置程序的功能。当然,我也写过一些读

取端口数据的程序,可以通过ATA驱动对硬盘进行某些操作。
    但是现在我不提倡对发生物理故障的硬盘进行维修了,我的这个观点在原先发的帖子中讲的很清楚。

因为修盘这个行业,入门容易,技术门槛不高,很多人都在争抢这块小小的蛋糕,试问每个人能分得多少?

    而数据恢复这个领域,发展空间很大。目前仍然有许多不为人知的技术禁地,等待人们去发掘。每开垦出一块处女地,可以说都是遍地

黄金,并且没有人与你争抢。同时这块地域还在不断地扩大,君不见,当微软在2006年发布了“长角牛”操作系统以后,新的文件系统

WINFS不是又给了你一块新大陆吗。
  在我倡导的技术领域,我愿意与大家进行交流

    177楼的问题,JNSQS觉得如何?我给你讲,他那个是FW故障,通过修复(纠正)FW MOD即可解决。相关ATA标准可以网上查询,如何运用

是个人本事的问题,技术门槛高不?其实应该改为:入门容易,精通很难,技术门槛很高!

    试问HARDDISK,你所使用的程序,有几个是你写的?你刷新硬盘的固件,有几个是你写的?

你不过是用了别人的程序,向硬盘写入了别人的代码而已。

我本不该与你争论,因为我们两个人的水平不在一个数量级上,但你点着名叫板,我也就不得不回应了。

我这里提到的修盘行业,请大家不要产生误解。为了恢复硬盘数据而采取的修盘行为,我是支持的。这种修盘行为需要配合专用的设备,而

这类设备的价格是比较昂贵的。

    有人说,只要是存在的,就有它存在的道理,此话讲得很对。现在就从历史的和政策方面的原因来分析一下,为什么前两年修盘行业如

雨后春笋一样地冒了出来。

    先说历史的原因。发达国家废弃的硬盘,不花钱就能搞到,因为发达国家很乐意别人弄走他们的电子垃圾。将这些硬盘走私到东南沿海

一带,修好以后进行销售,是有利可图的。因为当时硬盘的价格很高,新硬盘一般都在1000元以上。这也就是为什么从事修盘行业的人,多

数集中在东南沿海一带。

    再说政策方面的原因。当初国家对这些走私活动控制不严,是因为对其危害性认识不足。

但是随着时间的推移,现在的情况已经发生了很大的变化。

    首先新硬盘的价格成倍的下落,将修盘的利润空间挤压到了很小的范围。数量庞大的修盘大军,争抢这块越来越小的蛋糕,其前景是非

常暗淡的。

    现在国家已经认识到,这些电子垃圾带来的环境污染是非常严重的,采取的打击力度会越来越强,所以其生存的空间也就越来越小了。

而数据恢复行业则不同,数据存储量正以空前的速度在增加,人们对数据的重视程度也越来越高。所以如果能在这个行业内占有一席之地,

其发展前景很广阔。

    但是这个行业的技术门槛也是比较高的,想在几个月内,甚至在几天内就能达到比较高的水平,是根本不可能的。要想成为数据恢复行

业中的佼佼者,必须要有正确的学习方法及付出艰苦的努力才行。

    我觉得HARDDISK的观点也没错,因为各人所站的角度不同,结论也不同,这是正常的.不过并不是每一个人都懂得编程,也不是每一个人都

能学得会.因此不懂编程的只能使用别人的工具了,这是事实,懂得编程的不应该瞧不起他们.同道理,对于物理损坏的硬盘,懂编程的不一定懂

修理,这就叫做各有所长.说实话,数据丢失,有许多是因硬盘的物理损坏形成的,如FW丢失、电路板故障等,如能把这些处理好再恢复数据,焉

不是更好吗!

-------------------------------------------
musicvcd 2005-2-28 17:00:

    我觉得HARDDISK的观点也没错,因为各人所站的角度不同,结论也不同,这是正常的.不过并不是每一个人都懂得编程,也不是每一个人都

能学得会.因此不懂编程的只能使用别人的工具了,这是事实,懂得编程的不应该瞧不起他们.同道理,对于物理损坏的硬盘,懂编程的不一定懂

修理,这就叫做各有所长.说实话,数据丢失,有许多是因硬盘的物理损坏形成的,如FW丢失、电路板故障等,如能把这些处理好再恢复数据,焉

不是更好吗!

-------------------------------------------
musicvcd 2005-2-28 17:00:
    我并不是说搞数据恢复必须学编程,那肯定是不现实的,因为每个人都有自己的实际情况。其实在数据恢复领域,即使不会编程,也有

许多值得进行探索、发现的技术领域。下面我略举一二,说明这个问题。

    如对文件系统的研究分析方面,FAT16和FAT32两种文件系统,基本上已经没有什么秘密了。但是对于NTFS文件系统的分析,却远远不

够。如果能把现有的文件系统都分析透彻了,打好了基础,等2006年“长角牛”发布以后,再去研究WINFS文件系统,就能占得先机。因为

恢复数据时,必须要了解文件系统的存储机制。谁能率先掌握了WINFS文件系统的扇区存储规律,谁就能在数据恢复中领先。在WINFS文件系

统这一领域,现在大家都在同一起跑线上,因为它还没有公布。这就决定于每个人对市场走向的分析,和如何确定自己的努力目标了。

    再如对文件格式的研究方面,也有很多需要探索的技术。譬如要恢复一个WORD文档,系统数据被破坏以后,对于不是连续存储的文件,

现成的软件一般无能为力。如果对WORD文件格式非常熟悉,则有可能通过读取物理扇区的方法,将文件碎片拼接起来,最后组成一个完整的

文件。具有特殊格式的文件还有很多,如图形的、绘图的、工程的、财务的等等。

    总之,每个人在某一技术上有所发现、有所突破,都会在这一领域内独树一帜,占有先机。

1.对于不是连续存储的文件的恢复,必须了解文件的组织结构。

2.根据第一区段的字节数和总的字节数,顺次查找后面的存储区段。

3.用软件处理几乎不可能,必须手工操作并配合大脑分析。

4.只有极具价值的文件,才值得使用这种方法。因为工作量很大,很耗费时间和精力。

5.需要根据造成故障的原因,采取有针对性的处理方法。这就不是几句话能说清楚的了,需要每个人在大量的实践操作中,积累经验,启

    发灵感,找出一些规律性的东西。

    再补充一点,恢复不连续存储的文件,要综合运用我的《硬盘。。。》一书中的工具程序。

如果是有编程基础的读者,最好是在我给出的程序的基础上,结合自己的思维方式,写出自己的专用工具程序,将会收到更好的效果。

对于不连续存储的文件,完全恢复的可能性到底有多大呢?这个问题是因人而异的。

    按照理论分析和我的实践操作,只要数据仍然在扇区中存储着,就能100%的恢复。当然在操作过程中,是需要时间、耐心和技巧的,也

就是说,并不是每一个人都能做到的。但我相信,有一定分析能力的读者,在掌握了我在《硬盘。。。》一书中给出的基本方法以后,再经

过自己的提炼和发挥,是能够达到这种境界的。

    吓,那天我将我们自己的做数据恢复软件放出来,比你功能强多了。固件坏了修得不用修,支持将数据直接倒出来,计算P-list及G-

list就可以完全打开。我得才是真正的物理访问,你那个顶多只能是逻辑层的,调用13H中断。不过有空还是可以多交流。

    回答关于汇编的发问

    一个研究编程的人,如果不研究汇编,就象一个学习武功的人,只学会了伸胳膊蹬腿,而没有学到武功的真谛。

虽然现在编程一般不用汇编,这是为了提高编程的效率。但是有的场合,还是非汇编不能解决问题的。

那些认为汇编无用的人,是因为他们对编程的认识太浮浅了。

    在我长期编写有关硬盘程序的过程当中,我认为发生物理损坏的扇区是不可能修好的。

虽然有的程序通过使用所谓的“激活”方法,能暂时将不能读取的扇区变为正常。但这种正常是短命的,用于临时抢救数据还可以,但是这

些扇区很快还是要归于死亡的。我在编程当中,已经实际验证了这一过程。

    最好的做法是,将这些坏扇区划出去不用。大块的连续的扇区,可以用DM。少量的扇区,可以用THDD、MHDD等软件,本论坛有大量的关

于这些软件的帖子。

    我现在开发程序的重点,是如何对能正常读写的硬盘进行操作。

    需要研究与探索的领域是非常广阔的,简单说几个方面:

1。文件系统的扇区存储规律,重点是NTFS。

2。EFS的加密机制。

3。一些主要文件格式的存储规律。

4。不连续存储的文件的恢复。

5。编写进行上述探索所需要的专用工具程序。

 

。。。。。。等等。

    如果不懂编程,可以只看《硬盘扇区读写技术。。。》一书中,有关工具程序的功能和使用方面的内容,以及对系统扇区的数据和文件

系统的扇区特征所进行的分析。要想在数据恢复方面发展,必须掌握的基础知识有:基本的数制转换;扇区数据的读写与分析;文件系统的

扇区存储规律等。

    如果不学编程,可以只掌握工具程序的使用方法,学习扇区分析和文件系统的扇区存储规律。

    如果想学编程,应该达到对C语言熟练,对汇编语言了解。

    其实编程并不难,只要入了门,这是一项趣味无穷的益智游戏。编程者的心境、喜悦和成就感,是在其他工作中根本体验不到的。

    我的一个中学同学,原来也不会编程。在我的书完稿以后,由于当时还没有出版,向我要了一份打印稿。到现在一年多一点的时间,已

经写出了他自己的两个数据恢复程序,而且很实用,颇有创意与水平。

FAQ

 

我前天运行你的软件好用,昨天读0扇区竟然出现了下面的文件,今天读0扇区就又好用,怎么回事呀。我WIN98下运行的。难道还分单双日!

回复问题

可能是您操作上的问题。
我给大家的程序,一定要按照我说明的运行环境进行操作,其中的16位程序应该在DOS实模式下,或是在WIN 98的DOS窗口中运行。
借此机会声明一个问题。我给大家的所有程序,都没有加入任何不良代码。从程序源代码,到编译过程,到最后的目标文件,全部都收录在我写的《硬盘......》一书中,全部内容都是公开的、透明的。
如果大家在使用中有什么问题,可以提出来,我们一起探讨。

为什么我运行了你的h0se63.exe后得到的txt文件内容只是:
"0磁道每一个扇区字节的算术和:"无其它内容。
我说的那种问题,经逻辑、伺服扫描均没有发现问题,所以应该不是坏道引起的。而且你说的要DM来解决的方法,只能解决坏道问题,核心是把坏道分开而已,作用不大,破坏了分区表它就又出来了
回复32楼问题

您说的情况有点奇怪,既然文件中有第一行内容了,就应该还有下面的内容,因为程序写文件时是一气呵成的。
在此给大家提个建议,如果能有运行正常的,是否相互之间解答一下。因为我的时间有限,而且我一个人,也不可能回答所有人的问题。我们相互讨论的目的是共同提高,我希望不要形成一言堂,大家都来参与,既帮助了别人,又提高了自己,这才是一个健康的学术论坛。
32楼的现象我也出现过,后来发现用98启动盘或启动时按ctrl键进入DOS,再运行UCDOS就可以运行h0se63.exe后得到的txt文件内容全有。

不过我又发现一些问题请教楼主?

用98启动盘运行h0se63.exe后看见1扇区是-839,而用启动时按ctrl键进入DOS运行h0se63.exe后看见1扇区是-3702,这种现象是不是当1扇区
出了问题,不能用软盘启动来写备份文件回1扇区呢?而且假如用其它空扇区备份1扇区数据,用软盘启动运行h0se63.exe后,也看不见用扇
区备份1扇区数据,这是什么原因呢?

回复71楼的问题

工具程序在软盘运行与在硬盘运行是一样的。

两次运行读的数据不一样,可能读的不是一块硬盘的数据,也可能中间对硬盘进行了某些操作,如重装操作系统或重新分区等,使扇区数据
发生了变化。

备份的数据没有出现,可能是由于操作上的原因,数据根本就没有写入相应的扇区中去。

回复33楼的问题

既然能将坏道划出去,硬盘已经能正常使用,为什么还要再去破坏它的分区表呢?
我感觉您的问题已经不在本主题的讨论范围之内。

0磁道坏的硬盘有法修吗?
有一6G迈拓硬盘有时能找到硬盘,能正常使用,在读写时偶尔有卡卡声;有时找不到硬盘,一开机就卡啦响,用软件检测报告0磁道坏。
在找不到硬盘的时候,多冷启动几次也能找到
用DM软件将0磁道划出去不用,注意事项参考我在第27楼写的内容。


有个问题 如何能知道DSP是哪家公司的?
问题有点像当初学校里刚学汇编时老师布置的作业题啊,能不能来个提高篇的?比如ATA command的使用之类的,DSP指令嘛就不用了,自己写frimware不现实,那是工程啊。


非常感谢“存储在线”网站给我提供的发言机会,感谢许多硬盘迷的热情鼓励。
楼主的程序全是基于int13的扩展功能上,确实是太初级了点!

我的看法是:基于ata命令是中级;基于硬盘dsp的指令才有高级功能。

pc3000的众多模块正是dsp芯片的多样性造成的


能不能谈一下对硬盘重写固件后数据如何恢复?
请问,我的硬盘除了C区其他分区都不见了,且不能由硬盘启动,用NDD,提示说0磁道损坏,我还能找回里面的数据吗?

我想请教JNSQSH一个问题:我的IBM笔记本硬盘。BIOS显示是IBM-DPLA-2510,不知为何,突然不启动了,我给低格了,用什么软件也不能分区格式化了,里面还有点声音。BIOS时认时不认。想请教。在线等您的回答。
我也想请教JNSQSH一个问题,我当时弄了一个IBM 1.5G的硬盘当移动硬盘,后来想分区,低格后没分区好,后来用mhdd29加了密码,硬盘一开机就提示硬盘密码,我是在一个760的老本本上用的MHDD29,现在屏已经坏了,不知道MHDD29加密的怎么能解开,密码忘了,是不是还必须是原先的那个760那?不知有希望吗,有正好当学习了,要不是这个破密码,我也学不了这么多的硬盘知识,我在也济南,有机会想你讨教!!


你书中说的只有FAT16和FAT32 NTFS的寻址有什么区别?????

由于出版社方面给我限定了书的字数,所以NTFS的内容没有收录在书中。因为扇区的读写是针对物理硬盘的,与逻辑盘和文件系统没有关
系,所以NTFS的寻址是一样的。只要了解NTFS文件系统的扇区存储格式,同样可以使用书中给出的工具程序,进行各种操作。






一个问题:在《电脑高手》杂志中的一篇文章中说,“硬盘主引导记录所在的硬盘磁道上的其它扇区一般均空出,且这个扇区所在硬盘磁道
是不属于分区范围的,也就是说假如该盘每磁道扇区数为63,那么从绝对63扇区开始才是分区的内容。”

  我的硬盘在BIOS中查看时,Sylinder 19158,Head 16,Sector 255,当我用INT13中断查看主导记录时,分区表中的信息显示主分区开
始于1磁头,0柱面,1扇区,按《电脑高手》中所述是没有问题的,可是在分区之前的扇区数为:3F,即63个扇区。BIOS中显示的不是LBA的
参数吗?或者说硬盘实际不是按LBA参数工作的吗?

BIOS中的参数是虚拟的。

即然BIOS中的参数是虚拟的,BIOS中是否使用的LBA工作模式指定的呢?
还有,我们在INT13H中断中用的地址是实际存在的地址吗?实际每个磁道只有63个扇区吗?

现在的硬盘都采用等密度记录方式,每磁道63个扇区也是虚拟的。其他内容可参阅我在第66楼发的帖子。

我还有一点不明白,即然都是虚拟的,具体的虚拟方法又是怎样的呢?所有的硬盘在INT13H调用时都虚拟为每磁道63个扇区吗?,为什么虚
拟为63个而不是64个,这有什么特殊意义吗?

对上述问题我已经清楚了,我们的硬盘现在使用LBA工作模式,而在LBA工作模式下,扇区值为1-63,而我的电脑BIOS中的参数是按CHS模式
显示的,虽然实际工作为LBA



大高手 , 我想问个问题

在硬碟的结构上,大约2/5的结构是用户能用到的存储数据的区域,还有大约3/5的区域是用于记录硬盘的其他信息,譬如SERVO信息等等

我在别的论坛上看到的。请问真的是这样的吗?那不是很浪费[em12]

进行技术讨论,别用“高手”一词,否则没人敢回答你了。

这种说法不一定可信。

我所了解的WD的硬盘因为使用了数据卫士技术,预留了5%的扇区,可能是预留的最多的了。另外从原理上分析,保留扇区中记录的是磁头定
位信息,也没有必要留那么多。

这就是每个人的经营理念问题



我想问一下JNSQS,我现在的移动硬盘里的一些图形文件不可以复制和打开,这个移动硬盘里的数据是以前从我笔记本电脑的硬盘里复制出
来的,因为现在的需要想再复制回笔记本硬盘,可是移动硬盘里的文档文件可以复制回去并且可以打开,可是里面的图形文件无法复制和打
开,打开文件里系统提示文件可能被破坏或者磁盘写保护,JNSQS可以帮我一下吗?这样的问题可以解决一下吗?请你帮我一下吗 当初从笔记本中复制出来的时候能打开吗?
有些应用软件在存储用户文件的时候,不仅存储文件的数据,同时记录文件的当前环境。如果日后环境改变了,则应用软件就不认了。