读写与分析硬盘扇区
读写与分析硬盘扇区今天头一次进这个论坛,看到有很多硬盘迷,甚为高兴。我写过一整套读写和分析
磁盘扇区的工具程序,总共有40多个,收录在我的一本书中。
书名是《硬盘扇区读写技术━━修复硬盘与恢复文件》。该书现已在出版社的工作
流程当中,估计四月份就能出版。
在本论坛发帖,不知能否带附件?如果可以,我准备将我写的程序陆续送给大家,并
期待与大家进行技术交流
本程序是中文显示界面,程序内部调用的是扩展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个扇区监视程序
今天送给大家的是硬盘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扇区竟然出现了下面的文件,今天读0扇区就又好用,怎么回事呀。我WIN98下运行的。难道还分单双日!
回复29楼的问题
可能是您操作上的问题。
我给大家的程序,一定要按照我说明的运行环境进行操作,其中的16位程序应该在DOS实模式下,或是在WIN 98的DOS窗口中运行。
借此机会声明一个问题。我给大家的所有程序,都没有加入任何不良代码。从程序源代码,到编译过程,到最后的目标文件,全部都收录在我写的《硬盘......》一书中,全部内容都是公开的、透明的。
如果大家在使用中有什么问题,可以提出来,我们一起探讨。
为什么我运行了你的h0se63.exe后得到的txt文件内容只是:
"0磁道每一个扇区字节的算术和:"无其它内容。
我说的那种问题,经逻辑、伺服扫描均没有发现问题,所以应该不是坏道引起的。而且你说的要DM来解决的方法,只能解决坏道问题,核心是把坏道分开而已,作用不大,破坏了分区表它就又出来了
回复32楼问题
您说的情况有点奇怪,既然文件中有第一行内容了,就应该还有下面的内容,因为程序写文件时是一气呵成的。
在此给大家提个建议,如果能有运行正常的,是否相互之间解答一下。因为我的时间有限,而且我一个人,也不可能回答所有人的问题。我们相互讨论的目的是共同提高,我希望不要形成一言堂,大家都来参与,既帮助了别人,又提高了自己,这才是一个健康的学术论坛。
回复33楼的问题
既然能将坏道划出去,硬盘已经能正常使用,为什么还要再去破坏它的分区表呢?
我感觉您的问题已经不在本主题的讨论范围之内。
前文曾阐述过0磁道63个扇区的特殊性,今天讲一下如何利用这些扇区的特殊性。
硬盘的引导故障,大多是由于系统引导扇区的数据被破坏所致。其中最重要的有两个扇区,一个是0号扇区,存储的是主引导记录和主分区表;另一个是63号扇区,存储的是主分区C的分区引导记录。如果能把这两个扇区的数据保存好,则硬盘就没有什么大问题了,因为操作系统一般是安装在C盘上。
使用HRSECTOR程序可以将扇区数据备份到文件中,这虽然是一种保存数据的方法,但文件可能损坏,也可能你存放文件的逻辑盘不能引导了,文件也就读不出来了。
现在将前面给大家的三个程序联合使用,就能实现一种最安全的保存数据的方法。先用HRSECTOR程序备份两个扇区数据,它们是0号扇区和63号扇区。再用HWSECTOR程序将两个文件的内容写入1-62号扇区中去(注:线性寻址的扇区号,与0磁道中63个扇区的磁道内编号差1)。在进行操作的前后,用H0SE63程序进行监测验证。
如果硬盘发生故障,不能引导了。可以用软盘引导,然后将备份的数据读出来,再写回系统扇区中去,就能修复硬盘。只要硬盘的0磁道不坏,备份的数据就万无一失。
至于C盘以后的逻辑驱动器,必须掌握了扇区寻址的计算方法以后,才能找到它们的系统引导数据,进行备份。这些内容,我改日再向大家介绍。
0磁道坏的硬盘有法修吗?
有一6G迈拓硬盘有时能找到硬盘,能正常使用,在读写时偶尔有卡卡声;有时找不到硬盘,一开机就卡啦响,用软件检测报告0磁道坏。
在找不到硬盘的时候,多冷启动几次也能找到
用DM软件将0磁道划出去不用,注意事项参考我在第27楼写的内容。
今天送给大家第四个工具程序,程序名为“数制转换.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个程序,已经能形成一个完整的操作体系。利用它们可以完成对硬盘扇区的一般分析,为以后继续深入研究打下基础。譬如怎样在没有引导扇区备份的情况下,拼凑一个引导扇区的字节数据,以挽救不能启动的硬盘;怎样从无法修复引导故障的硬盘上恢复文件;怎样设置硬盘锁,保护自己的绝密资料等等。
非常感谢“存储在线”网站给我提供的发言机会,感谢许多硬盘迷的热情鼓励。
楼主的程序全是基于int13的扩展功能上,确实是太初级了点!
我的看法是:基于ata命令是中级;基于硬盘dsp的指令才有高级功能。
pc3000的众多模块正是dsp芯片的多样性造成的
有个问题 如何能知道DSP是哪家公司的?
问题有点像当初学校里刚学汇编时老师布置的作业题啊,能不能来个提高篇的?比如ATA command的使用之类的,DSP指令嘛就不用了,自己写frimware不现实,那是工程啊。
经过了一段时间紧张的编程工作,终于完成了预定的阶段性的一个小课题,准备放松一下,休息几天。
今天回到论坛里,准备谈一下我个人对论坛的一些看法。我认为一个以讨论硬盘技术为主题的专业论坛,应该以服务于大众为宗旨。这样才能吸引广大的硬盘技术爱好者,提高论坛的人气。论坛上讨论的技术范围,应该涵盖有关硬盘的所有技术领域,如操作系统的引导扇区数据分析、文件系统的扇区存储规律、硬盘扇区的读写技术、系统引导数据的修复、硬盘上不能正常读取的文件恢复等。
可是现在本论坛上讨论的内容,几乎都是关于对硬盘进行物理维修的内容。参与讨论的人员,可能都是一些开店的搞硬盘维修的人员。所以让人感觉论坛上的“商业”味和“钱“味太浓了,而“学术讨论”和“技术分析”的气氛几乎没有,这不能不说是一种悲哀。
硬盘工作的全过程,有两个重要的软件接口,在此不讨论硬件接口。一个是INT13H中断接口,一个是ATA接口。在两个接口之间进行数据转换和传递的,是主板BIOS的磁盘服务程序。INT13H中断接口的作用,是接受操作系统或应用软件的磁盘操作指令,同时返回磁盘操作后的状态信息。ATA接口的作用,是根据BIOS指令对磁盘进行驱动,同时返回磁盘动作后的信息。
现在论坛上被一些人炒来炒去的所谓“固件”,实际上就是硬盘生产厂的一些程序代码。这些代码分两部分,一部分是写在硬盘电路板的ROM里面,作用是将ATA接口的指令解释为硬盘的动作指令。另一部分写在磁盘的保留区里,作为磁头的定位信息。硬盘生产厂的这些程序代码都是高级机密,一般人是得不到的。即使是硬盘厂的销售代理,也只能得到一般性的技术资料,最底层的技术资料是得不到的。
再说,向硬盘刷新“固件”的操作,毫无技术可言。刷新程序是人家写的,“固件”的代码也是人家写的,操作者只不过执行了一次傻瓜式的操作而已。况且,稍有不慎,将硬盘的型号和“固件”的版本号搞错了,硬盘将会彻底报废。
说句实在话,如果能得到硬盘生产厂的技术资料,以我的编程能力,写一个类似PC3000的软件,可以说不是一件困难的事。至于设计一块插接卡电路板,更是易如反掌,因为我的本行是搞电路设计的,许多名牌产品的控制板电路都出自我手,编写程序只是我的业余爱好。
有些人将硬盘的操作技术划分成高、中、低三个等级,这种认识是非常幼稚的。这说明他们没有全面了解硬盘技术,是对硬盘技术管窥的结果。
即便是从有些人想赚钱的角度来分析,他们选择的方向也是不正确的。我问一个问题大家就能明白,是硬盘值钱,还是硬盘上的数据值钱?现在一块80G的硬盘,才500多块钱。当这块硬盘上的“固件”出了问题,或是已经发现了坏道时,它还有多大的维修价值?要知道现在硬盘的寿命是大大缩短了,转速的提高和存储密度的提高与其寿命是成反比的,这就是硬盘生产厂都将质保期改为一年的原因。
硬盘在没有物理损坏的情况下,出现最多的是逻辑故障。对这些硬盘的操作,首先要争取将系统引导数据进行修复,这样硬盘上的所有数据都能保留。如果系统引导数据实在无法修复了,则可以采用数据恢复的方法将重要文件提取出来。
在对硬盘进行上述操作的过程中,光会使用几个应用软件还不行,我在前文中曾经讲过,软件不是万能的,它永远不会超过人的大脑。硬盘出现的逻辑故障是各种各样的,操作者必须根据硬盘的实际运行状况,或出现的提示信息,经过自己的逻辑推理,才能正确地进行判断。这就要求恢复数据的操作者要有创新,要有独具一格的分析方法和技巧。
我举一个例子来说明这个问题。在WINDOWS 2000和WINDOWS XP操作系统中,如果某一个逻辑盘使用的是NTFS文件系统,则可以将逻辑盘中的文件进行EFS加密处理。但是当系统崩溃,或被误格式化,或人为地不想让别人得到这些文件而采取了某些破坏性操作,如何将这些文件读出来呢?目前所有的数据恢复软件都无能为力。如果想靠修硬盘赚钱的人能在这一方向上有所突破,则“钱”途无量。因为这些数据的恢复,硬盘的主人是会出很大的酬金的。而且服务对象的范围很广,如作家的文稿、研究生的毕业论文、税务部门查帐、公安部门破案等。
最后,我建议本论坛的管理人员和版主,能在引导论坛的讨论气氛上多做点工作,使论坛的“学术讨论”和“技术分析”的气氛浓一些。如果大家对我倡导的内容和方向感兴趣,我准备再送给大家几个有关硬盘扇区操作的WIN32工具程序。
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楼的问题
工具程序在软盘运行与在硬盘运行是一样的。
两次运行读的数据不一样,可能读的不是一块硬盘的数据,也可能中间对硬盘进行了某些操作,如重装操作系统或重新分区等,使扇区数据发生了变化。
备份的数据没有出现,可能是由于操作上的原因,数据根本就没有写入相应的扇区中去。
我给出的工具程序,在源代码中将入口参数设为80H,也就是读当前的启动硬盘。如果将其设为81H,就可以读第二个硬盘。也可以多加几条语句,由操作者选择输入硬盘的编号。将来得到工具程序的源代码后,大家可以随心DIY。
如果在BIOS中将硬盘设为NONE,那就读不到扇区数据了,因为在DOS下运行的程序没有磁盘映射功能,将来我给大家的WIN32工具程序具有这种功能。
致浪子
如果需要一段明文作为参照,我可以再提供一个扇区的明文数据。虽然在实际的解密过程中是不可能有明文作参照的,但我们现在是进行学术探讨,可以将条件适当放宽,以达到循序渐进的目的。
等你的回复
XXXXX的遭遇说明了什么?
对硬盘的引导扇区进行操作,或是想从硬盘上恢复数据,操作者必须了解扇区分析的基本常识,才能达到预期的目的。如果盲目地运行一些应用软件,有时可能会使故障进一步扩大。因为在运行应用软件时,操作者不知道程序的内部进行了哪些运算和判断。
如果先使用工具程序对有关的扇区数据进行观察和分析,找到故障的原因所在,接下来不管是使用工具程序直接对扇区的错误数据进行修复,还是运行应用软件,其成功率就会大大提高。
因为使用工具程序对扇区的操作,是完全透明的,是在操作者的逻辑思维之内的。只要人们还承认大脑的智慧要比软件强,这种操作方式就有无可替代的优越性。
dys800113的遭遇请看主题《硬盘分区表谁可以提供?》。
我希望能做一个纯技术的站点,而且侧重于软原理和修复,无商业目的,如果有朋友的数据要恢复,信任我们的话,我站不会收费
送上一个对扇区清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.清除软件垃圾造成的硬盘死锁,易如反掌。
能不能谈一下对硬盘重写固件后数据如何恢复?
请问,我的硬盘除了C区其他分区都不见了,且不能由硬盘启动,用NDD,提示说0磁道损坏,我还能找回里面的数据吗?
接到机械工业出版社的通知,《硬盘扇区读写技术:修复硬盘与恢复文件》一书已经出版,特此告知。
我原来注册的用户名jnsqs,不知为何又不能用了。没办法,只好在原用户名的后面加了一个字母h,重新注册了一下。
因为有许多硬盘爱好者关心《硬盘。。。》一书的出版,不给大家说一声,总感觉对不住你们。其实我很愿意与大家进行技术交流,我个人无所求,只想让大家都能掌握扇区读写和分析技术。因为只有每个人的技术提高了,我们整个国家,整个民族的技术水平才能提高。
我教给大家的是一种基本的编程方法,只要掌握了这种方法,每个人都能写出自己的工具程序。如大家所说的扇区对拷程序,其实就是对扇区进行读和写的两个基本功能。再如大家普遍使用的DISKGEN程序,也是使用了这两个基本功能。按照我告诉大家的方法,茶余饭后的时间,就能写一个自己的实用程序。当你使用自己设计的程序时,你会感到得心应手,因为程序中所有的运算过程,都是自己的思维过程,对自己来说是完全透明的。
每个人都遇到过使用成品软件,将问题搞复杂化,甚至是越搞越坏的情况。这并不是说成品软件不好,而是使用者不了解程序内部的运算过程,使用中带有很大的盲目性的原因。
看到很多硬盘爱好者写的要求我回来的帖子,在此感谢大家的鼓励。如果站长在此声明欢迎我回来,我会满足大家的要求的。
我想请教JNSQSH一个问题:我的IBM笔记本硬盘。BIOS显示是IBM-DPLA-2510,不知为何,突然不启动了,我给低格了,用什么软件也不能分区格式化了,里面还有点声音。BIOS时认时不认。想请教。在线等您的回答。
我也想请教JNSQSH一个问题,我当时弄了一个IBM 1.5G的硬盘当移动硬盘,后来想分区,低格后没分区好,后来用mhdd29加了密码,硬盘一开机就提示硬盘密码,我是在一个760的老本本上用的MHDD29,现在屏已经坏了,不知道MHDD29加密的怎么能解开,密码忘了,是不是还必须是原先的那个760那?不知有希望吗,有正好当学习了,要不是这个破密码,我也学不了这么多的硬盘知识,我在也济南,有机会想你讨教!!
可惜,没有看到该书用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 ;退出
大家好。
与《存储在线》的负责人AWU的误会已经消除,我决定返回论坛与大家继续进行技术交流。
美国的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分钟的时间,节省一万多元,而且三大软件可以无限期试用,何乐而不为。
采取这种保护方式的软件还有很多,只要大家用心去分析,就能发现许多不为人知的秘密。
一个问题:在《电脑高手》杂志中的一篇文章中说,“硬盘主引导记录所在的硬盘磁道上的其它扇区一般均空出,且这个扇区所在硬盘磁道是不属于分区范围的,也就是说假如该盘每磁道扇区数为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
现在有这样一个技术。
明明一个硬盘,进行逻辑扫描,全盘扫不动,因为数据要保留,所以没有进行任何擦除操作。给一个高人处理后,(没有开盘换磁头),数据倒出来了,连这个硬盘都仅仅只有少量坏道。
因为不明白其中道理,所以觉得神奇。不知楼主JNSQS能否解释一下?
你说的“逻辑扫描”,不知是什么含义,是否指的是对逻辑盘的扫描?
当逻辑盘的所有系统数据被破坏得很严重,已经无法修复时,最后的方法就是通过读取绝对扇区来恢复数据了。
我所说的'逻辑扫描‘,是指以LBA方式扫描硬盘,比如昆腾的QDPASS(昆腾数据安全系统)、迈拓POWERMAX等等软件都是以逻辑地址来扫描的,和任何分区都没有关系。
对于你所说的通过读取绝对扇区来恢复数据,对于倒出数据,可行,但是,那个硬盘是如何从无法扫描到仅有少数坏道的?我认为那个高人不是用你所说的方法的,因为我拿到手上的时候,那个硬盘的分区都在,数据也在,我自己都可以COPY出来。
问题是,我不明白他是如何解决一个硬盘从无法扫描到仅有少数坏道的???
检测和修复硬盘坏道的软件很多,每个软件内部的运算方法都不相同。当进行LBA扫描时,如果在一个坏磁道上通不过了,则就不能继续了。这时可以多试几个软件,只要某一个软件能通过卡脖子的坏道,后面的操作就可以继续进行了。
MHDD支持任意LBA地址开始扫描,我说的那个盘,任意LBA地址开始,都无法继续下去的。
MHDD通不过,其他的软件则有可能通过。
我有很多自己保留使用的工具程序,没有形成严密的程序结构,所以不便外传,这是原因一。原因二是我不提倡向维修硬盘的物理故障的方向发展,因为这些技术都不可能真正修好硬盘,说白了就是有点蒙骗别人,我的观点可以从我以前发的帖子中看出来。现在一块80G的硬盘还不到500元,并且其价格仍然是在不断地下行中,试问修盘还有多少可发展的空间?真正有发展空间的是数据恢复。
我原贴说的这个技术,就是数据恢复用的,没有说要来修盘。这些软件,只可以测测硬盘。如果你知道我一直强调的那个技术(即,我不明白他是如何解决一个硬盘从无法扫描到仅有少数坏道的???),大方的话,就给个技术提示,否则就不要老是转移话题了。
另外,对于硬盘维修是怎么回事,我看你也不是很明白,我也不多说。但是,每件事都有它存在的理由的,讽刺或者嘲笑都不是可取的态度。
我没有讽刺和嘲笑别人的意思,我只是表述自己的观点。
有一点你说的很对,在对硬盘的所有操作中,我从来不用别人的软件。不管是对扇区的读写操作,还是对ATA端口的读写操作,我都是使用自己写的工具程序。对那些修盘的软件,不要说熟悉了,我根本就不知道怎么用。
不过在编写工具程序的过程中,我对硬盘的认识是比较深刻的,很多故障现象和操作行为的预期后果,是可以从原理上去分析、去推导的。
我举一个例子说明这个问题,如果将一辆汽车作为参照物的话,那些使用软件的人好比司机,他必须亲自开一下这辆车,才能知道其性能如何。那些开发软件的人好比汽车设计者,他只要根据图纸和数据,不用接触这辆车,就能知道其性能如何。
我也举个例子:
好比一个人,肚子里长了个肿瘤,不治的话,或缓或急的都会死去,治的话,说不定就可以治好。从而延长生命。
硬盘维修,就是延续硬盘的生命。
买个硬盘几百元,修个硬盘几十元,打打算盘,哪个合算?
硬盘维修和数据恢复不能分开!
严重同意!如果仅仅进行硬盘维修难度就会小的多.难就难在即要修好盘,又要保留数据
同意楼上所说,如果硬盘没有物理损坏,仅引导记录、分区表等软故障,要恢复数据是最容易的.反之如果硬盘有物理损坏,如物理坏道、FW丢失、磁头不良等,即修好硬盘,又要恢复数据,的确很难,没有工具以及开盘环境等条件,那是难上难.
我说兄弟,8。4G能用,现在都什么时候了,你能不能帮我们128G的,以上的,你的软件很适应二手市场
对于经济相对不好的地方来说,小容量硬盘还是有很大市场的。
大高手 , 我想问个问题
在硬碟的结构上,大约2/5的结构是用户能用到的存储数据的区域,还有大约3/5的区域是用于记录硬盘的其他信息,譬如SERVO信息等等
我在别的论坛上看到的。请问真的是这样的吗?那不是很浪费
进行技术讨论,别用“高手”一词,否则没人敢回答你了。
这种说法不一定可信。
我所了解的WD的硬盘因为使用了数据卫士技术,预留了5%的扇区,可能是预留的最多的了。另外从原理上分析,保留扇区中记录的是磁头定位信息,也没有必要留那么多。
这就是每个人的经营理念问题。
你只看到修盘有一定的市场,却没看到有多少人在争抢这块蛋糕,更没看到修盘市场的未来走向。
而网上远程硬盘数据恢复,由于其技术门槛较高,目前可能除我之外还没有人能够涉足,即使占到万分之一的份额,足矣。
我想问一下JNSQS,我现在的移动硬盘里的一些图形文件不可以复制和打开,这个移动硬盘里的数据是以前从我笔记本电脑的硬盘里复制出来的,因为现在的需要想再复制回笔记本硬盘,可是移动硬盘里的文档文件可以复制回去并且可以打开,可是里面的图形文件无法复制和打开,打开文件里系统提示文件可能被破坏或者磁盘写保护,JNSQS可以帮我一下吗?这样的问题可以解决一下吗?请你帮我一下吗
当初从笔记本中复制出来的时候能打开吗?
有些应用软件在存储用户文件的时候,不仅存储文件的数据,同时记录文件的当前环境。如果日后环境改变了,则应用软件就不认了。
每一个学习扇区分析的人,都要从十六进制的存储规律和换算方法学起。每一个学习编程的人都要从最基本的语法学起。要想达到能自由驰骋的境界,第一必须打好基础,第二必须要不懈地努力。
在整个学习过程中,有两道槛要过。
第一道槛是进入必然王国的槛,也就是学习编程的一些基本语法和技巧。这道槛比较容易过,每个在校的学生经过一段学习之后,都可以具备写程序的能力。
第二道槛是进入自由王国的槛,也就是能够进入到想象和创造的自由空间,将自己的想象力写成代码,继而编译成可执行的程序。这一道槛是比较难的,除了要有扎实的基本功外,往往还需要每个人发挥自己的一点“小聪明”。
我在《硬盘。。。》一书的原稿中曾经有一段话,是我研究扇区读写技术和编程技术的切实感受,也是我思想认识的升华。但由于出版社的后期编辑没有类似的经历和体会,可能认为我的那段话是可有可无的通俗比喻,将其删掉了。
这段话的原文是:
“4. 暂时还不会编程的读者,在对过程类内容学习的时候,可以逐步进入到编程领域。其实学习编程并不难,不要将编程看得很神密,认为高不可攀。在笔者看来,编程其实是一项技能,一门艺术,它和民间的捏面人、剪纸花一样,都属于技能类的范畴,只不过其入门的门槛比较高罢了。”
我这段比喻想说明的是,编程不需要任何高深的理论基础,只要会加、减、乘、除四则运算就可以。但是要想达到捏面人和剪纸花的艺人,能将自己的作品送到联合国去欣赏的水平,是需要付出艰苦的努力和发挥自己的一点“小聪明”的。
始终默默地关注着数据恢复的发展。硬盘维修和数据恢复那一个重要,取决于一个人的价值观。硬盘维修可以节省不少现钱,但不要忘记寿命也缩短不少,不稳定因素增加不少。数据恢复时能结合硬盘维修的工具和技巧,则会事倍功半。
“网上远程硬盘数据恢复,由于其技术门槛较高,目前可能除我之外还没有人能够涉足”
此话如何理解?不认盘的硬盘网上远程数据恢复,先生是如何实现的,能否给个提示。富士的硬盘大部分情形可以达到,我理解。MPG、MPF硬盘已有现成的。
在我的网站上介绍得很清楚,“网上远程硬盘数据恢复”只处理逻辑故障的硬盘,而不能处理发生物理故障的硬盘。
目前我研究的重点,是解决硬盘的逻辑故障。我开发的工具程序中,大多数也是围绕着这个重点而设置程序的功能。当然,我也写过一些读取端口数据的程序,可以通过ATA驱动对硬盘进行某些操作。
但是现在我不提倡对发生物理故障的硬盘进行维修了,我的这个观点在原先发的帖子中讲的很清楚。
因为修盘这个行业,入门容易,技术门槛不高,很多人都在争抢这块小小的蛋糕,试问每个人能分得多少?
而数据恢复这个领域,发展空间很大。目前仍然有许多不为人知的技术禁地,等待人们去发掘。每开垦出一块处女地,可以说都是遍地黄金,并且没有人与你争抢。同时这块地域还在不断地扩大,君不见,当微软在2006年发布了“长角牛”操作系统以后,新的文件系统WINFS不是又给了你一块新大陆吗。
在我倡导的技术领域,我愿意与大家进行交流
177楼的问题,JNSQS觉得如何?我给你讲,他那个是FW故障,通过修复(纠正)FW MOD即可解决。相关ATA标准可以网上查询,如何运用是个人本事的问题,技术门槛高不?其实应该改为:入门容易,精通很难,技术门槛很高!
试问HARDDISK,你所使用的程序,有几个是你写的?你刷新硬盘的固件,有几个是你写的?
你不过是用了别人的程序,向硬盘写入了别人的代码而已。
我本不该与你争论,因为我们两个人的水平不在一个数量级上,但你点着名叫板,我也就不得不回应了。
我这里提到的修盘行业,请大家不要产生误解。为了恢复硬盘数据而采取的修盘行为,我是支持的。这种修盘行为需要配合专用的设备,而这类设备的价格是比较昂贵的。
有人说,只要是存在的,就有它存在的道理,此话讲得很对。现在就从历史的和政策方面的原因来分析一下,为什么前两年修盘行业如雨后春笋一样地冒了出来。
先说历史的原因。发达国家废弃的硬盘,不花钱就能搞到,因为发达国家很乐意别人弄走他们的电子垃圾。将这些硬盘走私到东南沿海一带,修好以后进行销售,是有利可图的。因为当时硬盘的价格很高,新硬盘一般都在1000元以上。这也就是为什么从事修盘行业的人,多数集中在东南沿海一带。
再说政策方面的原因。当初国家对这些走私活动控制不严,是因为对其危害性认识不足。
但是随着时间的推移,现在的情况已经发生了很大的变化。
首先新硬盘的价格成倍的下落,将修盘的利润空间挤压到了很小的范围。数量庞大的修盘大军,争抢这块越来越小的蛋糕,其前景是非常暗淡的。
现在国家已经认识到,这些电子垃圾带来的环境污染是非常严重的,采取的打击力度会越来越强,所以其生存的空间也就越来越小了。
而数据恢复行业则不同,数据存储量正以空前的速度在增加,人们对数据的重视程度也越来越高。所以如果能在这个行业内占有一席之地,其发展前景很广阔。
但是这个行业的技术门槛也是比较高的,想在几个月内,甚至在几天内就能达到比较高的水平,是根本不可能的。要想成为数据恢复行业中的佼佼者,必须要有正确的学习方法及付出艰苦的努力才行。
我没有歧视任何人的意思,我讲的都是事实。如果在一个学术论坛上连事实都不能讲的话,那么这个论坛就成了虚伪的、行骗者的天下了。
我只所以指出修盘行业的历史、现状和未来,就是希望帮助原来修盘的有识之士,能够调整自己的经营方向,拓展自己的营利空间。同时引导后来的硬盘爱好者,选择一个正确的学习方向。
如果好心不得好报,那么尽管走你自己的路去吧,与我何干?
我觉得HARDDISK的观点也没错,因为各人所站的角度不同,结论也不同,这是正常的.不过并不是每一个人都懂得编程,也不是每一个人都能学得会.因此不懂编程的只能使用别人的工具了,这是事实,懂得编程的不应该瞧不起他们.同道理,对于物理损坏的硬盘,懂编程的不一定懂修理,这就叫做各有所长.说实话,数据丢失,有许多是因硬盘的物理损坏形成的,如FW丢失、电路板故障等,如能把这些处理好再恢复数据,焉不是更好吗!
个人感觉维修硬盘应该知道如下技巧:
初级:会操作电脑和相应软件,芯片焊接,电子电路,硬盘保护,硬盘存储原理,这样可以维修大约4~5成的硬盘故障。
中级:会英文、俄文,ATA,校验,反汇编,解密,DMA,可以自编程序和制作设备。这样可以维修大约6~7成的硬盘故障。
高级:DSP,ARM,反编译,精密机械,破解内核,模拟内核。这样可以维修8~10成的硬盘故障。
我并不是说搞数据恢复必须学编程,那肯定是不现实的,因为每个人都有自己的实际情况。其实在数据恢复领域,即使不会编程,也有许多值得进行探索、发现的技术领域。下面我略举一二,说明这个问题。
如对文件系统的研究分析方面,FAT16和FAT32两种文件系统,基本上已经没有什么秘密了。但是对于NTFS文件系统的分析,却远远不够。如果能把现有的文件系统都分析透彻了,打好了基础,等2006年“长角牛”发布以后,再去研究WINFS文件系统,就能占得先机。因为恢复数据时,必须要了解文件系统的存储机制。谁能率先掌握了WINFS文件系统的扇区存储规律,谁就能在数据恢复中领先。在WINFS文件系统这一领域,现在大家都在同一起跑线上,因为它还没有公布。这就决定于每个人对市场走向的分析,和如何确定自己的努力目标了。
再如对文件格式的研究方面,也有很多需要探索的技术。譬如要恢复一个WORD文档,系统数据被破坏以后,对于不是连续存储的文件,现成的软件一般无能为力。如果对WORD文件格式非常熟悉,则有可能通过读取物理扇区的方法,将文件碎片拼接起来,最后组成一个完整的文件。具有特殊格式的文件还有很多,如图形的、绘图的、工程的、财务的等等。
总之,每个人在某一技术上有所发现、有所突破,都会在这一领域内独树一帜,占有先机。
从有些帖子中可以看出,有人可能认为我没有硬件知识,不会修硬盘的物理故障,从而只会讨论软件问题。
其实非也,硬件电路设计是我的本行,软件开发只是我的业余爱好。我的单片机开发能力和电路设计能力,即使机电一体化专业的本科生和研究生,也不一定能达到我的水平。
很多名牌产品的电路,都是我主持设计的。我说的是“设计能力”,而不是一般的“分析能力”。这其中包括:单片机程序开发、单片机外围电路设计,信号的采样、滤波、整形,积分电路和微分电路中每一个电阻和电容的取值计算等等。10年以前,我的一项设计,还曾获得过国家专利。
为什么我有这么好的硬件基础,弃之不用呢?就是因为我要避开萎缩的市场,而去追求一个发展的市场。
我正在研究你的书,写的非常不错,受益匪浅。现在有个问题想问你:对于一个非连续存放的文件,要恢复的话,它难在哪里,你一般是怎么操作的,完全恢复的可能性有多大?
回复196楼
1.对于不是连续存储的文件的恢复,必须了解文件的组织结构。
2.根据第一区段的字节数和总的字节数,顺次查找后面的存储区段。
3.用软件处理几乎不可能,必须手工操作并配合大脑分析。
4.只有极具价值的文件,才值得使用这种方法。因为工作量很大,很耗费时间和精力。
5.需要根据造成故障的原因,采取有针对性的处理方法。这就不是几句话能说清楚的了,需要每个人在大量的实践操作中,积累经验,启发灵感,找出一些规律性的东西。
再补充一点,恢复不连续存储的文件,要综合运用我的《硬盘。。。》一书中的工具程序。
如果是有编程基础的读者,最好是在我给出的程序的基础上,结合自己的思维方式,写出自己的专用工具程序,将会收到更好的效果。
对于不连续存储的文件,完全恢复的可能性到底有多大呢?这个问题是因人而异的。
按照理论分析和我的实践操作,只要数据仍然在扇区中存储着,就能100%的恢复。当然在操作过程中,是需要时间、耐心和技巧的,也就是说,并不是每一个人都能做到的。但我相信,有一定分析能力的读者,在掌握了我在《硬盘。。。》一书中给出的基本方法以后,再经过自己的提炼和发挥,是能够达到这种境界的。
吓,那天我将我们自己的做数据恢复软件放出来,比你功能强多了。固件坏了修得不用修,支持将数据直接倒出来,计算P-list及G-list就可以完全打开。我得才是真正的物理访问,你那个顶多只能是逻辑层的,调用13H中断。不过有空还是可以多交流。
以下是引用发言:
jnsqs ,今天在新华书店看到了你的书。仔细的翻看了一下,书中的内容大都是你的各个工具的代码。不知光盘中的内容是不是你的那些已经编译好的程序?直接运行就可以的吗?另外,看你前面的贴子,有些程序是在98下运行的,有些是在2000/xp下运行的,不知程序说明中可有注明?
谢谢
1。光盘中包括全部编译好的程序。
2。直接运行就可以。
3。光盘中的程序都是在98下运行的,或是在DOS下运行,不能在2K/XP下运行。
4。程序的功能和使用方法在书中有说明
对于读写编程,我是外行,一点不懂,问一个非常基本的问题,希望能够给于指教。
1)读sector有困难是如何确定的?
在调用有关中断和函数时,寄存器的出口状态值和函数的返回值不同。
2)硬盘测试程序中有SECTOR的读响应时间,有响应,是否表明读成功了?可否利用这个响应时间来决定读的成功与否?
可以作为判断的依据。
但必须是在程序内部进行,而不能在程序外判断另一个程序的响应时间,因为这时程序的反应速度是由多种因素决定的。
回答关于汇编的发问
一个研究编程的人,如果不研究汇编,就象一个学习武功的人,只学会了伸胳膊蹬腿,而没有学到武功的真谛。
虽然现在编程一般不用汇编,这是为了提高编程的效率。但是有的场合,还是非汇编不能解决问题的。
那些认为汇编无用的人,是因为他们对编程的认识太浮浅了。
一书中,绝大部分内容都是我的原创内容。不象有的人写的书,都是从网上淘下来的资料,或是抄录的别人的内容,根本没有自己的原创内容。
我举《硬盘。。。》一书中的一个例子,来说明这个问题。目前所有的高级语言编译系统,都没有对扩展INT13H中断的直接调用。如果使用我给出的程序模块,就可以将其加入高级语言的函数库中,作为函数直接进行调用,这绝对是一个创新。
再说《硬盘。。。》一书的选题,对于硬盘扇区的读写技术,目前还没有任何其他的书进行过系统地披露,我这本书目前是唯一的。
凡是向我发难的人,我劝你在技术的范围内和编程的角度来讨论问题,不要象一个丝毫不懂编程的人,只会说一些贻笑大方的门外话
3)有没有可能利用这个特性,在你的读Sector的程序中加入这个功能?如果可行,对我来说是一大福音。
可以,但是有关的功能必须加到汇编模块里面。
因为调用扩展INT13H中断必须由汇编完成
在我长期编写有关硬盘程序的过程当中,我认为发生物理损坏的扇区是不可能修好的。
虽然有的程序通过使用所谓的“激活”方法,能暂时将不能读取的扇区变为正常。但这种正常是短命的,用于临时抢救数据还可以,但是这些扇区很快还是要归于死亡的。我在编程当中,已经实际验证了这一过程。
最好的做法是,将这些坏扇区划出去不用。大块的连续的扇区,可以用DM。少量的扇区,可以用THDD、MHDD等软件,本论坛有大量的关于这些软件的帖子。
我现在开发程序的重点,是如何对能正常读写的硬盘进行操作。
可否简单介绍一下,对硬盘进行哪方面的操作
需要研究与探索的领域是非常广阔的,简单说几个方面:
1。文件系统的扇区存储规律,重点是NTFS。
2。EFS的加密机制。
3。一些主要文件格式的存储规律。
4。不连续存储的文件的恢复。
5。编写进行上述探索所需要的专用工具程序。
。。。。。。等等。
如果不懂编程,可以只看《硬盘扇区读写技术。。。》一书中,有关工具程序的功能和使用方面的内容,以及对系统扇区的数据和文件系统的扇区特征所进行的分析。
要想在数据恢复方面发展,必须掌握的基础知识有:基本的数制转换;扇区数据的读写与分析;文件系统的扇区存储规律等。
最好是结合《硬盘。。。》一书,学习点有关的编程知识,就能进入自由发挥的境界。
你书中说的只有FAT16和FAT32
NTFS的寻址有什么区别?????
由于出版社方面给我限定了书的字数,所以NTFS的内容没有收录在书中。因为扇区的读写是针对物理硬盘的,与逻辑盘和文件系统没有关系,所以NTFS的寻址是一样的。只要了解NTFS文件系统的扇区存储格式,同样可以使用书中给出的工具程序,进行各种操作。
如果不学编程,可以只掌握工具程序的使用方法,学习扇区分析和文件系统的扇区存储规律。
如果想学编程,应该达到对C语言熟练,对汇编语言了解。
其实编程并不难,只要入了门,这是一项趣味无穷的益智游戏。编程者的心境、喜悦和成就感,是在其他工作中根本体验不到的。
我的一个中学同学,原来也不会编程。在我的书完稿以后,由于当时还没有出版,向我要了一份打印稿。到现在一年多一点的时间,已经写出了他自己的两个数据恢复程序,而且很实用,颇有创意与水平。
现在很多写书的人,其实是在抄书。从网上淘下来点资料,再从别人的书中摘录一部分内容,写上自己的名字,就成了一本新书。我不赞成这种做法,我认为写书必须要有自己的原创内容,才能对得起读者。
有块希捷的u10-15g,FTA32硬盘不能自启动,用FTA16的硬盘能带启动,并且可装数据.用FTA32的硬盘不能带启动,我想用你的清零工具去清零行吗?(用PQ分区大师可分区,格式化后.硬盘不能自启动).请问这是硬盘逻辑锁,锁硬盘吗?
可以使用我的扇区清零程序操作一下,如果属于硬盘锁故障,能够立竿见影。
有很多硬盘恢复软件可以保护硬盘.其中有一种方法是通过还原卡来实现.
我想知道的是还原卡是怎么进行数据备份和还原?是什么原理呢?
而且这些还原卡将数据进行备份时,仅仅占用了很少的硬盘空间.千分之一?
谢谢!
还原卡以及你所说的恢复软件并不能保护硬盘,只是限制了写操作而已。
我对这一类的软件没有研究,它们不属于数据恢复的范畴。
请教大哥
可以在win2000中直接读取没有分区格式化的硬盘的物理扇区吗?
我使用TC3.0+汇编,使用扩展int 13h直接读取硬盘的物理扇区的内容,但是只能在DOS或windows98中运行,但是在windows2000中是不能运行的,在windows2000中该如何读取没有分区格式化的硬盘的物理扇区呢?
请参考地质出版社的《WINDOWS环境下汇编语言程序设计》。
我的硬盤出現壞道後,用powermax4.09做全部低級格式化,完成後顯示仍有缺陷。我重起後就再也找不到硬盤,無論用什麼軟件。上電起動時會發出“得得。得得得”的聲音,之後就沒什麼聲音了,之後硬盤一直運轉。硬盤是MATOR的 金鑽40G。謝謝,幫忙看看?
可以用DM将坏道划出去。
问一下作者,我清楚分区表的结构和每一个数据的意思,知道主引导程序的作用,和硬盘的数据结构也可以实现用汇编来调用扩展的INT13中断来调用每一分区表,并对他的数据进行改写,也能通过人工的计算来实现分区的数据恢复,问题就是我的C语言并不好,请问你是怎么实现在C语言下调用扩展的INT13中断的,想你致敬
用C写主程序,用汇编写扩展INT13H子程序,然后在C程序里调用汇编子程序。
您的意思我基本知道了,也就是利用汇编编制一个函数作为C的一个函数,然后在把c中对于数据和分区表表项的计算和有关选择传递给这个函数对不对,非常感谢你!这对于我这个一直利用Debug来实现对于硬盘分区表和引导区读写(每次的LBA地址都要通过自己计算的)人来说是一个福音,在此向高手致敬!!!
楼主的程序全是基于int13的扩展功能上,确实是太初级了点!
我的看法是:基于ata命令是中级;基于硬盘dsp的指令才有高级功能。
pc3000的众多模块正是dsp芯片的多样性造成的 懂了,做人就要像版主一样,要低调!人才呀!这才是真正的高手! 懂了,做人就要像版主一样,要低调!人才呀!这才是真正的高手! 太长了 ……带回去看 了
谢谢 学习了……
越是人才潜水越深啊
没事顶顶 什么呀,什么都看不到呀。现在高手都比较吝啬,知道什么东西都不跟别人分享。悲哀呀顶
无论如何顶一下顶一下 太长了 ……带回去看了 ,无论如何顶一下 读写与分析硬盘扇区 感谢感谢!!!!!!!!!
页:
[1]
2