首页
社区
课程
招聘
两篇关于汇编方面的文章
2004-10-21 08:58 6810

两篇关于汇编方面的文章

2004-10-21 08:58
6810
挽救硬盘数据的方法
林羽今 2000/02/20-
  
一、前言

  硬盘数据丢失以后,并不是完全不可找回的,对重要数据的恢复,更显得重要。很遗憾的是,在发生故障以后,人们一般都是放弃数据恢复的努力,甚至在很多硬盘的经销商,哪怕是总代理处,人们都不能获得帮助,因为其技术人员往往也缺乏这方面的经验和知识。我也曾经向IBM的Product Support Service(in USA)求助,等了一个多星期得到的E-mail答复竟然是记录所有的提示信息和故障前后的详细操作发给他们,谁还记得!那时我也已经解决了问题。
  所以,学习一些基本的挽救硬盘数据的方法是有好处的,至少在放弃前可以先尝试一下。如果您使用的是最流行的DOS和Windows,即采取FAT16或FAT32,那么成功的可能性更大。下面我就介绍一下最常用的FAT文件丢失的恢复。
  硬盘数据丢失的原因可能有:①误操作:包括误删除、误格式化、误分区、或执行那些程序后后悔等;②病毒发作;③软件使用不当;④容量限制;⑤硬盘物理损坏等。
  误删除并不是非常可怕的事情。市面上有几十种工具软件能够恢复误删除。只要原数据区域没有被覆盖或清零,都能够完全恢复。如果被覆盖,那么恢复多少取决于被覆盖的程度。如果想炫耀自己的水平,可以直接修改FDT和FAT。
  
  
二、硬盘存储常识和可能用到的数据恢复方法

  用最通俗最简单的理解,您可以把硬盘想象成由四部分组成:主引导记录(MBR)、分区表(Partition Table)、文件分配表(FAT)和文件存储区。在一般情况下,这四部分资料恢复的难度是逐渐增大的,即使不难也更花时间更繁琐,所以挽救数据的关键在于按顺序依次尝试恢复。
  三部分:保留区,保留扇区一般为1,无备用扇区,主要包括磁盘参数表和引导程序。控制区,包括内容完全相同的FAT1,FAT2以及FDT。文件区,起始位置与FAT表中002H簇呼应。
  MBR是硬盘特有的,位于0头0道第1个扇区,包括主引导程序和分区表信息。
  FAT32小于260M,0.5KB,8G,4KB,16G,8KB,32G,16KB,32G以上,32KB。
  FAT16(M)32-128,256,4,512,8,1024,16,2048,32
  FDISK会在实际运行中会取为最接近此数且与单磁柱容量(磁柱数*磁盘数*扇区数)的整数倍。
  磁盘容量=磁柱数*磁头数*每道扇区数*512。
  在IDE硬盘设计中,最大磁柱数可达65536,磁头数16,最大扇区数255,理论的最大容量127.5G。EIDE.
  在传统的DOS环境,通过BIOS读写硬盘数据,由于最早的BIOS只认得1024磁柱,255磁头数,以及最大扇区数63,所以1024*16*512=504M。1994年后,扩充C/H/S法,即BIOS提供的LARGE模式,是从磁头数或其他参数暂借两个位。最大磁柱数变为0-4097,2G限制。这会因为BIOS的不同而出现不能正常读写现象。类似做法。如SEAGATE的EZDrive,以驱动程序载入,然后把整个读写核心换掉,抢在操作系统前运行。软件设计原理类似病毒。LBA学自SCSI技术,C/H/S等参数被重新组成28位的逻辑区块号码后传送硬盘,让硬盘本身去算出真正的C/H/S位置。这种工作模式,理论上能达到127.5GB。如果BIOS不支持,LBA方式也无法突破2G限制。
  
  FAT16中,MBR的前240个字节是引导程序,完成可自举分区系统的引导;从1BEH位移开始的64个字节是硬盘分区表,最后两个字节55H和AAH是自举纪录的存放标志字。每个分区表包括16个字节,分别是自举标志,分区起始地址磁头号,扇区号,柱面号,DOS系统标志,分区终止地址磁头号,扇区号,柱面号,分区起始相对扇区号(4字节),分区实际占用扇区数(4字节)。这些内容可以通过专门的工具软件直观地阅读和修改,比如Diskedit,这里不再介绍。
  文件目录表FDT(根目录)。对于根目录下的文件和子目录,FDT记录了文件或子目录的名称、属性、文件生成或最后修改的日期和时间、文件起始簇号及文件的字节长度。文件的后续簇号安排在文件分配表(FAT)中。其分配结构如下:
位移(H)  内容     长度(D)  说明
00      文件名    8       0字节有特殊用途。不满8位用20H填充
08      扩展名    3       无或不足3字节用20H填充
0B      文件属性  1       10H子目录属性
0C      保留区    10  
16      时间      2       第15-11位为小时,10-5分,4-0秒/2(0-29)
18      日期      2       第15-9位为年(基准1980),8-5月,4-0日
1A      起始簇    2  
1C      字节长度  4       低字节前,高字节后

  但和MBR一样,不需要了解太多,可以借助各种磁盘工具软件。
  
  由于硬盘分配的最小单位是1簇,一张FAT表就是一个簇号库。簇号根据系统和硬盘大小有不同。FAT16的簇号在FAT表中占16位。
  文件都在文件存储区里,FAT说明文件在文件存储区的位置。所以最原始的恢复数据方法是一个簇一个簇地找出来,并把这些簇连接成完整的文件。不过,这种方法费时费力,而且需要技术人员的高水平(我都未必做得到,特别是遇到我半生不熟的NTFS分区),对于一般人来说,是不可行甚至不可能的。当然,我们这时可以试一试专业软件的辅助恢复。
  FAT表的头两个簇号是保留簇,从002簇开始分配给文件,簇号链一直到结束标志为止。。
  逻辑扇区号=(簇号-2)*(扇区数/簇)+文件区起始扇区号
  磁头号=[逻辑扇区/每道扇区数]MOD磁头数
  磁道号=[[逻辑扇区/每道扇区数]/磁头数]
  扇区号=(逻辑扇区MOD每道扇区数)+1
  []为取整,MOD为取余。
  
  
  
  几个相关概念:
  低格:是将硬盘划分为一条条磁道和扇区,是真正对硬盘做初始化的写入和破坏。某些病毒残余只能通过低格来对付。业内人士常忠告说,硬盘一般在三个月内不要低格两次。不过在硬盘运行正常时,也没有必要花漫长的时间进行低格。
  高格:如Format,只是简单地对硬盘每个扇区做校验,直接清除文件分配表和根目录并写入启动扇区。
  
三、各种方法的操作具体步骤和注意事项

  1、准备工作。
  具体步骤:
  ①找一台带硬盘的安全无毒的电脑。
  ②将故障盘跳线为slave(从盘),接到IDE1上,即用硬盘线的空置接口。
  ③开机,(一般是按Del键),进入CMOS SETUP。IDE HDD AUTO DETECTION,测出故障盘参数;或在STANDARD CMOS SETUP中将Primary Slave的TYPE设为AUTO。在BIOS FEATURES SETUP中确保Boot Sequence引导顺序为A,C,SCSI。SAVE & EXIT SETUP保存设置,退出。
  ④在重新启动时注意System Configurations列表上显示的First Slave的容量、上一步骤检测出来的故障盘容量和您所知道的该型号硬盘的容量(见硬盘上的标签)是否一致。如果不一致,则认为主板不能很好地支持故障盘,不要再尝试在这台电脑上恢复数据,必须另外找一台别的型号(特别是主板型号)的电脑,进行上述步骤。
  ⑤选定将要使用的磁盘工具软件以后,如果软件是windows95/98软件,则必须先除去故障盘,再安装这些工具软件。如果不介意软件在硬盘上操作,如fixmbr,也可以先复制到主硬盘上。
  注意:
  ①考虑到对8G以上硬盘的兼容性问题,最好是今年新装兼容机,不要用原装机,也最好避免SIS530之类的一体化主板。
  ②移动、携带硬盘时,必须有必要的保护手段,小心轻放,避免撞击和落地。
  ③打开机箱,插接硬盘时不能带电工作,要把电源断掉。
  ④无论如何,不能复制文件到故障盘上。那可能会覆盖掉您想恢复的信息!!!
  利用RESCUE,备份原始信息。
  
  2、MBR和分区表的恢复。
  这是您所要学习的重点。我发现在大多数异常事故后都可以从恢复MBR和分区表这两部分的数据使硬盘数据恢复正常。
  如果您记得原有分区大小,可以在另一同样硬盘上用fdisk、PM、DM等创建同样的分区,
  手动:
  软件配合:
  如果您已经不记得原有分区大小,可以尝试用一些杀毒软件。
  不过这些方法都太麻烦。我推荐fixmbr和NDD的配合使用。
  fixmbr正如其名,是硬盘主引导记录修复程序。但在实践中发现,并不是那么好用,对于8G以上的FAT32不能很好地支持。我仅仅用它的MBR清零功能(fixmbr 1 /z),消除病毒或可能的错误主引导信息的干扰。这个软件可以从很多网站(比如华军软件)下载,也可以向我索取。
  NDD是诺顿磁盘医生,是Norton Utilities(NU)的重要组成部分。NU是一系列功能强大的磁盘工具软件,在后面将专门论述。为求通用性,最大程度兼容FAT32,不可能再使用心爱的NU8了。推荐使用NU2000(4.5)以上版本附带的NDD。如果不特别说明,下文提到NDD均指是NU2000(4.5)版本的NDD。如果有NU2001,或者NU2002,包括Norton systemworks中附带的NU,应该功能更强。
  首先,在好盘上安装了NDD,把fixmbr.exe拷贝到C:\
  在DOS状态下,
  fixmbr 1 /z
  最好是在操作前,fixmbr /?,了解一下注意事项,做好备份。
  然后,重启电脑,进入WIN9X/ME,运行NDD,根据提示找到相应分区。
  重新启动生效。
  
  注意事项:
  除了重建分区表,不要进行其他操作。
  
  此方法适用于以下情况。
  病毒破坏分区表(Partition Table)和主引导记录(MBR)。
  DM之类的软件不当使用造成的数据丢失。
  误用fdisk之类的软件重新分区。
  低版本的多系统引导程序对8G以上的硬盘不支持造成的原有数据丢失。
  其他原因造成的MBR或PartitionTable损坏。
  
  3、大多数磁盘管理软件都具有系统备份的功能,建议定期进行系统备份,特别是CMOS, MBR, partition table, FAT等的备份。在可能对硬盘资料有改动的操作前,更需要备份这些资料。这种备份在硬盘碎片重整后更显重要。
  
四、8G问题

  现在的主流IDE硬盘容量逐渐发展到10G以上,受到其出色的性价比引诱,许多单位和家庭也都购买了大硬盘。然而8G毕竟是个关口,许多主板都不支持8G以上的硬盘,在硬盘自动检测的时候,只能将其识别为8G,同时还可能出现的问题是不能引导。
  然而在Win97或98中,如果作为从盘,那么已经分区好的硬盘是不存在8G问题的。哪怕主板只能认到8G,也不妨碍大硬盘数据的正确存取。问题集中在,在Win97或98附带的DOS环境中,仍然无法识别第二硬盘。
  NT4.0也存在着8G问题。即使主板BIOS或专门的接口卡支持8G以上的IDE硬盘,也必须将NT安装在位于前1024磁柱的可引导分区上。windows2000则不存在8G问题。
  硬盘的发展趋势是容量增大,价格降低,在大硬盘技术逐渐成熟的情况下,我们不能因为8G限制就放弃对新技术的运用,而应该逐步解决可能出现的问题。目前我推荐给朋友的都是性价比最优的20G硬盘。但为了数据安全,我建议:
  1、为了数据安全,超过8G大硬盘不要用在老主板上,除非BIOS已经升级能支持大硬盘。有几例数据丢失的情况都是发生在接到老主板而误操作后。
  2、包含有重要数据的硬盘作为第二硬盘时,必须确保主盘没有多系统引导,
五、病毒问题

  虽然有些病毒是仅仅是制作者对自身技术的炫耀,不会对感染病毒的电脑产生破环,但同时存在大量病毒,威胁着硬盘数据。
  对硬盘资料具有破坏作用的恶性病毒通常有两类,引导型病毒和文件型病毒。
  有些引导型病毒会将硬盘某域标记为坏簇,而藏身其中,即使杀毒,去除其传染性和激活手段,其残躯仍留在硬盘上,只有低格才能够消除。
  很多人会有误解,认为文件型病毒不会损害MBR/FDT/FAT,事实上传播模式和破坏模块是不一样的。有的文件型病毒甚至能够将硬盘扇区清零。
  
六、个案分析(排除故障的思路和需要考虑的问题)

  下面以两个实例说明解决的步骤和应该考虑的问题。
  1、
  有一块IBM13G硬盘,在联想双子恒星(SIS530主板)上原可以正确识别13G,但一日清晨不知何故只认528M,作为从盘察看发现已经存在三个无法正确读取的分区,容量总合528M,Norton Utilities 2000(4.5) 的NDD对之都无可奈何。
  CMOS设置中硬盘自动检测参数1662,255,0,26499,63(LBA13671)。放到其他双子恒星上也如此,排除最初“天气潮湿主板故障”的假设。由于此盘中包含重要数据,需要数据恢复。
  ALi主板26500,16,63(LBA13677)。做为主盘无法正常启动,作为从盘发现原来的系统区(C盘)仍在。
  怀疑是病毒,使用KV300,报告no partition table(无分区表),软件建议用F10修复,根据建议,经过漫长scaning,Fixed OK以后,发现可以启动,但运行一半系统崩溃,出现一堆乱字符后自动关机。进入安全模式,提示说注册表损坏,按提示恢复注册表重新启动后反而连安全模式都进不去了。
  查看文件系统,发现该盘有Norton Antivirus5.0(2000/1/22更新)的autoprotect,防护是比较严密的,因为该盘用做上网,怀疑是感染新病毒,这令我大感兴趣。但对备份的MBR进行分析,却找不到病毒特征,只是发现有SystemCommander的迹象,但是在整个硬盘里却找不到SC以及相关文件。详细询问原因,是在三天前曾作为从盘,而主盘的SystemCommanderDeluxe4.0找到该盘的引导区,也试图通过此项启动,但是失败,通过软盘sys c:,再改回msdos.sys。在此过程中,因为硬盘中还有两个分区被设置为Primary,
  
七、有关挽救硬盘数据的工具软件的简单介绍和品评

  可以恢复硬盘数据的杀毒软件有:KV300
  Fixmbr:硬盘主引导记录修复程序。为CIH的受害硬盘修复而推出的小工具,原理是通过全盘搜索,决定硬盘分区,并重新构造主引导扇区。本软件只修改主引导扇区记录,对其他扇区不进行写操作,故不会带来不安全。如果修复的不理想,请手工修复。用干净软盘启动后使用。
  NDD:诺顿磁盘医生。
  ・Lost&Found 1.01 1058KBLost&Found 1.04 由出品Partition Magic的PowerQuest公司所出的新产品,硬盘资料复原工具,是一套恢复硬盘因病毒感染,意外格式化等因素所导至损失的资料工具软件,能将已删除的文件资料找出并救回,也能找出已重新格式化的硬盘,被破坏的FAT分配表,启动扇区等等,几乎能找出及发现任何在硬盘上的资料(支持FAT16和FAT32及长文件名),并尽可能的救回,并提供了分析和提示恢复的可能性功能,救回来的资料能选择在原来所在位置恢复或储存到其它可写入资料的的硬盘,ZIP,MO支援所有IDE,EIDE及SCSI设备,亦提供了自动备份目录,文件和系统配置文件,能在任何时间恢复。 PowerQuest Lost & Found Version: 1.01 s/n: 0453-0000-0002-8279 PowerQuest Lost & Found Version: 1.04 s/n: 0453-0000-0000-0001 Lost and FoundVersion: 1.00 s/n: 0453-0000-0002-1462 硬盘资料复原 Lost&Found 1.06 ( 4月28日 ) 软件大小 : 1105KB        票数:149 操作平台: Windows 有关站点 : http://www.powerquest.com/ 马上下载        投我一票 开发Partition Magic的PowerQuest公司所出的新产品, 硬盘资料复原工具,是一套恢复硬盘因病毒感染,意外格式化等因素所导至损失的资料工具软件, 能将已删除的文件资料找出并救回, 也能找出已重新格式化的硬盘, 被破坏的FAT分配表, 启动扇区等等, 几乎能找出及发现任何在硬盘上的资料(支持FAT16 和FAT32及长文件名), 并尽可能的救回, 并提供了分析和提示恢复的可能性功能, 救回来的资料能选择在原来所在位置恢复或储存到其它可写入资料的的硬盘, ZIP, MO支持所有IDE, EIDE及SCSI 设备, 亦提供了自动备份目录, 文件和系统配置文件, 能在任何时间恢复。
  ・BadCopy99 1.01 268KB BadCopy软件可以在不需要人工干预的情况下帮您读出CD-ROM或磁盘上的坏文件。效果显著,还具有智能修复的功能,最大程度挽回您的损失。新增或加强了以下特别功能:1、优化的算法,保证修复拯救数据更快更全。2、支持文件夹直接复制,您甚至可以直接把整个逻辑盘完整复制到另一个文件夹下。3、可以自由定制BadCopy的各项纠错参数,保证能高效,最大限度的挽救您的宝贵数据。4、可以直接对隐含或系统文件进行操作。5、文件操作安全性增强,危险操作先行提示,避免不必要的损失。6、可以直接在BadCopy里面运行或打开程序。
DiskMan 1.20 Beta 3 108KB 国产全中文硬盘分区表维护软件,主要特点:1.运行于MSDOS环境,采用全中文图形界面,无须任何汉 字系统支持。以图表的形式揭示了分区表的详细结构。支持鼠标操作。2.支持8G以上的大硬盘。3.支持多种 系统分区,能建立如UNIX,Linux,NTFS,OS2等操作系统分区。4.没有只能建立一个主DOS分区的限 制。且可在保留扩展分区的情况下删除主DOS分区,使您可以重新规划主DOS分区(即C盘)。5.可手工修 改分区参数,并可对分区参数进行检查。6.可隐藏DOS FAT分区。7.能查看硬盘任意扇区。8.可备份包 括逻辑分区表及各分区引导记录在内的所有硬盘分区信息。9.具有分区表重建功能,能恢复被破坏的分区表。10. 几乎所有操作都在内存中进行,由用户自行存盘,可防止误操作。11.具备回溯功能,当您对分区表操作失 败后,可用此功能复原。 软件名称:DiskMan 整理日期:2000.9.18 最新版本:1.20 Beta 3 文件大小:108KB 软件授权:免费软件使用平台:Win9x/DOS 发布公司:李大海Home Page 现在用diskman后,有个8G的FAT32,其他都不见了。这说明这个软件不支持8G以上硬盘。
  ・DiskMan 1.20 Beta 2 107KB 国产全中文硬盘分区表维护软件,主要特点: 1.采用仿真WINDOWS风格图形界面,支持鼠标操作。以图表的形式揭示了分区表的详细结构。2.全中文显示,自带汉字库,无须任何汉字系统支持。3.支持多种系统分区,能建立如UNIX,Linux,NTFS,OS2等操作系统分区。4.可直接修改分区参数,并可对分区参数进行检查。5.可建立多达四个主DOS分区。6.可在保留扩展分区的情况下删除主DOS分区,使您可以重新规划主DOS分区(即C盘)。7.可隐藏DOS FAT分区。8.能查看硬盘任意扇区。9.可备份包括逻辑分区表及各分区引导记录在内的所有硬盘分区信息。10.具有分区表重建功能,能恢复被破坏的分区表;11.所有操作在内存中进行,由用户自行存盘,可防止误操作;12.软件正在不断升级中,以后的版本将支持8G以上的大硬盘。
  Revival(853k) is a Undelete and disk/file repair program Detailed Description : Revival is a Undelete and disk/file repair program 1. Revival is a very easy and powerful Undelete program (supports FAT32 of OSR2). 2. When you accidentally quick formatted your hard disk, You can retrieve the files with Revival if the data remains somewhere in the hard disk. 3. Revival can repair the hard disk that is infected with virus, and then lost all the information at the partition table, the boot sector, the FAT, and the root directory. 4. When you lost files for some reason and the data is remains somewhere in the hard disk, you can retrieve the files with Revival and save them to another drive. 能将被删除的文件复原,在使用的时候,只要先开启原先储存文件的磁盘,然后Revival就会自动搜寻磁盘 中所有「磁簇(Cluster)」,并且把所有的资料夹以及文件通通列出来,包括已经被删除的文件在内。然 后,你只要选择你要复原的文件(文件前面有#的表示是已经被删除的文件),再将它储存起来就大功告 成!但是这个试用版每次只能救三个文件!Revival支持所有FAT格式,包括FAT 16、FAT 32以及 NTFS格式。所以他可以救回所有文件。可惜的是,他居然不支持长档名。只要是长档名文件名称都无法 正确的显示,不过,还好长档名的文件还是可以救回来!在储存文件的时候,切记一定要将文件储存在另外 一个磁盘下。例如:当你要救回C磁盘下面的文件,就不能在储存在C磁盘下,你必须要储存在D或E磁盘 下。这样做的原因是为了防止救回来的文件覆盖原先的文件。 Revival Version: 3.4 Name/Company: (Anything) s/n: RV20545-2290123 Revival Version: 3.1 s/n: RV11402-4755667 or s/n: RV68868-5091768
  FinalData Series Product Line Information http://www.finaldata.com/english/ Edition Runs under Recoverable File System Features Standard Basic Windows 95/98/ME FAT 12/16/32 Basic undelete function Standard Windows 95/98/ME FAT 12/16/32 FAT 12/16/32 Standard Basic Features Plus Recovers data from problems such as CIH Virus, S/W error DIY(Do it yourself) recovery system Enterprise Windows 95/98/ME FAT 12/16/32 Standard Plus it recovers files with a damaged directory and 0 byte files (Worm virus case) System Requirement O/S: Windows 95/98/ME RAM: 16MB (32MB recommended) HARD DISK: 10MB (maximum 15MB) VGA: Minimum 256 color File system : FAT 12/16/32 Features It doesn't need to know DOS manual. Final Data is the first software operating on Windows perfectly. Besides, Final Data uses the interface (like a Windows search) so, it is simple to use. It doesn't have to be made backup file anymore. Final Data doesn't have to install in advance as backup program (backup method). Only Final Data can recover even though after you lost your data.(Final Data UNIX Edition and Network Edition added as basic option, Automated I-node/FAT Double Backup function which specialized the existing backup program. This function makes to recover data almost perfectly with short time. It takes only 4 easy steps to recover. It's very simple to use. (1) Execute Final Data (2) Open drive (3) Search drive (4) Save it It can also recover damaged directory information. It can also recover data when directory entry information initialized (over Enterprise Edition). It can search recoverable files. It is possible to search using Wild Card after shown recoverable file. For example, it is very efficiency to recover data with inputting *.doc or data?.hwp. (over Enterprise Edition). Main Function * Recover when it is deleted data in recycle bin or deleted 'Shift+Delete'. * Recover all directories and their files/sub directories when directories are deleted. * Recover data when MBR (Master boot record) or FAT (File allocation table) is damaged. * Recover data in Quick Formatted hard disk or floppy disk. * Recover almost complete data destroyed by CIH Virus. * Recover data in hard disk of damaged partition. * Recover data damaged directory information. * Recover data damaged by Worm Zip, Love Virus. * Fast recovery with finding specialized file (Find function using Wild Card (*,?)). Enterprise Network Windows 95/98/ME TCP/IP FAT 12/16/32 Enterprise Version Plus Network Data Recovery Support NT/2000 Windows NT/2000 FAT 12/16/32, NTFS Enterprise Version for NTFS NT Network Windows NT/2000, TCP/IP FAT 12/16/32, NTFS NT/2000 Plus Network Data Recovery Support Linux All Windows All Linux World's first data recovery solution for All Linux Support Network Recovery Unix All Windows Unix / Free BSD World's first data recovery solution for Free BSD and Unix (Sun, IBM AIX, HP UX) Support Network Recovery Professional All Windows FAT12/16/32, NTFS, Linux/Unix All of the above Plus the highly sophisticated fragmented file recovery(patent pending) FINALdBASE All Windows FAT/NTFS/EXT2 /UFS/HFS/JFS File level data recovery for physical fail Table level recovery for logical fail FINALeMAIL All Windows FAT12/16/32, NTFS Outlook Express 4.0 Outlook Express 5.0 Netscape Mail, Eudora Mail FINALeRASER All Windows FAT12/16/32, NTFS Disk/File level wipe out Wipe the disk, normal file, deleted file depend on option Subject to change without notice. For the maximum recovery speed, FinalData Linux/Unix versions will be additionally released after porting. FAT12 is File System of floppy diskette, FAT16 and FAT32 are File Systems of Windows 95/98/ME, and NTFS is File System of Windows NT and Windows 2000. All versions will also recover Zip, Jazz, and other portable disks which can be attached to Windows.
RecoverNT Express.zip ver 1.0 RecoverNT的加强版,但RecoverNT Express只可在Windows NT 3.51/4.0 Server和Workstation以及Windows 2000使用,无法在Win 95/98使用,除了作业平台更换外,当然还有其它加强的部份,除了使用上相当简单不需要安装即可使用外,速度比RecoverNT较快许多,支持在FAT16及NTFS格式下删除的文件,RecoverNT Express会自动扫瞄硬盘并找出所删除的文件,并以清单显示所删除时的时间及所在目录或根目录、文件大小并提示拯救恢复胜算(可将清单列印出来),拯救回来的文件可选择在原来所在目录或根目录储存恢复或储存到其它的目录或硬盘。 RecoverNT Express Version: 1.02 s/n: RV00000-0200952
Rcntclient.exe ver 3.0 Client Module 在 Win95/98 中如果按“Shift+Del”键(或在DOS下)误删除了文件,甚至误对磁盘作了 FORMAT(格式化)或 FDISK(分区),多数用户只能自认倒霉。如果你遇到过类似问题,请试试 Win95/98/NT 环境下的共享软件 RecoverNT,它可能帮你把文件拯救出来。美中不足的是 RecoverNT 需要注册,未注册前只能进行文件删除恢复,其他(恢复被 FORMAT 和FDISK 的磁盘)功能无效。 RecoverNT Version: 3.0 s/n: RV11402-4755667
File Scavenger 1.40 1228KB File Scavenger 1.4汉化包 能够恢复在NTFS格式下意外删除的文件工具,前提条件是所删除的硬盘尚未被改写新的文件上去才可以 救回,提供了找寻文件类型功能,ㄒ如*.doc及*.txt,能够救回的文件不只单一文件,还包括整个目录及压缩 文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘。
Harddisk Data Recovery 3.0 519KB 硬盘文件系统恢复工具,该工具不象其它修复工具需要写入数据从而有可能把您的硬盘搞得更糟,它可以 在内存重建文件系统,并可以安全的把数据传输到另外一个设备,支持FAT16/32、NTFS。 硬盘数据恢复工具 EasyRecovery Pro 5.0 ( 9月22日 ) 软件大小 : 2612k        票数:37 操作平台: Windows 有关站点 : http://ontrack.com/ 马上下载        投我一票 其他下载站点 这是一个强大的硬盘数据恢复工具, 能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery不会向你的原始驱动器写入任何文件,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于8.4GB的硬盘。支持长文件名。被破坏的硬盘中像丢失的引导记录、BIOS参数数据块、分区表、FAT表、引导区都可以由它来进行恢复。 Windows9x磁盘扇区编辑器 1.0 ( 6月2日 ) 软件大小 : 85KB        票数:45 操作平台: Windows 有关站点 : http://greenstuff.363.net/ 马上下载        投我一票 其他下载站点 Windows9x磁盘扇区编辑器可以在Windows9x下对软盘,硬盘的物理扇区进行读写,它可以将指定扇区里的数据保存到文件里,同时也可以将文件里的数据写到指定的扇区里.它可以查看,修改磁盘扇区,还可以用来备份硬盘分区表. 救命良方 revival 3.1 ( 5月25日 ) 软件大小 : 1 M        票数:129 操作平台: Windows 有关站点 : HyunKi Kim 马上下载        投我一票 其他下载站点 你的电脑如果没有安装像Revival这种可以紧急救援文件的软件,那是肯定不行的!劝你快为自己准备一套类似软件吧!因为你绝对有非常高的机会会遇到下列的状况: 1.你自己或是别人不小心把你重要的文件删除了! 2.更令人吐血的状况:不小心把整张磁盘甚至是整颗硬盘快速格式化(quick formatted)! 3.中毒!如果你的电脑中了类似CIH病毒,光是用杀毒软件顶多只能帮你扫除病毒而已。已经被病毒杀光的文件怎么办呢? 上述的几种状况中,我想中毒是最最严重的惨况了!病毒会在你不知不觉当中(就算你知道也已经太慢了!)把你所有的文件通通删除,多可怕呀!还好,这几种状况Revival通通可以帮你就回文件。在使用的时候,只要先打开原先储存文件的硬盘,然后Revival就会自动搜索硬盘中所有“簇(Cluster)”,并且把所有的子目录以及文件通通列出来,包括已经被删除的文件在内。然后,你只要选择你要复原的文件(文件前面有#的表示是已经被删除的文件),再将它储存起来就大功告成!但是这个试用版每次只能救三个文件! Revival支持所有和FAT(File Allocation Table文件配置表)格式,包括FAT 16、FAT 32以及NTFS格式。所以他可以救援Windows 95/98以及WindowsNT文件系统下的所有文件。可惜的是,他居然不支持长文件名。只要是长文件名文件名称都无法正确的显示,不过,还好长文件名的文件还是可以救回来! 在储存文件的时候,切记一定要将文件储存在另外一个硬盘下。例如:当你要救回C硬盘下面的文件,就不能在储存在C盘下,你必须要储存在D或E盘下。这样做的原因是为了防止救回来的文件覆盖原先的文件。
  
八、备份篇

  硬盘是高速运转的可擦写的部件,同时受到主板稳定性兼容性的干扰(有的主板容易烧硬盘),再有脆弱限制(摔不得打不得)和怕烟尘(包括吸烟)。所以在我眼里,即使是口碑再好的品牌、型号,都是不够安全的。所以真的要数据安全,只有备份这一笨办法。
  备份可以分为实时备份(热备份)和定期备份。
  在单位里,很多服务器都使用热备份。虽然这能够最快地同步更新数据。但是存在两大问题:1、误删除等操作带来的错误结果也立即反映到备份盘上,2、热备份会在很大程度上减缓系统速度。
  定期备份是指在将来某一时间进行的备份。分为手动和自动两种。有的系统通过计划任务完成。每隔十分钟、一小时、一天、一周,等等,都是比较常见的备份时间间隔。可以是简单的“复制”“粘贴”,也可以使用专门的备份软件。我个人比较喜欢并且今年来一直在用的就是InSync3.0。
  可以采取的备份手段有:
  1、普通软盘。1.2M或1.44M。优点:移动方便,兼容性高。缺点:容量太小,比硬盘更不可靠。
  2、特殊软盘。一般是指大容量软盘。较常见的是艾美加100MB或250MBZIP,。优点:容量适中,便于携带。缺点:文件交流不方便,兼容性成问题。
  3、同一硬盘。不同路径或不同分区。优点,速度快,能提供初级保险。缺点:保险程度相当有限。
  4、第二或第三硬盘。速度快。价格合理。缺点:硬盘过于娇贵,防震性差,不利于携带。
  5、活动硬盘。现在价格也逐渐降低。分为内置EIDE/IDE,内/外置SCSI,外置SCSI/USB
  6、PC卡(硬盘卡)
  7、光盘。有MO,CDR/W等。我推荐用CDR。价格合理,刻录机价位适中,盘片便宜。缺点:速度较慢,有时候多任务处理时会把盘刻坏。
  8、网络。X-driver等网站都推出免费网络存储业务。缺点:传输速度慢,数据安全性可靠性成问题,有可能服务中断/终止。
  
  栏目归属:经验交流→于今普乐 友情推荐:中国心理热线 今日心理 性学知识 羽今的梦之舍
  
   尝尝后悔药:记两款文件恢复软件 任翔 (05/22/2000)   我经常怀疑我是否得了键忘症:有时我经常把一些我还需要的文件和一些不要的文件一起删除掉了,更为槽糕的是:我已经清空回收站了或我删除文件是不经过回收站的。但是我敢说,现在有许多人是和我同一条道的。出现了这种情况怎么办?不要慌,我告诉你几个软件可能会帮上一个大忙。但是首先,也是最重要的一件事,就是你不要向你要恢复文件的驱动器上再写任何文件。   好了,该软件出场了,第一个是recover4all 1.03   这个软件体积很小,安装以后才527k。所以,你最好在硬盘上装上一个,在软盘上装一个。运行rec4all.exe,它会出现一个对话框,其中有四个按钮,是要你阅读它的版权信息等,你只要选择第四个按钮:(yes,I have read the lisence agreement and agree to be bound by it)你就可以使用这个软件了,不过这是一个共享软件,你如果不注册的话,你只能用30天。   如果你是一个pc老用户的话,你一定马上习惯了它的界面:它的界面是win31风格的。在菜单的下面有几个盘符,你只要选择你要恢复文件所在的盘符,软件就会自动把磁盘扫描一次,然后在左下的窗口中列出了含有被删除文件的目录,这是以资源管理器的形式出现,然后你进入到你要恢复的文件所在的目录,看看你的运气是否比较的好,如果你运气不差的话,你所要的文件就显示在右边的窗口中(它的图标是绿色的),而且软件告诉你这个文件的recover chance(恢复机率)是good,你一阵狂喜,选择那宝贝文件,然后按上面的recover按钮。软件会弹出一个对话框,问你把文件恢复到哪,这个你可要注意了,最好是恢复到软盘上,因为如果你把文件恢复到硬盘上,可能会把你要恢复的另外一些文件覆盖,造成损失。如果你要恢复的文件比较的大,你可以把这个文件恢复到另个一个驱动器上,注意一定不要恢复到同一个驱动器上。如果你已经这样做了而且造成了损失的话,你就“化悲痛为食量”多吃一点东西然后自己把这些文件重新编辑,制作过吧。如果你没有注册的话,可以与我联系。   如果你格式化硬盘后才发现你还有一些重要的数据没有备份,请接着往下看。   第二个出场的软件是revival 3.1   这个软件功能十分强大,但是使用很简单,它对整个驱动器进行一次扫描,如果你的分区特别大的话,这要花许多时间,当然,它列出的可恢复的文件列表中的文件就比recover4all多多啦。它不仅可以恢复刚被删除了的文件,而且它还可以恢复刚被快快速格式化的硬盘(没有被写过)进行文件恢复,它可以恢复被病毒改过的分区表,fat文件分配表,根目录等,它最令人叫绝的是你格式化硬盘,然后重装windows后,它还可以帮你恢复一部分数据。它为什么会做到这一点?这是因为它不象上一个软件一样,只扫描文件分配表来确定哪些文件被删除,而是对整个分区进行全面的按簇查找,这样,当然就可以恢复较多的数据啦。当然,你的硬盘必须是没有坏道的而且可以读出文件分配表的,也就是说,你的分区必须能够让dos和windows认得。如果分区连dos和windows都不认得,我就告诉你一个建议:把你的硬盘低格了吧,然后重新分区。当然,你的文件是一个也恢复不了喽。   当然,这个软件你最好是在硬盘和软盘上都安装一个,它安装后才1.05M。它也是一个共享软件,你必须注册以后才能长期地使用。现在我来说说它的使用:   首先,你要按上面的open(打开)按钮,然后选择你要恢复的驱动器,按ok后它就开始了漫长的搜索(这要看你的驱动器的大小而定),搜索完后,它就把那些可以被恢复的文件列在一个窗口中,这时如果你发现哪个文件的前面打上了一个红圈,这个文件就不能恢复了。而大多数文件是可以恢复的。   我现在介绍每一种图标所代表的意义:   一个没带任何符号的图标:现有的,存在的文件。   一个图标带上一个红色禁止符号:这是不可恢复的文件,软件对你只能说sorry了。   一个图标带上了一个绿色的禁止符号:这是部分被破坏的文件,也许可以部分恢复,来抢救这个文件。   一个图标的左上角有一个救护车:(这个救护车太小了,我用的是21寸显示器才勉强看清楚。)这个文件是在连续的簇上的,这种文件可以恢复。   一个图标的左上角有一个救护车,但图标外面有一个红圈:这个文件是分开在不连续的簇上,这个文件也可以恢复。   一个图标下面有一个小磁盘:这个就是你恢复了的文件。   你选择其中的一些文件后,按上面的“保存”按钮,软件会问你把这些文件保存到哪里,同样,我建议你还是恢复到软盘上,如果文件实在是太大,可以恢复到其它盘上,千万不要保存到原来那个盘上就行了。另外,如果你在文件上单击右键,它会出现一个菜单,里面有三个选项:view as Hex(把它当作十六进制文件打开),view as text(把它当文本文件打开)和save(保存)。这样打开文件是不是很方便?   你是否发现:在保存的旁边有一个preferences按钮。它可以设置一些参数,在floder option中,它有show deleted folder显示已删除目录和hide deleted folder隐藏已删除目录两种选择,在fat selection中,它有prompt when the FAT is bad(意思是当你恢复文件时,文件分配表出现错误时,它向你报告)和force to save with selected FAT(强行写入选择的分配表。)两种选择。相信你想要的文件都是可恢复的,就让我们慢慢的祈祷吧。   好了,这个强大的软件我就简单地介绍到这里,如果你的这个软件快要过期的话,可以与我联系,我觉得:这两个软件各有优点,第一个软件快速,可以恢复平时误删除的小文件。如果你一次误删了许多文件,还是老老实实地用第二个软件要好一些。 文件丢失巧恢复 贾长庆 (12/06/1999)     卸载程序“顺手牵羊"、病毒破坏或用户误删除等导致文件丢失,是WIN98及其应用程序中止运行的常见原因。若只有几个文件丢失,则采用重新安装的方法得不偿失。本文介绍几种恢复WIN98文件的方法,供大家根据具体情况选用。   一、共享程序文件丢失   大多数WIN98或其应用程序文件安装前都是压缩文件,必须由安装程序或EXTRACT命令解压。但也有一些共享程序文件安装前并未压缩,如OFFICE97使用的许多动态链接库文件。如果你在运行程序时系统提示此类文件丢失,可按以下方法处理:   1、记下文件以及它所在的文件夹名称,根据后者可确定文件属于哪个程序或到哪儿去找。   2、运行WIN98“资源管理器”→“工具”菜单下的“查找”→“文件或文件夹"命令,在“名称和位置"选项卡的“名称"框内输入完整的文件名,单击“浏览"按钮找到安装程序所在盘符或文件夹,完成后“开始查找"。   3、选中窗口下部找到的文件,单击鼠标右键选择“复制"。再打开丢失文件所在的文件夹,将找到的文件“粘贴"到其中即可。   此法用于恢复DLL之类的共享程序文件较好,条件是WIN98及“资源管理器"能够运行。笔者曾用它恢复了OFFICE97丢失的MSVERT40.DLL文件较少,故虽然方便但局限性较大。   二、WIN98系统文件丢失   WIN98系统文件丢失的现象是:启动过程系统提示某些系统文件被破坏或被替换为旧版本,导致系统的部分功能无法使用。此时只要WIN98和“附件"中的“系统工具"程序可以运行,就能用下面的方法恢复:   1、记下丢失的系统文件名称和路径,运行WIN98“附件"→“系统工具"→“系统信息"程序。   2、单击“系统信息"程序“工具"菜单中的“系统文件检查器"命令。   3、选中“系统文件检查器"中的“从安装软盘提取一个文件"项,然后在下面的文本框内输入要替换的文件名,如UPDATE.SYS。   4、单击“开始"按钮,打开“提取文件"对话框。如果你使用原始安装盘进行恢复且事先用“系统文件检查器"扫描过系统,它会自动在“还原自"和“将文件保存到"框内给出文件的源路径和恢复路径,然后单击“确定"即可自动完成丢失文件的提取和恢复。   此法可以自动恢复WIN98系统文件,也能手工恢复其他微软应用程序(使用CAB压缩格式)中的文件。前提是系统破坏不太严重(WIN98及“系统文件检查器"能够运行),事先用“系统文件检查器"扫描过系统最好。笔者曾用此法恢复了许多丢失文件的WIN98,在WIN98及“系统文件检查器"能够运行时最好使用此法。   三、WIN98重要文件丢失   若WIN98VXD(虚拟设备驱动程序)之类的重要文件丢失,后果一般比较严重,会出现“蓝屏警告",提示XXX.XXX文件丢失等。此时最好使用WIN98启动盘提供的EXT命令进行恢复:   1、记下丢失的文件名称和路径,用事先准备的WIN98启动盘,选择多重配置启动菜单中的第一项(加载通用CD-ROM驱动程序并创建一个大小为2MB的RAM驱动器)启动电脑。启动后进入RAM驱动器,敲入EXT后回车。   2、在提示“PLEASE ENTER THE PATH TO THE WINDOWS CAB FILES(A):"后输入WIN98安装压缩包所在的完整路径,如:“F:\PWIN98\WIN98",完成后回车。   3、在提示“PLEASE ENTER THE PATH TO THE WINDOWS CAB FILES(A) YOU WANT TO EXTRACT:”后输入你记下的丢失文件名,如“BIOS.VXD",回车。   4、在解压路径提示“PLEASE ENTER PATH TO EXTRACT TO(`ENTER’FOR CURRENT DIRECTORY):”后输入文件将被解压的完整路径,如C:\WINDOWS\SYSTEM并敲回车。   5、最后出现确认提示“IS THIS OK?(Y/N):",输入Y后回车。EXT程序会自动查找安装盘中的CAB压缩包,并将文件释放到指定的位置。   此法的最大优点是能在WIN98完全不能运行的情况下自动恢复文件,建议前两种方法无效时首选此法。   四、无WIN98启动盘时的应急恢复   如果你遇到了WIN98无法启动的故障,同时手边又没有WIN98启动盘。则只能用WIN98\COMMAND目录中的EXTRACT命令提取丢失文件。EXTRACT命令的格式如下:   1、EXTRACT〔/Y〕〔/A〕〔/D /E〕〔/L DIR〕 CABNET〔FILENAME……〕   2、EXTRACT〔/Y〕 SOURCE 〔NEWNAME〕   3、EXTRACT〔/Y〕〔/C〕 SOURCE DESTINATION   其中开关/Y覆盖已存在的文件时不提示;/A从指定的第一个CAB开始处理全部CAB文件;/D显示CAB文件中包含的文件目录,可用于查找文件;/E解压缩;/L DIR指定解压缩文件的位置,缺省为当前目录;CABINET指定WIN98安装盘中的CAB压缩包;FILENAME指定想从CAB文件中解压缩的文件名,可以使用通配符(*.*时解压缩所有的文件)或以空格隔开多个文件名;SOURCE包含一个文件的CAB文件;NEWNAME为解压缩后的文件名,缺省则用原文件名;/C拷贝CAB文件。   假如你的BIOS.VXD丢失,可使用“EXTRACT/D E:\WIN98\XXXX-XX.CAB"命令,逐个列出E:\WIN98下的CAB压缩包目录,最后找到它在BASE6.CAB中。然后使用“EXTRACT/E/L C\WINDOWS\SYSTEM E:\WIN98\BASE6.CAB BIOS.VXD"命令将它从E:\WIN98目录下的BASE6.CAB压缩包解压至C:\WINDOWS\SYSTEM目录,完成后重新启动系统即可。   此法原则上能够用于所有CAB格式文件的恢复,如OFFICE97之类。由于使用命令行方式查找文件非常不便,建议用于WIN98以外的文件恢复,对WIN98文件最好使用启动盘提供的EXT命令进行恢复。 恢复被CIH病毒破坏的C盘数据 陆艺红 (04/24/2000)      4月26日,CIH病毒大爆发,致使数以万计的电脑瘫痪,在抢救硬盘数据的战斗中,许多杀毒软件都判了C分区的“死刑”,即只能恢复D分区以后的分区数据,无法恢复C分区数据。在实践中,笔者找到了恢复C分区数据的方法,成功恢复了几个染毒硬盘的C分区98%以上的数据,具体方法如下:   一、修复硬盘分区表信息   被CIH病毒破坏的硬盘,其分区表已被彻底改写,用A盘启动也无法找到硬盘。所以,要恢复C分区的数据,首先要恢复硬盘分区表,同时恢复除C以外的其他逻辑分区的数据。修复分区表的方法很多,如使用KV300、NDD等,这里推荐使用北信源公司为对付CIH病毒而专门推出的硬盘数据挽救工具:VRVFIX,这是一个免费软件,可以在北信源公司的主页下载:http;//www.vrv.com.cn。   使用方法如下:   1.准备一张无病毒的启动盘,注意要根据原有操作系统及分区情况制作系统引导盘(FAT16或FAT32)。   2.把下载的VRVFIX.EXE文件拷入该引导盘,要确保还有足够剩余空间,并打开写保护。   3.用这张引导盘引导染毒的电脑(如果主板的BIOS已被CIH病毒破坏,可把硬盘拆下,拿到别的电脑上进行,也可先按第17期第23版相关文章介绍的方法,把主板BIOS修复好后再处理硬盘),运行VRVFIX.EXE,按回车键开始计算分区信息并自动恢复,当出现提示时,按回车键,直到出现“Make Partition Table ok”。   4.至此,修复完成,用引导盘重新引导系统,除C盘以外的其他逻辑分区(D、E、F...)的数据已经修复,但仍然无法访问C分区。   二、恢复C分区上的数据   完成了以上的工作后,就可以着手恢复C分区上的数据了。C分区无法被访问,主要是因为其目录结构被CIH病毒破坏了,要恢复C分区的目录结构,需要用到一个叫Tiramisu的工具软件,如果不是因为CIH病毒,它可就要“养在深闺人未识”了。需要了解这个软件的朋友可以访问Ontrack公司的主页:http://www.ontrack.com,这里着重介绍它的具体使用方法。   针对FAT16和FAT32,Tiramisu有For FAT16版和For FAT32版,应根据染毒硬盘的分区情况选择相对应的版本,两个版本均可以在http://www.ontrack.com下载。   1.制作一张无病毒的引导盘,然后在CONFIG.SYS中加入:   DOS=HIGH   DEVICE=HIMEM.SYS DEVICE=EMM386.EXE RAM   注意:别忘了把HIMEM.SYS和EMM386.EXE两个文件也拷入引导盘   2.把下载的Tiramisu压缩包里的所有文件解压缩到引导盘上。   3.用这张引导盘引导电脑,运行Tiramisu.exe,在“File”菜单中选择“Start recovery”菜单项,程序开始自动从C分区上寻找目录结构,这个过程所需要的时间由硬盘数据的多少决定,对于300MB的数据,大约需要10分钟左右。   4.C分区的目录结构搜索结束后,会显示目录搜索结果,看起来有点像WIN95的资源管理器,从这个“资源管理器”中可以看到:搜索到的目录结构与染毒前基本相同,只是被破坏过的目录,其目录名称被改成了CLUS????(如CLUS0500等),但目录里的文件却丝毫无损。CIH是从根目录开始一层层破坏目录结构表的,病毒运行时间越长破坏得越深,从笔者修复的几台电脑来看,情况最坏的被破坏到了第三层,但用Tiramisu修复后,只是改变了目录名,其结构和文件并未损坏。   5.Tiramisu的工作原理是在内存中重建一个目录结构映射表,让用户通过这个目录结构表把硬盘上的数据备份出来,而其本身并不向硬盘写入任何数据,所以绝对安全。这一步就是要把C分区上的数据备份出来:在“资源管理器”(目录表)中选择要备份的目录或文件,从“File”菜单中选择“Copy file(s)”菜单项,把数据拷贝到指定的驱动器上,可以是A驱或其它逻辑分区(D、E、F...),但千万不要直接拷贝到C分区上(对于只有一个C分区的硬盘,建议另挂一个从硬盘来备份数据)!   6.至此,C分区上的数据已成功备份出来,可以重新FORMAT了。最后,祝愿CIH的受害者们都能够找回宝贵的数据!欢迎读者来信交流:lyh123@163.net。 File Scavenger V1.40a 能够恢复在NTFS格式下意外删除的文件工具,前提条件是所删除的硬盘尚未被改写新的文件上去才可以救回,提供了找寻文件类型功能,ㄒ如*.doc及*.txt,能够救回的文件不只单一文件,还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘。 Fundelete V2.02 872KB 除了有恢复尚未清除的文件功能外,另有即始文件以从资源回收筒清除仍可恢复的反删除功能和能随时恢复所误删的文件功能,完全保护任何文件,替代及加强Windows NT/2000资源回收筒的功能,支持Windows NT/2000操作系统上的所有磁碟和FAT16、NTFS文件系统。 Recover98-EXPRESS V1.3 272KB 是跟RecoverNT以及只能在NT使用的RecoverNT-Express同样功能,是一种可以救回删除文件或格式化磁盘上的资料工具,不过,它比RecoverNT救文件的速度还快上数倍,同时也是 Win95/98专用的版本,除了跟操作平台不同,所支持的文件格式也有所不同外(Recover98-EXPRESS只支持FAT16和FAT32),几乎同样功能。使用上相当简单,不需要安装即可直接使用,只需执行后选择好磁盘,即会快速地自动扫描磁盘找出所删除的文件,并以清单显示找到的文件、所在目录或跟目录、文件大小、恢复机率、文件或目录所在磁区等等。拯救回来的文件除了无法在原来的磁盘上储存恢复外,可让你选择储存恢复到其它的磁盘或储存媒体。 Lost&Found V1.04 Patch 1058KB 由出品Partition Magic的PowerQuest公司所出的新产品, 硬盘资料复原工具,是一套恢复硬盘因病毒感染,意外格式化等因素所导至损失的资料工具软件, 能将已删除的文件资料找出并救回, 也能找出已重新格式化的硬盘, 被破坏的FAT分配表, 启动扇区等等, 几乎能找出及发现任何在硬盘上的资料(支持FAT16 和FAT32及长文件名), 并尽可能的救回, 并提供了分析和提示恢复的可能性功能, 救回来的资料能选择在原来所在位置恢复或储存到其它可写入资料的的硬盘, ZIP, MO支持所有IDE, EIDE及SCSI 设备, 亦提供了自动备份目录, 文件和系统配置文件, 能在任何时间恢复。 Recover 4 all V1.03 每个人一定都有曾不小心误删档案与目录的经验,通常要恢复误删档案有时是相当困难的, 不妨先试试Recover 4 al看看, 它能将刚刚所删除的档案找出来, (这软件只能在Win95 / 98执行), 但必需要在Win95 / 98下所删除的档案, 它才能找出并救回来, 它不能在DOS / Win3.1 / NT 执行, 99-10-9 240KB Recover 4 all v1.0 246KB 每个人一定都有曾不小心误删档案与目录的经验,通常要恢复误删档案有时是相当困难的, 不妨先试试Recover 4 al看看, 它能将刚刚所删除的档案找出来, (这软件只能在Win95 / 98执行), 但必需要在Win95 /98下所删除的档案, 它才能找出并救回来, 它不能在DOS / Win3.1 / NT 执行 File Scavenger V1.40a 1228KB 能够恢复在NTFS格式下意外删除的文件工具,前提条件是所删除的硬盘尚未被改写新的文件上去才可以救回,提供了找寻文件类型功能,ㄒ如*.doc及*.txt,能够救回的文件不只单一文件,还包括整个目录及压缩文件,也支持救回来的文件选择在原来所在位置恢复或储存到其它的硬盘。 RecoverNT V3.5 用来在WIN9x或WIN NT下搜索并恢复误删除的文件和子目录的好工具,这个版本增加了网络磁盘功能。可以通过电脑恢复网络其它电脑磁盘的文件 100-4-20 627KB 701 Recover98 V3.5 用来在WIN9x或WIN NT下搜索并恢复误删除的文件和子目录的好工具,这个版本增加了网络磁盘功能。可以通过电脑恢复网络其它电脑磁盘的文件。 100-4-20 757KB 983

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞1
打赏
分享
最新回复 (8)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsxu8 2004-10-21 09:01
2
0
主引导记录包括代码、数据两部分。它在被BIOS中断Int19h装入内存后获得控制权。数据
; 部分最重要的当然是分区表了!彻底熟悉主引导记录,可以帮助我们了解系统的引导过程,
; 处理因主引导记录损坏所造成的无法引导故障,消除引导型计算机病毒,更使我们能通过
; 修改主引导记录完成我们希望的工作:如多重引导,系统加软锁等...
;
; BIOS中断总是把主引导记录所在扇区(硬盘的0头0道1扇区)的内容(包括代码和数据)
; 装入内存0000:7C00起始的区域,然后检验该扇区内容的最后两个字节是不是“AA55”,
; 如果不是,那么对不起,Int19h将不把控制权交给主引导记录;若是,则下面的主引导记录
; 才能获得了控制权了(Int19通过跳转指令交转控制权):
;
; 二进制形式的主引导记录:
0000:0600 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....|
0000:0610 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW...........
0000:0620 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u...........
0000:0630 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.8,t....N.
0000:0640 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 <.t...........F%
0000:0650 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t.
0000:0660 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP.
0000:0670 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...U.u....t
0000:0680 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f..
0000:0690 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N
0000:06A0 25 03 4E 02 CD 13 72 29-BE 2D 07 81 3E FE 7D 55 %.N...r).-..>.}U
0000:06B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 1A 07 EB .tZ.......u.....
0000:06C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z.
0000:06D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 80 49 12 00 .Ot.3........I..
0000:06E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 V3.VVRP.SQ...V..
0000:06F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 64 10 72 PR..B.V$..ZX.d.r
0000:0700 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 B7 .@u.B......^..t.
0000:0710 D6 C7 F8 B1 ED CE DE D0-A7 00 BC D3 D4 D8 B2 D9 ................
0000:0720 D7 F7 CF B5 CD B3 CA B1-B3 F6 B4 ED 00 4D 69 73 .............Mis
0000:0730 73 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 sing operating s
0000:0740 79 73 74 65 6D 00 00 00-00 00 00 00 00 00 00 00 ystem...........
0000:0750 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0760 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0770 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0780 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W.........
0000:0790 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07B0 00 00 00 00 00 00 00 00-86 D8 00 00 00 00 80 01 ................
0000:07C0 01 00 06 3F 3F FD 3F 00-00 00 41 A0 0F 00 00 00 ...??.?...A.....
0000:07D0 01 FE 05 3F FF FE 80 A0-0F 00 C0 4F 2F 00 00 00 ...?.......O/...
0000:07E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
;
; 反汇编结果
;
; 0000:7C00~0000:7C1A:初始化各个段寄存器、堆栈指针,最后将主引导记录在内存中搬家,腾出其所占内
; 存空间以供装入分区引导记录。
0000:7C00 33C0       XOR    AX,AX         ;AX寄存器清0
0000:7C02 8ED0       MOV    SS,AX         ;SS=0
0000:7C04 BC007C     MOV    SP,7C00       ;装填栈指针――SS:SP=0000:7C00
0000:7C07 FB         STI                  ;开中断(装填栈指针时为避免硬件中断引起栈混乱应关中断)
0000:7C08 50         PUSH   AX            ;
0000:7C09 07         POP    ES            ;装填附加数据段寄存器ES=0
0000:7C0A 50         PUSH   AX            ;
0000:7C0B 1F         POP    DS            ;装填数据段寄存器DS=0
0000:7C0C FC         CLD                  ;规定其后的串操作为正向串操作
0000:7C0D BE1B7C     MOV    SI,7C1B       ;源指针
0000:7C10 BF1B06     MOV    DI,061B       ;目的指针
0000:7C13 50         PUSH   AX            ;
0000:7C14 57         PUSH   DI            ;看看0000:7C1A――构造一个跳转
0000:7C15 B9E501     MOV    CX,01E5       ;
0000:7C18 F3         REPZ                 ;
0000:7C19 A4         MOVSB                ;0000:7C1B起始的CX字节传送至0000:061B起始的区域
0000:7C1A CB         RETF                 ;跳转到0000:061B(这是一种技巧跳转)
;
; 为直观起见,下面的地址按实际运行时的地址给出。
; 0000:061B~0000:062B:对分区表进行初步检验,一旦检测到某分区表项状态字节大于等于80h,就通过(当
; 然,在此之前如果检测到某项分区表的状态字节小于80h,就转错误处理。当然,如果四个分区项的状态字节
; 都为零,主引导记录就会调用BIOS-ROM的INT 18h,显示"PRESS A KEY TO REBOOT"信息等待你的操作。
0000:061B BEBE07     MOV    SI,07BE       ;SI指向第一个分区表项,这时CX=0
0000:061E B104       MOV    CL,04         ;分区表共四个表项
0000:0620 382C       CMP    [SI],CH       ;
0000:0622 7C09       JL     062D          ;大于等于80h转[注意JL指令:(SF xor OF)=1则转]
0000:0624 7515       JNZ    063B          ;不为0则[SI]一定小于80h,只能转错误处理了!
0000:0626 83C610     ADD    SI,+10        ;为零则检查下一表项
0000:0629 E2F5       LOOP   0620          ;检查下一表项
0000:062B CD18       INT    18            ;四表项的状态字节都为0,则系统只好调用INT 18h了!
;
; 0000:062D~0000:0639:检查剩余的分区表项――状态字节必须为零,否则显示错误信息“分区表无效”然
; 后当机!拜托,微软搞错没有,怎么用中文提示信息?真TM傻得可爱!
; 这里还有个小BUG,前面放行原则是只要状态字节大于等于80h,那么如果这个字节是诸如A0h、E5h之类数值
; 呢?嘿嘿,这个引导记录统统认为是有效的可引导分区了!
0000:062D 8B14       MOV    DX,[SI]       ;为读分区引导记录做准备:磁头号→DH,驱动器号→DL
0000:062F 8BEE       MOV    BP,SI         ;SI→BP,保存可引导分区表项的指针
;
0000:0631 83C610     ADD    SI,+10        ;其余的分区表项还要检查检查的
0000:0634 49         DEC    CX            ;
0000:0635 7416       JZ     064D          ;CX=0则检查顺利通过,转继续
0000:0637 382C       CMP    [SI],CH       ;
0000:0639 74F6       JZ     0631          ;为零,是合法表项,再查下一表项
;
; 0000:063B~0000:064B:执行错误处理――报告错误信息后当机
0000:063B BE1007     MOV    SI,0710       ;错误信息字符串偏移+1→SI
0000:063E 4E         DEC    SI            ;SI-1→SI
0000:063F AC         LODSB                ;SI+1→SI
0000:0640 3C00       CMP    AL,00         ;
0000:0642 74FA       JZ     063E          ;AL=0则表明一条错误信息显示完毕,系统陷入一个死循环
0000:0644 BB0700     MOV    BX,0007       ;字符方式显示
0000:0647 B40E       MOV    AH,0E         ;
0000:0649 CD10       INT    10            ;以写电传方式显示信息(只显示一个字符)
0000:064B EBF2       JMP    063F          ;显示下一个字符,直到遇到提示信息结束为止
;
; 0000:064D~0000:0662:判断可引导分区的分区类型,然后转相应处理程序。
0000:064D 894625     MOV    [BP+25],AX    ;BP=指向第一个可引导分区表项的指针,这时AX=0000h
                                         ;使用长度最短的指令将[BP+25]起始的两个单元清零
                                         ;这两个单元将被用来存放中间变量
0000:0650 96         XCHG   SI,AX         ;此时SI清零的最佳指令选择(仅1字节),将服务于0000:06B8
0000:0651 8A4604     MOV    AL,[BP+04]    ;取分区类型(本例是“06”喽――FAT16主DOS分区)
0000:0654 B406       MOV    AH,06         ;为扩展INT 13h无法使用做好更改分区类型的准备
0000:0656 3C0E       CMP    AL,0E         ;0Eh:需要用扩展INT 13h访问的FAT16主DOS分区
0000:0658 7411       JZ     066B          ;0Eh类型的分区转066Bh
0000:065A B40B       MOV    AH,0B         ;
0000:065C 3C0C       CMP    AL,0C         ;0Ch:需要用扩展INT 13h访问的FAT32分区
0000:065E 7405       JZ     0665          ;0Ch类型的分区转0665h先行预处理
0000:0660 3AC4       CMP    AL,AH         ;0Bh:用传统INT 13h就可以访问的FAT32分区
0000:0662 752B       JNZ    068F          ;其他类型的分区转068Fh
;
; 0000:0664~0000:06A1:根据分区类型和分区表表项内容进行读取分区引导记录前的处理工作
0000:0664 40         INC    AX            ;★★★0Bh类型的分区由此开始处理,此条指令用意是清ZF位
0000:0665 C6462506   MOV    BYTE PTR [BP+25],06 ;★★★0Ch类型的分区由此开始处理
                                         ;为什么取值06,一时没有自圆我说的解释,请耐心几天吧。
0000:0669 7524       JNZ    068F          ;请注意上面指令对ZF位的影响:0Bh类型分区转,0Ch则不转
; 0000:066B~0000:068C这段代码仅当分区类型是0Ch、0Eh才有获得执行的机会
0000:066B BBAA55     MOV    BX,55AA       ;★★★0Eh类型的分区由此开始处理
0000:066E 50         PUSH   AX            ;
0000:066F B441       MOV    AH,41         ;扩展INT 13h功能,检测BIOS是否已经支持扩展INT13h
0000:0671 CD13       INT    13            ;入口参数:BX=55AAh,DL=驱动器号,AH=41h
0000:0673 58         POP    AX            ;执行完恢复AX为060Eh
0000:0674 7216       JB     068C          ;不支持则转
0000:0676 81FB55AA   CMP    BX,AA55       ;
0000:067A 7510       JNZ    068C          ;扩展INT13h不可用也转
0000:067C F6C101     TEST   CL,01         ;测试扩展盘访问是否被支持
0000:067F 740B       JZ     068C          ;不支持还转
; 因为扩展INT13h方式读盘与标准INT13h方式读盘有很大差别,所以0000:0686处指令修改其后的代码以保证按
; 照扩展读方式读分区引导扇区时能正确跳转到相应的处理程序中。
0000:0681 8AE0       MOV    AH,AL         ;分区类型→AH
0000:0683 885624     MOV    [BP+24],DL    ;保存驱动器号→[BP+24]
0000:0686 C706A106EB1E MOV    WORD PTR [06A1],1EEB ;修改0000:06A1处代码为"JMP 06C1"
0000:068C 886604     MOV    [BP+04],AH    ;注意:如果扩展INT13h不能使用则A改分区类型为06,但如果
                                         ;扩展INT13h能使用,则仍保持原分区类型不变
0000:068F BF0A00     MOV    DI,000A       ;★★★其它类型分区由此开始处理。此条指令初始化计数器
0000:0692 B80102     MOV    AX,0201       ;AH:读操作,AL:读取1个扇区的内容
0000:0695 8BDC       MOV    BX,SP         ;SP=7C00→BX,指定分区引导记录装入内存的位置偏移
0000:0697 33C9       XOR    CX,CX         ;CX清零
0000:0699 83FF05     CMP    DI,+05        ;注意5
0000:069C 7F03       JG     06A1          ;大于则转去读由分区表指定的分区引导扇区
0000:069E 8B4E25     MOV    CX,[BP+25]    ;小于则证明所读分区表指定的引导扇区无合法的引导记录,
                                         ;改按???再读,毕竟多一种选择多一次机会嘛!;)
; 以下标有①②者请注意它们的地址都是一样的,就是说实际运行中只可能是二者之一,但为了分析之方便,我
; 把两者都列了出来以供对比,阅读时千万别看成是两条指令了啊!
①0000:06A1 034E02     ADD    CX,[BP+02]    ;获取分区引导扇区所在的柱面号和物理扇区号
②0000:06A1 EB1E       JMP    06C1          ;如果分区类型是0Ch、0Eh而且扩展读能使用则执行该指令
;
; 0000:06A4:将可引导分区的分区引导记录装入内存指定区域
; 入口参数:AH=功能号,02为读盘操作;AL=一次读取的扇区数
;          ES:BX=读入内存的起始地址
;          CH=10位柱面号的低8位;CL:高两位是10位柱面号的高两位,低6位是物理扇区号
;          DH=磁头号;DL=驱动器号,最高位(即位7)为0是软盘,为1是硬盘
0000:06A4 CD13       INT    13            ;读分区引导记录到0000:7C00起始的区域
;
;
0000:06A6 7229       JB     06D1          ;不成功转
0000:06A8 BE2D07     MOV    SI,072D       ;错误信息字符串偏移→SI
0000:06AB 813EFE7D55AA CMP    WORD PTR [7DFE],AA55 ;分区引导记录合法吗?
0000:06B1 745A       JZ     070D          ;合法则转(这是主引导记录唯一的正常出口)
0000:06B3 83EF05     SUB    DI,+05        ;不合法则为换读其他扇区做准备
0000:06B6 7FDA       JG     0692          ;只有一次换读扇区的机会!
;
; 0000:06B8~0000:06BF:错误预处理
0000:06B8 85F6       TEST   SI,SI         ;测试SI值是否为0,其意义在于确定该显示哪条信息
0000:06BA 7583       JNZ    063F          ;不为0则转错误处理,显示“Missing operating system”
0000:06BC BE1A07     MOV    SI,071A       ;错误信息字符串偏移→SI
0000:06BF EB8A       JMP    064B          ;转错误处理,显示“加载操作系统时出错”
;
; 0000:06C1~0000:06CF:整理扩展读所需入口参数,然后调用扩展读子程序
; 这段代码只有在以扩展读方式读取分区引导记录时才有机会获得执行
0000:06C1 98         CBW                  ;转换字节AL为字AX,执行后,AX中是一次要读的扇区数
0000:06C2 91         XCHG   CX,AX         ;AX→CX,CX→AX,执行后,CX中是一次要读的扇区数
0000:06C3 52         PUSH   DX            ;
0000:06C4 99         CWD                  ;将字AX转换为双字→DX,AX
0000:06C5 034608     ADD    AX,[BP+08]    ;
0000:06C8 13560A     ADC    DX,[BP+0A]    ;执行后,DX:AX=LBA绝对物理扇区号
0000:06CB E81200     CALL   06E0          ;调用扩展读子程序
0000:06CE 5A         POP    DX            ;
0000:06CF EBD5       JMP    06A6          ;
;
; 0000:06D1~0000:06D8分区引导记录装入失败时的处理
0000:06D1 4F         DEC    DI            ;计数器减1
0000:06D2 74E4       JZ     06B8          ;五次读盘均未成功则转错误处理(注意这时SI=0)
0000:06D4 33C0       XOR    AX,AX         ;置功能号
0000:06D6 CD13       INT    13            ;复位磁盘系统
0000:06D8 EBB8       JMP    0692          ;再读
;
;
0000:06DA 00 00 80 49 12 00 ...I..
;
; 0000:06E0~0000:070C:使用扩展INT 13h功能读取分区引导记录的子程序
; 调用时,SP=7BFE。这段程序利用压栈寄存器方式构造了一个磁盘地址包,请注意体会。另外,0000:06FC处
; 的一条指令就释放了几乎全部由本段程序占用的栈空间,构思之巧妙,绝对需要我们学习!
; 所以,分析该段程序,一个重点应放在栈的变化上。
0000:06E0 56         PUSH   SI            ;保存SI――注意,这次压栈并不构造磁盘地址包
0000:06E1 33F6       XOR    SI,SI         ;清零
0000:06E3 56         PUSH   SI            ;
0000:06E4 56         PUSH   SI            ;
0000:06E5 52         PUSH   DX            ;
0000:06E6 50         PUSH   AX            ;以上四条指令压栈的是扇区LBA号码*2
0000:06E7 06         PUSH   ES            ;压栈内存目标缓冲区首址段址
0000:06E8 53         PUSH   BX            ;压栈内存目标缓冲区首址偏移
0000:06E9 51         PUSH   CX            ;压栈所读扇区数
0000:06EA BE1000     MOV    SI,0010       ;注意SI的高8位对应着磁盘地址包的保留字节,必须为0
0000:06ED 56         PUSH   SI            ;压栈磁盘地址包包长,执行完本条指令一个包已经构造完毕
0000:06EE 8BF4       MOV    SI,SP         ;规定磁盘地址包偏移指针,这时SP=7BEA
0000:06F0 50         PUSH   AX            ;保存AX
0000:06F1 52         PUSH   DX            ;保存DX
0000:06F2 B80042     MOV    AX,4200       ;置扩展读功能号
0000:06F5 8A5624     MOV    DL,[BP+24]    ;取驱动器号,参照0000:0683
; 入口参数:AH=功能号,02为读盘操作;DL=驱动器号
;          DS:SI=16字节磁盘地址包――第0字节:包长度(固定为10h);第1字节:保留,必须为0;
;          第2、3字节:所读扇区数;第4~5字节:内存目标缓冲区首址偏移;
;          第6~7字节:内存目标缓冲区首址段址; 第8~15字节:扇区LBA号码
; 出口参数:成功则AH=0;错误则AH=错误代码
0000:06F8 CD13       INT    13            ;执行扩展读操作
0000:06FA 5A         POP    DX            ;
0000:06FB 58         POP    AX            ;
0000:06FC 8D6410     LEA    SP,[SI+10]    ;7BEA+10h=7BFA→SP(注意是取偏移而不是取单元内容)
0000:06FF 720A       JB     070B          ;扩展读不成功转
0000:0701 40         INC    AX            ;
0000:0702 7501       JNZ    0705          ;
0000:0704 42         INC    DX            ;AX加1溢出时(比如0FFFFh+1)DX才加1
0000:0705 80C702     ADD    BH,02         ;调整BX,使偏移量增加512字节(刚好一扇区)
0000:0708 E2F7       LOOP   0701          ;0701~0708一段代码暂未明白其真实意图!
0000:070A F8         CLC                  ;
0000:070B 5E         POP    SI            ;
0000:070C C3         RET                  ;
;
; 0000:070D:中继跳转
0000:070D EB74       JMP    0783          ;
;
; 070F~0745是错误信息!果然是中文Windows98生成的主引导记录,所以我要特别
; “感谢”微软这个傻B,真难为它竟然用中文表述前两个信息!可惜真需显示的时
; 候鬼才能看懂是什么呢!!!我K!――耍弄我们耶!?
; 070F~0718:“分区表无效”中文信息
; 071A~072B:“加载操作系统时出错”中文信息
; 072D~0744:“Missing operating system”英文信息
0000:070F B7 .
0000:0710 D6 C7 F8 B1 ED CE DE D0-A7 00 BC D3 D4 D8 B2 D9 ................
0000:0720 D7 F7 CF B5 CD B3 CA B1-B3 F6 B4 ED 00 4D 69 73 .............Mis
0000:0730 73 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 sing operating s
0000:0740 79 73 74 65 6D 00 00 00-00 00 00 00 00 00 00 00 system..........
0000:0750 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0760 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0770 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:0780 00 00 00 ...
;
; 0000:0783~0000:0789:控制权移交
0000:0783 8BFC       MOV    DI,SP         ;
0000:0785 1E         PUSH   DS            ;
0000:0786 57         PUSH   DI            ;构造一个跳转地址
0000:0787 8BF5       MOV    SI,BP         ;
0000:0789 CB         RETF                 ;交控制权给分区引导记录(0000:7C00)
;
;
0000:078A 00 00 00 00 00 00 ......
0000:0790 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
;
; 07B8~07BB四个字节的内容用于什么呢?(不同机器此四字节均不同)
; 07BE~07FD为分区表,内含四个分区表项(每表项10h字节)
0000:07B0 00 00 00 00 00 00 00 00-86 D8 00 00 00 00 80 01 ................
0000:07C0 01 00 06 3F 3F FD 3F 00-00 00 41 A0 0F 00 00 00 ...??.?...A.....
0000:07D0 01 FE 05 3F FF FE 80 A0-0F 00 C0 4F 2F 00 00 00 ...?.......O/...
0000:07E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:07F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
*1:因为物理扇区号总是从1排列而起
*2:由此可见,就是使用LBA扩展读的功能,主引导记录却限制了分区引导扇区必须在LBA绝对物理扇区
    0FFFFFFFFh之前才有可能从该分区引导系统!
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsxu8 2004-10-21 09:03
3
0
扩展int13h调用详解

第一部分  简  介

一. 硬盘结构简介

  1. 硬盘参数释疑

    到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/
Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么?
它们的取值范围是什么?
    很久以前, 硬盘的容量还非常小的时候, 人们采用与软盘类似的结
构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数. 由此
产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads), 柱面数
(Cylinders), 扇区数(Sectors),以及相应的寻址方式.

    其中:

    磁头数(Heads) 表示硬盘总共有几个磁头,也就是有几面盘片, 最大
为 255 (用 8 个二进制位存储);
    柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道, 最大为 1023
(用 10 个二进制位存储);
    扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63 (用 6
个二进制位存储).
    每个扇区一般是 512个字节, 理论上讲这不是必须的, 但好象没有取
别的值的.

    所以磁盘最大容量为:

    255 * 1023 * 63 * 512 / 1048576 = 8024 MB ( 1M = 1048576 Bytes )
或硬盘厂商常用的单位:
    255 * 1023 * 63 * 512 / 1000000 = 8414 MB ( 1M = 1000000 Bytes )

    在 CHS 寻址方式中, 磁头, 柱面, 扇区的取值范围分别为 0 到 Heads - 1,
0 到 Cylinders - 1, 1 到 Sectors (注意是从 1 开始).

  2. 基本 Int 13H 调用简介

    BIOS Int 13H 调用是 BIOS 提供的磁盘基本输入输出中断调用, 它可以
完成磁盘(包括硬盘和软盘)的复位, 读写, 校验, 定位, 诊断, 格式化等功能.
它使用的就是 CHS 寻址方式, 因此最大识能访问 8 GB 左右的硬盘 ( 本文中
如不作特殊说明, 均以 1M = 1048576 字节为单位).

  3. 现代硬盘结构简介

    在老式硬盘中, 由于每个磁道的扇区数相等, 所以外道的记录密度要远低
于内道, 因此会浪费很多磁盘空间 (与软盘一样). 为了解决这一问题, 进一
步提高硬盘容量, 人们改用等密度结构生产硬盘. 也就是说, 外圈磁道的扇区
比内圈磁道多. 采用这种结构后, 硬盘不再具有实际的3D参数, 寻址方式也改
为线性寻址, 即以扇区为单位进行寻址.
    为了与使用3D寻址的老软件兼容 (如使用BIOS Int13H接口的软件), 在硬
盘控制器内部安装了一个地址翻译器, 由它负责将老式3D参数翻译成新的线性
参数. 这也是为什么现在硬盘的3D参数可以有多种选择的原因 (不同的工作模
式, 对应不同的3D参数, 如 LBA, LARGE, NORMAL).

  4. 扩展 Int 13H 简介

    虽然现代硬盘都已经采用了线性寻址, 但是由于基本 Int 13H 的制约, 使
用 BIOS Int 13H 接口的程序, 如 DOS 等还只能访问 8 G 以内的硬盘空间.
为了打破这一限制, Microsoft 等几家公司制定了扩展 Int 13H 标准
(Extended Int13H), 采用线性寻址方式存取硬盘, 所以突破了 8 G 的限制,
而且还加入了对可拆卸介质 (如活动硬盘) 的支持.

二. Boot Sector 结构简介

  1. Boot Sector 的组成

    Boot Sector 也就是硬盘的第一个扇区, 它由 MBR (Master Boot Record),
DPT (Disk Partition Table) 和 Boot Record ID  三部分组成.

    MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ),
存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
    DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区
信息. 主分区表分为四个分区项, 每项 16 字节, 分别记录了每个主分区的信息
(因此最多可以有四个主分区).
    Boot Record ID 即引导区标记占用两个字节 (0x1FE and 0x1FF), 对于合法
引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志.
    Boot Sector 的具体结构如下图所示 (参见 NightOwl 大侠的文章):

      0000  |------------------------------------------------|
            |                                                |
            |                                                |
            |             Master Boot Record                 |
            |                                                |
            |                                                |
            |             主引导记录(446字节)                |
            |                                                |
            |                                                |
            |                                                |
      01BD  |                                                |
      01BE  |------------------------------------------------|
            |                                                |
      01CD  |             分区信息  1(16字节)                |
      01CE  |------------------------------------------------|
            |                                                |
      01DD  |             分区信息  2(16字节)                |
      01DE  |------------------------------------------------|
            |                                                |
      01ED  |             分区信息  3(16字节)                |
      01EE  |------------------------------------------------|
            |                                                |
      01FD  |             分区信息  4(16字节)                |
            |------------------------------------------------|
            | 01FE                | 01FF                     |
            |         55          |           AA             |
            |------------------------------------------------|

  2. 分区表结构简介

    分区表由四个分区项构成, 每一项的结构如下:

    BYTE State       : 分区状态, 0 = 未激活, 0x80 = 激活 (注意此项)
    BYTE StartHead   : 分区起始磁头号
    WORD StartSC     : 分区起始扇区和柱面号, 底字节的低6位为扇区号,
                     高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位
    BYTE Type        : 分区类型, 如 0x0B = FAT32, 0x83 = Linux 等,
                     00 表示此项未用
    BYTE EndHead     : 分区结束磁头号
    WORD EndSC       : 分区结束扇区和柱面号, 定义同前
    DWORD Relative   : 在线性寻址方式下的分区相对扇区地址
                       (对于基本分区即为绝对地址)
    DWORD Sectors    : 分区大小 (总扇区数)

    注意: 在 DOS / Windows 系统下, 基本分区必须以柱面为单位划分
( Sectors * Heads 个扇区), 如对于 CHS 为 764/255/63 的硬盘, 分区的
最小尺寸为  255 * 63 * 512 / 1048576 = 7.844 MB.

  3. 扩展分区简介

    由于主分区表中只能分四个分区, 无法满足需求, 因此设计了一种扩展
分区格式. 基本上说, 扩展分区的信息是以链表形式存放的, 但也有一些特
别的地方.
    首先, 主分区表中要有一个基本扩展分区项, 所有扩展分区都隶属于它,
也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中. 对于
DOS / Windows 来说, 扩展分区的类型为 0x05或0x0F(>8GB).
    除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放, 后
一个扩展分区的数据项记录在前一个扩展分区的分区表中, 但两个扩展分区
的空间并不重叠.
    扩展分区类似于一个完整的硬盘, 必须进一步分区才能使用. 但每个扩
展分区中只能存在一个其他分区. 此分区在 DOS/Windows 环境中即为逻辑盘.
因此每一个扩展分区的分区表 (同样存储在扩展分区的第一个扇区中)中最多
只能有两个分区数据项(包括下一个扩展分区的数据项).
    扩展分区和逻辑盘的示意图如下:

  |-----------------------|             --------
  | 主扩展分区(/dev/hda2) |                    ^
  |-----------------------|                    |
  |  扩  展  |  分区项 1  |--\                 |
  |          |------------|  |                 |
  |  分区表  |  分区项 2  |--+--\              |
  |-----------------------|  |  |              |
  |                       |  |  |              |
  | 逻辑盘 1 (/dev/hda5)  |<-/  |              |
  |                       |     |              |
  |-----------------------|     |             主
  |      扩展分区 2       |<----/
  |-----------------------|                   扩
  |  扩  展  |  分区项 1  |--\
  |          |------------|  |                展
  |  分区表  |  分区项 2  |--+--\
  |-----------------------|  |  |             分
  |                       |  |  |
  | 逻辑盘 2 (/dev/hda6)  |<-/  |             区
  |                       |     |              |
  |-----------------------|     |              |
  |      扩展分区 3       |<----/              |
  |-----------------------|                    |
  |  扩  展  |  分区项 1  |--\                 |
  |          |------------|  |                 |
  |  分区表  |            |  |                 |
  |-----------------------|  |                 |
  |                       |  |                 |
  | 逻辑盘 3 (/dev/hda7)  |<-/                 |
  |                       |                    |
  |-----------------------|            ---------

三. 系统启动过程简介

    系统启动过程主要由一下几步组成(以硬盘启动为例):

    1. 开机 :-)
    2. BIOS 加电自检 ( Power On Self Test -- POST )
       内存地址为 0ffff:0000
    3. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector)
       读入内存地址 0000:7c00 处.
    4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于
       则转去尝试其他启动介质, 如果没有其他启动介质则显示
       "No ROM BASIC" 然后死机.
    5. 跳转到 0000:7c00 处执行 MBR 中的程序.
    6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.
    7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动
       分区或有不止一个活动分区, 则转停止.
    8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.
    9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则

       显示 "Missing Operating System" 然后停止, 或尝试
       软盘启动.
    10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.
    11. 启动系统 ...

    以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10
步由MBR中的引导程序完成.

    一般多系统引导程序 (如 SmartFDISK, BootStar, PQBoot 等)
都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序
之前让用户选择要启动的分区.
    而某些系统自带的多系统引导程序 (如 lilo, NT Loader 等)
则可以将自己的引导程序放在系统所处分区的第一个扇区中, 在 Linux
中即为 SuperBlock (其实 SuperBlock 是两个扇区).

    注: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导
过程与此不同.

    第二部分 技术资料

第一章 扩展 Int13H 技术资料

一. 简介
    设计扩展 Int13H 接口的目的是为了扩展 BIOS 的功能, 使其支持
多于1024柱面的硬盘, 以及可移动介质的琐定, 解锁及弹出等功能.

二. 数据结构

1. 数据类型约定
    BYTE    1 字节整型 (  8 位 )
    WORD    2 字节整型 ( 16 位 )
    DWORD   4 字节整型 ( 32 位 )
    QWORD   8 字节整型 ( 64 位 )

2. 磁盘地址数据包 Disk Address Packet (DAP)
    DAP 是基于绝对扇区地址的, 因此利用 DAP, Int13H 可以轻松地逾
越 1024 柱面的限制, 因为它根本就不需要 CHS 的概念.
    DAP 的结构如下:

    struct DiskAddressPacket
    {
        BYTE PacketSize;     // 数据包尺寸:
                             //(固定值,恒等于16,即10H,指本结构所占用的存储空间)
        BYTE Reserved;       // ==0
        WORD BlockCount;     // 要传输的数据块个数(以扇区为单位)
        DWORD BufferAddr;    // 传输缓冲地址(segment:offset)
        QWORD BlockNum;      // 磁盘起始绝对块地址
    };

    PacketSize 保存了 DAP 结构的尺寸, 以便将来对其进行扩充. 在
目前使用的扩展 Int13H 版本中 PacketSize 恒等于 16. 如果它小于
16, 扩展 Int13H 将返回错误码( AH=01, CF=1 ).
    BlockCount 对于输入来说是需要传输的数据块总数, 对于输出来说
是实际传输的数据块个数. BlockCount = 0 表示不传输任何数据块.
    BufferAddr 是传输数据缓冲区的 32 位地址 (段地址:偏移量). 数据
缓冲区必须位于常规内存以内(1M).
    BlockNum 表示的是从磁盘开始算起的绝对块地址(以扇区为单位),
与分区无关. 第一个块地址为 0. 一般来说, BlockNum 与 CHS 地址的关系
是:
    BlockNum =
(cylinder * NumberOfHeads + head) * SectorsPerTrack + sector - 1;

    其中 cylinder, head, sector 是 CHS 地址, NumberOfHeads 是磁盘
的磁头数, SectorsPerTrack 是磁盘每磁道的扇区数.
    也就是说 BlockNum 是沿着 扇区->磁道->柱面 的顺序记数的. 这一顺
序是由磁盘控制器虚拟的, 磁盘表面数据块的实际排列顺序可能与此不同
(如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序).

3. 驱动器参数数据包 Drive Parameters Packet
   驱动器参数数据包是在扩展 Int13H 的取得驱动器参数子功能调用中
使用的数据包. 格式如下:
    struct DriveParametersPacket
    {
        WORD InfoSize;          // 数据包尺寸:
                                //(固定值,等于26,即1AH,指本结构所占用的存储空间)
        WORD Flags;             // 信息标志
        DWORD Cylinders;        // 磁盘柱面数
        DWORD Heads;            // 磁盘磁头数
        DWORD SectorsPerTrack;  // 每磁道扇区数
        QWORD Sectors;          // 磁盘总扇区数
        WORD SectorSize;        // 扇区尺寸 (以字节为单位)
    };
    信息标志用于返回磁盘的附加信息, 每一位的定义如下:

    0 位:
        0 = 可能发生 DMA 边界错误
        1 = DMA 边界错误将被透明处理
        如果这位置 1, 表示 BIOS 将自动处理 DMA 边界错误, 也就是说
        错误代码 09H 永远也不会出现.

    1 位:
        0 = 未提供 CHS 信息
        1 = CHS 信息合法
        如果块设备的传统 CHS 几何信息不适当的话, 该位将置 0.

    2 位:
        0 = 驱动器不可移动
        1 = 驱动器可移动

    3 位: 表示该驱动器是否支持写入时校验.

    4 位:
        0 = 驱动器不具备介质更换检测线
        1 = 驱动器具备介质更换检测线

    5 位:
        0 = 驱动器不可锁定
        1 = 驱动器可以锁定
        要存取驱动器号大于 0x80 的可移动驱动器, 该位必须置 1
        (某些驱动器号为 0 到 0x7F 的设备也需要置位)

    6 位:
        0 = CHS 值是当前存储介质的值 (仅对于可移动介质), 如果
        驱动器中有存储介质, CHS 值将被返回.
        1 = CHS 值是驱动器支持的最大值 (此时驱动器中没有介质).

    7 - 15 位: 保留, 必须置 0.

三. 接口规范

1. 寄存器约定
    在扩展 Int13H 调用中一般使用如下寄存器约定:

    ds:si ==> 磁盘地址数据包( disk address packet )
    dl    ==> 驱动器号
    ah    ==> 功能代码 / 返回码

    在基本 Int13H 调用中, 0 - 0x7F 之间的驱动器号代表可移动驱动器
0x80 - 0xFF 之间的驱动器号代表固定驱动器. 但在扩展 Int13H 调用中
0x80 - 0xFF 之间还包括一些新出现的可移动驱动器, 比如活动硬盘等.
这些驱动器支持先进的锁定,解锁等功能.
    ah 返回的错误码除了标准 Int13H 调用规定的基本错误码以外,又增加
了以下错误码:

   B0h   驱动器中的介质未被锁定

   B1h   驱动器中的介质已经锁定

   B2h   介质是可移动的

   B3h   介质正在被使用

   B4h   锁定记数溢出

   B5h   合法的弹出请求失败

2. API 子集介绍
   1.x 版的扩展 Int13H 调用中规定了两个主要的 API 子集.

   第一个子集提供了访问大硬盘所必须的功能, 包括 检查扩展 In13H
是否存在( 41h ), 扩展读( 42h ), 扩展写( 43h ), 校验扇区( 44h ),
扩展定位( 47h ) 和 取得驱动器参数( 48h ).
   第二个子集提供了对软件控制驱动器锁定和弹出的支持, 包括 检查扩展
Int13H 是否存在( 41h ), 锁定/解锁驱动器( 45h ), 弹出驱动器( 46h ),
取得驱动器参数( 48h ), 取得扩展驱动器改变状态( 49h ), int 15h.
   如果使用了调用规范中不支持的功能, BIOS 将返回错误码 ah = 01h,
CF = 1.

3. API 详解

1) 检验扩展功能是否存在
入口:
    AH = 41h
    BX = 55AAh
    DL = 驱动器号

返回:
    CF = 0
       AH = 扩展功能的主版本号
       AL = 内部使用
       BX = AA55h
       CX = API 子集支持位图
    CF = 1
       AH = 错误码 01h, 无效命令

    这个调用检验对特定的驱动器是否存在扩展功能. 如果进位标志置 1
则此驱动器不支持扩展功能. 如果进位标志为 0, 同时 BX = AA55h, 则
存在扩展功能. 此时 CX 的 0 位表示是否支持第一个子集, 1位表示是否
支持第二个子集.
    对于 1.x 版的扩展 Int13H 来说, 主版本号 AH = 1. AL 是副版本号,
但这仅限于 BIOS 内部使用, 任何软件不得检查 AL 的值.

2) 扩展读
入口:
    AH = 42h
    DL = 驱动器号
    DS:DI = 磁盘地址数据包(Disk Address Packet)

返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用将磁盘上的数据读入内存. 如果出现错误, DAP 的 BlockCount
项中则记录了出错前实际读取的数据块个数.

3) 扩展写
入口:
    AH = 43h
    AL
       0 位 = 0 关闭写校验
              1 打开写校验
       1 - 7 位保留, 置 0
    DL = 驱动器号
    DS:DI = 磁盘地址数据包(DAP)
返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用将内存中的数据写入磁盘. 如果打开了写校验选项, 但 BIOS
不支持, 则会返回错误码 AH = 01h, CF = 1. 功能 48h 可以检测BIOS是否
支持写校验.
    如果出现错误, DAP 的 BlockCount 项中则记录了出错前实际写入的数
据块个数.

4) 校验扇区
入口:
    AH = 44h
    DL = 驱动器号
    DS:DI = 磁盘地址数据包(Disk Address Packet)

返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用校验磁盘数据, 但并不将数据读入内存.如果出现错误, DAP 的
BlockCount 项中则记录了出错前实际校验的数据块个数.

5) 锁定/解锁驱动器
入口:
    AH = 45h
    AL
        = 0 锁定驱动器
        = 1 驱动器解锁
        = 02 返回锁定/解锁状态
        = 03h-FFh - 保留
    DL = 驱动器号

返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用用来缩定指定驱动器中的介质.
    所有标号大于等于 0x80 的可移动驱动器必须支持这个功能. 如果
在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用, 将
会成功返回.
    驱动器必须支持最大255次锁定, 在所有锁定被解锁之前, 不能在物理上
将驱动器解锁. 解锁一个未锁定的驱动器,将返回错误码 AH= B0h. 如果锁定一
个已锁定了255次的驱动器, 将返回错误码 AH = B4h.
    锁定一个没有介质的驱动器是合法的.

6) 弹出可移动驱动器中的介质
入口:
    AH = 46h
    AL = 0 保留
    DL = 驱动器号

返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用用来弹出指定的可移动驱动器中的介质.
    所有标号大于等于 0x80 的可移动驱动器必须支持这个功能. 如果
在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用, 将
会返回错误码 AH = B2h (介质不可移动). 如果试图弹出一个被锁定的介质
将返回错误码 AH = B1h (介质被锁定).
    如果试图弹出一个没有介质的驱动器, 则返回错误码 Ah = 31h (驱动器
中没有介质).
    如果试图弹出一个未锁定的可移动驱动器中的介质, Int13h会调用 Int15h
(AH = 52h) 来检查弹出请求能否执行. 如果弹出请求被拒绝则返回错误码(同
Int15h). 如果弹出请求被接受,但出现了其他错误, 则返回错误码 AH = B5h.

7) 扩展定位
入口:
    AH = 47h
    DL = 驱动器号
    DS:DI = 磁盘地址数据包(Disk Address Packet)

返回:
    CF = 0, AH = 0 成功
    CF = 1, AH = 错误码

    这个调用将磁头定位到指定扇区.

8) 取得驱动器参数
入口:
    AH = 48h
    DL = 驱动器号
    DS:DI = 返回数据缓冲区地址

返回:
    CF = 0, AH = 0 成功
        DS:DI 驱动器参数数据包地址, (参见前面的文章)
    CF = 1, AH = 错误码

    这个调用返回指定驱动器的参数.

9) 取得扩展驱动器介质更换检测线状态
入口:
    AH = 49h
    DL = 驱动器号

返回:
    CF = 0, AH = 0  介质未更换
    CF = 1, AH = 06h 介质可能已更换

    这个调用返回指定驱动器的介质更换状态.
    这个调用与 Int13h AH = 16h 子功能调用相同, 只是允许任何驱动器
标号. 如果对一台支持可移动介质功能子集的固定驱动器使用此功能,则永远
返回 CF = 0, AH = 0.
    简单地将可移动介质锁定再解锁就可以激活检测线, 而无须真正更换介质.

10) Int 15h 可移动介质弹出支持
入口:
    AH = 52h
    DL = 驱动器号
返回:
    CF = 0, AH = 0 弹出请求可能可以执行
    CF = 1, AH = 错误码 B1h 或 B3h  弹出请求不能执行

    这个调用是由 Int13h AH=46h 弹出介质功能调用内部使用的.
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsxu8 2004-10-21 09:16
4
0
以上几篇算我对此论坛的支持而而作点小奉献,有些摘自微软内部资料!本人酷爱汇编,为了纪念江民先生的逻辑锁亲自作了一个一键恢复分区表的软盘上的程序,有兴趣小试一翻,这也是我研究和破解还原卡自己用的软件,由于受上传文件大小限制,不便上传,我把它传给fly兄,让他帮忙开个页面下载,也可向QQ
:122253385索取。dsxu8@sina.com
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
panther666 2004-10-27 20:00
5
0
好多啊.
谢谢了.
我收下拉.:D
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-10-27 20:34
6
0
最初由 dsxu8 发布
以上几篇算我对此论坛的支持而而作点小奉献,有些摘自微软内部资料!本人酷爱汇编,为了纪念江民先生的逻辑锁亲自作了一个一键恢复分区表的软盘上的程序,有兴趣小试一翻,这也是我研究和破解还原卡自己用的软件,由于受上传文件大小限制,不便上传,我把它传给fly兄,让他帮忙开个页面下载,也可向QQ
:122253385索取。dsxu8@sina.com


thanks
可以分割一下再上传
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-10-27 20:47
7
0
另外:如果以上帖子是楼主原创
就转到 调试论坛 请其斑竹讨论加精华
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsxu8 2004-10-27 22:01
8
0
fly大哥 ,谢谢你的关心,由于时间的限制,我只有回复和贴贴子,如果你有时间或愿意的话,请帮忙把它上精华,谢谢!。另外,如果你愿意的话,我把我的小小软件通过qq传给你,你作个ftp或http让大家下载共享。谢谢!qq:122253385
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2004-10-28 13:21
9
0
林大哥难道是江湖上传说的风般的男人?
游客
登录 | 注册 方可回帖
返回