第5章《起始簇号的计算方法》

就算起始簇号有两种方法,1是公式计算,2是组合数值。

第一个公式:起始簇号等于低16位的数值+(高16位的数值*65536)

注意:当高16位为0的时候,那么只需要看低16位的数值

位置:高16位在左,低16位在右。

  1. 让数据区先转到根目录
  2. 在高低位中找到的是起始起始簇号而不是扇区,扇区要利用算出的簇号转化,在跳至扇区中转成扇区。
  3. 在数据存储中数值是相反的-----例如:00 00 05 09 00   00 00 05 0E 00 提取出来就是09 05 0E 05

第二个组合数值

  1. 把提取出来的数输入到计算机十六进制里面转换成十进制,然后再把转换好的数值复制到跳至扇区中簇的框中在扇区框中的数值就是文件的数据扇区。
  2. 手工提取数据字符串,点击要复制数值的第一位按住ALT+1键选中,然后再单击数值末尾字符按ALT+2选中再单击右键编辑-复制选块-至新文件,然后文件名和扩展名一定要与提取前的数据一样。

注意:手工提取的数据没有扩展名。

注:提取的数据是在扇区中提取的不是在根目录中提取的。

第6章《利用FAT表找出目录的下个簇》

  • 当第一个目录里的文件比较多时,一个簇存不下所有文件,就会增加一个簇来存放文件。但这两个簇往往不是连续的,就需要FAT表来定位目录的下个簇是第几号簇。
  • 打开字符转换器,然后把汉字输入到里面,把它的ANSI码复制到查找十六进制里面去找。
  • 一切开始都是从2号簇开始找,把光标放到2号簇的第一位记录它的32bit数值,然后在跳至扇区中把数值输入到簇的框中搜索,搜索到的就是根目录的下一个簇。找到下一个簇后就跳至扇区看能否搜索到要找的数据,如果能那么就提取出来如果不能就继续找下个簇。

例如:找到的是3号簇,那么就看32bit,如果32bit是3614,那么就跳至扇区去查找十六进制。看能否一至两秒能否找到,如不能就继续找下一个簇。

注意:如果还要找下一个簇一定要回到FAT1里面来找也就是一定要回到原始位置,光标也一定要放到第一位的数值上。这里是开始第二个簇的查找,第一个不用这样,第一个是光标放在2号簇的第一个数值上,不要混淆了。

注意:每找到一个簇就要跳至扇区去开一下能否搜索到。

  • 如果要找下一个簇那么把(原来的32bit的数值*4),然后再把计算出的结果放到(转到偏移量)中的新位置框中,相对于哪里选择当前位置也就是光标所放的位置。

位置:选项下面第一个

注意:通常我们用的都是十进制,如果一开始用的是十六进制那么一直都要用十六进制查找、搜索等,要不然找出来的是错的。

这样以此类推直到找到为止

以上转到偏移量都是十进制

第七章《长文件名目录项》

  • 当文件名超过8个字节时,就需要用长文件名目录项来存储文件名。
  • 长文件名目录项的0B位置标志一定是0F。
  • 长文件名目录项使用Unicode编码存储文件名的。
  • 长文件名目录项数据结构:

偏移字节(16进制)

描述

00-00

状态码(E5:删除;01表示目录项序号;42前面的4是表示最后一个目录项,后面的2是表示序号为2的目录项)。

01-0A

长文件名的第1-5个字符

0B-0B

长文件名目录项的标志为0F

0C-0C

保留

0D-0D

校验和

0E-19

文件名的第6-11个字符

1A-1B

保留

1C-1F

文件名的第12-13个字符

注意:找到长文件名的目录项后,找到的那个里面没有有用的数据,只不过是记录文件名的,有用的在长文件名的下一项数值才有用,也就是说只有它的短文件名目录项才有高16位和低16位。

  • Unicode编码中每个字符都会用两个字节来表示。
  • 长文件名是用Unicode编码,短文件名用的是ANSI编码。

第八章《根据两个子目录算出簇大小》

  • 子目录:

每个文件夹的最前面两个目录项,一定是“.”和“..”目录项,分别表示子目录本身和父目录。

  • 簇大小计算公式:

两个扇区相减,两个簇相减;然后它们的和相除,然后结果就是簇的大小。

例如:扇区:40992,,238208;簇:131080,4。     就是:2138208-40992=2097216,131080-4=131076再然后就是 2097216除以4=16;那么就表明每个簇有16个扇区。

以上都是在十进制里面进行的

第九章《搜索完整的长文件名》

1、WinHex搜索限制:

Winhex搜索十六进制数值最多只能搜索50个字节,如果超过50个字节winhex将自动把多余的字节忽略掉

2、50个字节只能容纳20个字符的长文件名目录项。

3、一个文件名目录项的长度是32个字节,所以50个字节的话那后面的就还剩下18个字节也就是说第二个文件名目录项也可以查找它前面18个字节的十六进制,那么前面的18个字节的话是到偏移11的位置。

4、在Unicode编码中两个字节对应的是文件名一个符。

5、如果要复制搜索的话一定要从下向上复制慢50个字节也是可以搜索,不过太过于复杂,通常一般都是复制的是前面的32个字节来查找十六进制。

注:(1)、先把字符转换成Unicode编码

  1. 、转换完好后复制并记录Unicode编码
  2. 在winhex中找一个全为0的扇区,然后选一小部分来填充成“3F”--3F名为通配符。
  3. 再按长文件名目录项数据结构图标来把转换好的十六进制填在“3F”中。
  4. 填充完成后复制第一项的十六进制数值来查找长文件名目录项。

6、长文件名目录项数据结构:

偏移字节(16进制)

描述

00-00

状态码(E5:删除;01表示目录项序号;42前面的4是表示最后一个目录项,后面的2是表示序号为2的目录项)。

01-0A

长文件名的第1-5个字符

0B-0B

长文件名目录项的标志为0F

0C-0C

保留

0D-0D

校验和

0E-19

文件名的第6-11个字符

1A-1B

保留

1C-1F

文件名的第12-13个字符

注:填充Ctrl + B然后选择ASCII Hex选项!还有在搜索的时候记得勾上“用作通配符”。

注:因为一个字符对应的是两个字节,所以看图表的时候遇到字符时都要乘以2.例如:0E-19;6-11个字符,那么就是6*2=12那么就是要数12个字节填充才可以。

第十章《找出指定目录的所有子目录》

  • (1)每个文件夹的最前面两个目录项,一定是“.”和“..”目录项,分别表示子目录项本身和父目录
  1. 在根目录下的文件夹父目录的簇号是0不是2。
  2. 在别的文件夹里的文件夹,它的父目录就是父目录文件夹的本身簇号。
  • 如果根目录损坏,那么我们可以直接通过搜索子目录,也就是直接搜索根目录下的所有子目录。具体方法:所有目录项的前面一定是“.”目录项,“.”目录项的文件头是2E 20 20 20 20 20 20 20 20 20 20,所以我们搜索十六进制数值时只需要搜索这个就可以了。

注:但是如果这样去搜索的话是搜索里面所有的文件夹,不仅仅是子目录还有目录里面的目录,这样一层一层的全部都会被搜索出来。

  • 记住在查找十六进制时在有通配符“3F”的时候才勾上,如果没有就别勾,还有条件偏移计算填上512=32然后再勾上

解释:因为每个扇区有512个字节而字符所占用的最少都是两行也就是32个字节,所以512=32。

  • 在根目录没有损坏的情况下是可以显示文件夹路径的。
  • 在故意损坏根目录时填充的数一般都是00不是“3F”因为“3F”是通配符。
  • 再要搜索时我们应该到根目录里面去向下搜索要么就是在查找十六进制数值里选择搜索选项点击全部也是可以的。
  • 在父目录里面如果高16位和第16位都为0的话那么说明这个文件夹就位于根目录下;如果高16位为0,低16位为03 00那么这个文件夹就位于子目录下而不是根目录下。

注:根目录下的子目录它的父目录的簇号都为00,因为根目录比较特殊。

  • 搜索快捷径:
  1. 、选择任何一个扇区全为0的部分,然后填上2E 2E 20 20 20 20 20 20 20 20 20然后其它全部填充为“3F”通配符。注意不能保存。
  2. 、注意高16位和低16位一定要填00 00------因为根目录下的子目录它的父目录的簇号都为0,根目录比较特殊。
  3. 、填充完成后单击右键复制选块- -十六进制数值。
  4. 、然后在查找十六进制数值里面去搜索。

重要注意:在搜索的时候一定要全部搜索完才行,不能半途终止不然恢复后的数据不完整。

以上是在根目录损坏的情况下进行的。

  • 《创建一个文件对系统做了哪些操作》
  • 找一个为FAT32的空盘,注:一定要是空盘不然不好比较。
  • 把空盘里面的数值复制出来也就是把数值提取出来。
  • 提取出来后点击专业工具---将镜像文件转换为磁盘这样就生出了一个和原盘一模一样的磁盘,包括扇区、数据、数值、字符等都是一样的,相当于克隆。
  • 做比较的工具:查看---同步窗口、同步和比较
  • 做实验:
  1. 在实验盘中存放一个aaa.txt的文档。注:一定要在桌面上创建后复制到盘里,不然比较的时候较复杂。
  2. 做数据比较:工具---文件工具----比较。注:另存报告的框中建的文本文档不能是汉字。
  3. 记住比较完成后点击取消如果点击确定那么比较的数值就会被删除。
  4. 用比较完成后数据的第一个偏移地址进行转移到偏移量。注:相对于选项选开始。例如:数据偏移为800020: 41 00  那么就转到偏移量800020。
  5. 比较开始转到偏移量完成后点击查看---同步窗口、同步窗口和比较勾上,这样就可以很清楚的看到哪里不同了,黑色为不同,无颜色为相同。
  • 在文档里增加内容,内容为123再进行比较。
  1. 在文档aaa.txt里增加123然后保存
  2. 跟上一次一样一定要保存空文档的状态也就是说空盘里所建立的txt文档是在空盘里增加的一个文档,现在要做另一个比较,所以要在从新提取一遍。这样好做比较。
  3. 比较完成后跳转第一个偏移量。
  4. 改变:第一个改变的是文件系统的空闲簇号,因为我们给aaa.txt文档里增加了一个内容所以会占用一个簇的大小,作比较后发现没存内容前与存内容后,存后的数值要比存之前的数值要小。也就是减少了。然后下一个可用簇号发生了改变;第二个改变从00 00 00 00变成了FF FF FF 0F也就是FAT表的结束标志,也就是说文档里的内容到FF FF FF 0F就结束了。因为我们只增加了123这几个内容所以占用一个簇的大小足够了;第三个改变FAT2的数值,因为FAT2是FAT1的备份所以FAT1改变FAT2也会跟着改变;第四个改变是内容的数据从00 00 00 到有数值,这个数值就是我们增加123内容的数值。注:有些数值是在偏移量的同一行不是同一个位置,这些同一行的数值就不用去跳转了。
  • 直接在空盘里创建文本文档再重命名的结果比较。
  1. 在根目录下的新建重命名的文档多了两个是删除的目录项“E5”

八、总结:

  1. 新建一个名aaa.txt的空文档,只是多了一条目录项。
  2. 给aaa.txt增加内容时,一号扇区文件系统的空闲簇号减少,下个可用簇发生改变;FAT1、FAT2多了个FAT表项数据区的数据发生改变。

以上是在十六进制下进行的

第十二章《用winhex手工创建一个文件》

  • 直接在winhex中创建一个文档实验
  1. 在根目录或文件夹下创建一个文档
  2. 00-07是文档的名称如果文档的数值没有占用完8个字节那么就用20来填充。
  3. 08-0A是扩展名。
  4. 0B是表示是什么类型文件,这里我们填20表示普通文件。
  5. 0E-01前两个字节表示时分秒,后两个字节表示日期(注:在数据解释器中DOS Date表示时间和日期;第一个是日期,第一个是时间。)。
  6. 02-03也表示日期
  7. 06-09也表示时间和日期只不过一个表示创建的时间和日期一个表示修改的时间和日期。
  8. 写入完成后保存(注:保存是在文件下的第二个)保存后再更新磁盘快照才行。
  • 在建立文档中用winhex增加内容。

1、0A是填簇号的

2、0C是表示内容的字节数

3、填写完成后保存,然后保存完成后再跳转簇的位置。

4、跳转到后用字符转换器将汉字、英文或数字转换成十六进制来填写到簇里面。

5、最后一个千万不能忘记,也就是FAT表,在内容填写完后点击到FAT表里面去把簇激活也就是结束标志FF FF FF 0F。例如:我们填写的是5号簇那么就到5号簇里面去填写内容然后再到FAT表里找到5号簇的位置填写结束标志FF FF FF 0F,这样才可以。

三、指定小写扩展名或英文小写名称

1、0C的意义就是可以改变这一项大小写的显示。

2、0C要填什么数才是小写呢?

答:我们把想到的数值输入到十六进制里然后把十六进制转换成二进制,如果转换出来的结果为1那么就是小写(原理:第一个1为扩展名小写,第二个1为名称小写;也就是说1为是,0为否)。

四 、总结:(1)、新建一个目录项。

(2) 给数据区的内容赋值。

(3)、给FAT1表相应的FAT标记簇已用。

五、目录项0C位置第5位二进制如果为1,那么扩展名小写;第4位二进制位如果是1那么文件名小写。(注:这是从后往前数的)

以上一般都会用到字符转换器

第十三章《删除一个文件对文件系统做了哪些操作》

  • 删除文件到回收站做了哪些操作实验。
  1. 、在FAT32的盘里创建一个文档。
  2. 、将还没有删除文档之前的数据区给镜像出来;这样好对删除后进行比较。
  3. 、打开winhex更新磁盘快照(补:在更目录下显示的带有问号或红叉的表示已经被删除的文件或文档,如果想让被删除的文档不显示在更目录下那么点击更新磁盘快照右面的第一个里面的(列出曾经存在过的项目)的勾给去掉。
  4. 、镜像出来后再把建立的文档给删除掉。
  5. 、删除完成后进行比较。
  6. 、从第一个偏移开始跳转比较,后面有些是在同一行的所以在同一行的偏移就不用去一个一个的去跳转了。
  7. 、删除后发现第一个不同:删除文件后发现FAT表的空闲簇号变小了,已用簇号多了一个簇,已用空间也变大了。(注:每删除一个簇就会用下一个簇来存储删除到回收站的文件。)
  8. 第二个不同:发现FAT1又多了一项已被激活的簇(注:FAT2表也会跟着变。)
  9. 、第三个不同:目录区的数据被标记成“E5”也就是表示已被删除
  10. 、第四个不同:删除文档后发现原本空闲的目录增加了一些内容,这些内容也就是被删除文档的内容,这个文档被删除到了一个隐藏的回收站里也就是说winhex中有一个专门装被删除的文档的分区,也就是隐藏分区。
  • 总结:

(1)、1号扇区的空闲簇号-1

(2)、下个可用簇向下移了一个簇。

(3)、FAT1和FAT2多了一个FAT表项。

(4)、文件目录项第一个字节变成了“E5”也就是表示已被删除。

(5)、回收站的目录里多了两个目录项。

    (6)、数据区多了一个配置内容文件。

第十四章《清空回收站做了什么操作》

  • 建立一些文档在文档里加一些内容然后再把文档删除在去把回收站清空实验。(注意:在还没有删除之前一定要把数据给镜像出来)。
  1. 、删除后更新磁盘快照然后滚动一下数据区让数据刷新一遍。
  2. 、把镜像出来的文件转换为磁盘。
  3. 、刷新后开始进行比较删除前与删除后有哪些变化。
  4. 、复制比较完的偏移的第一位,发现第一个不同:清空回收站后空闲簇数比原来少了两个簇。(其中一个簇是文件真正存放地址的簇,还有一个簇是配置文件的簇)。然后下个可用簇减少。
  5. 、 第二个不同:就是FAT表原本被激活的FAT表项变成了00 00 00 00因为把文件删除到回收站会产生一个配置文件所以也就会再占用一个簇,如果我们把回收站清空了的话原本的文档和配置所占用的簇也会被删除所以在FAT1表中就会出现两个结束标志被删除。
  6. 、第三个不同:是原本存在的数值开头变成了“E5”也就是表示被删除(注意:加上配置文件共两个,所以有两项显示“E5”)。
  • 总结:
  1. 、一号扇区空闲簇数减少。
  2. 、下个可用簇号改变。
  3. 、FAT1和FAT2相应的表项改变。
  4. 、回收站的子目录里的相应的两个目录项第一个字节变成了“E5”。

第十五章《按ShIFT键彻底删除对文件系统做了哪些操作》

  • 在盘中创建一个文件重命名然后在里面添加一些内容。
  1. 、创建完成后打开winhex把还未删除的状态给镜像出来。
  2. 、镜像出来后再将镜像转换为磁盘。
  3. 、然后再将盘里的文件按住Shift键给删除掉(注意这样直接删除是不经过回收站的)。
  4. 、删除后打开winhex更新快照滚动一下数据区让它刷新一下。
  5. 、刷新完成后开始比较(注意保存路径)。
  6. 、第一个不同:删除之后空闲簇数变大了也就是说删除之后这个文件本身所占用的簇号被释放。
  7. 、FAT1和FAT2被占用的簇删除之后也被释放。
  8. 、删除之后winhex中文件开头的字节变成了“E5”也就是表明已被删除。
  • 总结:
  1. 、一号扇区的空闲簇数变大(注:变大多少由文件所占用多少个簇来决定
  2. 、下个可用簇也会发生改变。
  3. 、FAT1和FAT2会释放相应的FAT表项。
  4. 、目录项的第一个字节变成了0XE5。

第十六章《恢复删除的文件》

  • 按住Shift键删除恢复实验
  1. 、用字符转换器将汉字或英文转换成十六进制,然后再到查找十六进制数值里去搜索。(注:不管以前的文件是大写还是小写在转换的时候一定要填大写)。
  2. 、转换好后复制到查找十六进制数值里去搜索(注意:因为文件是已被删除的所以在搜索的时候一定要把前面第一个字节给去掉再搜索,因为删除后文件名的第一个字节会变成“E5”所以在搜索是一定要把第一个字节给去掉)。
  3. 、计算出簇大小后跳转到簇的位置(注:这一节讲的是在高位簇为0的时候)。
  4. 、然后将光标放在第一个字节处,将偏移变成十进制。
  5. 、然后点击转到偏移量,相对于选择当前位置。
  6. 、转到后按住ALT+2选择尾部。
  7. 、然后右击编辑--复制选块--至新文件也就是将选择后的数据提取出来(注:文件大小数是0C)。

以上是在高16位为0的时候操作的

第十七章《有高位簇的文件删除后对文件系统做了哪些操作》

  • 在要做实验的盘里存入一个文档(注:在文档里存入的内容一定要使它的高位簇有数值)实验。
  1. 、将还没有删除之前的状态给镜像出来,然后再将镜像转换成磁盘。
  2. 、转换完成后再将文件永久性删除(注:如果在高位簇有数值的情况下直接在根目录下恢复是没有用的,通过这样恢复的数据是一串乱码)。
  3. 、开始进行比较,第一个不同:空闲簇数变大,删除之后原本所使用的簇号被空闲出来,下个可用簇也改变了。
  4. 、第二个不同:FAt1原本被占用的FAT表项删除之后被释放(注:因为高位簇是有数值的也就表明这个文件里的内容所占用的字节比较多,所以FAT1表所占用的FAT表项也就越多)。
  5. 、第三个不同:目录项的第一个字节变成了“E5”。也就是表明已被删除。
  6. 、这一个不同是这一节的重要;第四个不同:高16位由原本得有数值变成了0(所以这就是为什么我们直接通过恢复根目录下的数据没用的原因了,因为高位簇变成了0所以它用它计算出来的簇也就是错的)。
  • 总结:
  1. 、一号扇区和下个可用簇发生改变。
  2. 、文件对应的FAT1和FAT2的FAT表项清空。
  3. 、文件目录项的第一个字节变成了0xE5。
  4. 、目录项的高位簇被清0。

第十八章《恢复删除文件---手工计算被清空的高位簇》

  • 当高位簇有数值为0时的情况下恢复实验。
  1. 、在需要恢复实验的盘里增加一些文件或者压缩包,这样才可以使要做实验的文件的高位簇有数值。(注:因为winHex中只有低位簇不够存放时高位簇才会开始存放数据)。
  2. 、到winhex里面去看一下文件是否是用高位簇进行存放,如果是那么就按住ShiFt键把文件删除。
  • 恢复实验开始:
  1. 、删除文件后到winhex中更新磁盘快照、滚动数据区让数据进行刷新。(注:当我们把文件删除后根目录下显示的是红叉,也就是表明高位簇被清0,所以直接在根目录下恢复的文件是损坏的)。
  • 高位簇计算:
  1. 、点击被删除文件然后将文件所在的扇区号进行复制,再将复制的扇区号复制到跳至扇区扇区的位置,然后下面簇的框中显示的就是低位簇的结果。
  2. 、用假设法假设高位簇为1,那么就是1乘以65563等于65536(注:每加一个簇那么就要在原有的基础上再加一个1乘以65536,以此类推)。
  3. 、算高位簇公式:用低位簇的数值加上假设的数(注:再假设高位簇的时候只能在原有的1x65536上叠加一个1x65536)。例如:低位簇为:18344       高位簇假设为1那么高位簇就是1x65536;18344+65536=83880;  如果假设高位簇为2,那么就是83880+1x65536=149416就这样以此类推直到找到为止。
  4. 、将算出的结果复制到跳至扇区簇的框中进行跳转看是否在这个簇里面,如果没有在里面,那么再找下一个簇。(注:我们在这里算出的结果是簇的结果而不是扇区的)。
  5. 、找到后将数据提取出来就可以了(注:如果要它的字节数,那么就用字符转换器将汉字会英文转换成十六进制,然后查找到后,到1C位置查看字节数)。

第十九章《剪切文件对文件系统做了哪些操作》

  • 剪切分为两种情况:第一种:剪切到其他数据盘;第二种:剪切到其他文件夹。
  • 将文件剪切到其他数据盘实验
  1. 、在实验盘里存入一个文件。
  2. 、再将winhex中的数据给镜像出来,然后再将镜像转换为磁盘。
  3. 、把数据镜像出来后,在到实验盘里把文件剪切到其它盘中,剪切完成后再到winhex中更新快照、滚动一下数据区让数据刷新一遍。
  4. 、开始进行比较:第一个不同:剪切后空闲簇数变多了,就是文件系统已占用的簇数变少了,也就是说这个文件原本所占用的空间被释放了,下个可用簇也发生了改变。
  5. 、第二个不同:剪切之后这个文件所占用的FAT表项被清空了。
  6. 、第三个不同:文件名目录项开头的第一个字节变成了0xE5。
  7. 、第四个不同:剪切之后高位簇被清零了(注:所以我们直接在根目录下恢复的话是没用的;还有高位簇被清零,数据区也会发生改变)。
  • 总结:
  1. 、一号扇区空闲簇数和下个可用簇号发生改变。
  2. 、文件所对应的FAT1和FAT2的FAT表项被清空。
  3. 、目录项开头的第一个字节变成了0xE5。
  4. 、目录项的高位簇被清零。
  • 将文件夹里的文件剪切到其它文件夹做了哪些操作。
  1. 、在实验盘里存入一个文件。
  2. 、再将winhex中的数据给镜像出来,然后再将镜像转换成磁盘。
  3. 、然后将文件剪切到其它文件夹中。
  4. 、开始进行比较;第一个不同:文件名目录项的第一个字节变成了0xE5。
  5. 、第二个不同:把A文件夹里的文件剪切到B文件夹里面的时候B文件夹里的子目录里多了一行目录项。(注:这个实验是在两个文件夹都在一个盘里的情况下)。
  • 总结:
  1. 、将原先的目录项第一个字节变成了0xE5。
  2. 、在剪切后的子目录里生成了一个目录项。

第二十章《格式化对文件系统做了什么操作》

  • 格式化实验:
  1. 、在要准备实验的盘里放入一些文件。
  2. 、然后到winhex中将数据给镜像出来,再然后将镜像转换为磁盘。
  3. 、开始比较;第一个不同:格式化后DBR里面的数据会发生改变。
  4. 、第二个不同:空闲簇数和下个可用簇号的数据发生改变。
  5. 、第三个不同:FAT1和FAT2的FAT表项也全部被清零。
  6. 、第四个不同:格式化后根目录下的目录项被清空,然后格式化后会给盘默认起一个名字。
  • 总结:
  1. 、DBR里面的参数改变。
  2. 、一号扇区里面的参数改变。
  3. 、FAT1和FAT2的FAT表项被清零。
  4. 、根目录也被清空,如果有卷标,那么会有一条目录项。

第二十一章《格式化恢复-虚拟子目录》

  • 恢复实验:
  1. 、在盘中存储一些文件,然后再将实验盘给格式化。
  2. 、搜索根目录下的所有子目录(因为格式化的话只会破坏根目录和根目录之前的那些区域,也就是说用户真正的数据区并没有被破坏)。
  3. 、开始搜索;1、找一个为0的扇区偏移:00-01填2E 2E;偏移:02-0A填充20;偏移:0B-19填充3F通配符(注:高位簇和低位簇填0)。
  4. 、填充完成后开始搜索(注:一定要复制到低位簇)。
  5. 、复制到查找十六进制数值里面去查找(注:要勾上通配符、偏移条件512=32、然后还要选择全部搜索、再勾上列出搜索结果)。
  6. 、然后再跳转到2号簇(因为DBR里面的关键参数并没有改变,所以它们的根目录、FAT表那些位置都是完全重叠的)。
  7. 、跳转到后将虚拟子目录放入到WinHex中然后再将里面的数值复制到2号簇(注:复制多少目录项要看搜索到的子目录有多少来决定的)。
  8. 、如果搜索到的是3个子目录那么就到虚拟子目录里去复制3个目录项到2号簇。
  9. 、在2号簇的空闲区域写进去(注意:写进去的位置一定要是32=0)。
  10. 、保存,保存完成后又回到搜索到子目录里。
  11. 、回到后将它们的高位簇和低位簇写入到虚拟子目录里也就是我们复制到2号簇的目录项里的高位簇和低位簇的位置。
  12. 、填写完成后保存,更新磁盘快照。
  13. 、更新完成后发现根目录下多了几个文件,这几个文件就是我们虚拟的子目录,然后将它们恢复就可以了。
  • 总结:
  1. 、在根目录下虚拟子目录。

第二十二章《格式化恢复-手工提取根目录下文件》

  • 直接手工提取根目录下文件:
  1. 、在盘中存放一些文件(注:不是文件夹)。
  2. 、将实验盘中的数据给格式化,(注:格式化要在磁盘管理中去格式化)。
  3. 、查找文件的文件头的开头的四个字节,找到它复制到查找十六进制数值里面去搜索。(注:如果在不知道它是什么类型文件的情况下,那么就到外面去创建一个一模一样的文件,让后再将创建好的文件拉倒winhex中看它开头的四个字节,将那四个字节复制到查找十六进制数值里面去搜索)。(注意:一定要全部搜索)。
  4. 、搜索到后再将数据提取出来就可以了。
  • TXT类型搜索实验:
  1. 、因为文档比较特殊,它没有文件头,所以在恢复的时候只能通过文档里面的任何汉字、代码、英文、数字等一些内容用字符转换器来将它们转换成十六进制然后到查找十六进制数值里面去搜索进行定位。(注:在搜索的时候什么都不用勾)。
  2. 、找到后将数据提取出来就可以了。

第二十三章《格式化恢复-手工计算DBR参数》

  • 修改DBR参数恢复实验:
  1. 、先搜索出子目录下所有父目录。
  2. 、搜索完成后再将它的簇大小算出然后再将结果放到跳转至扇区簇的框中看一下显示的扇区号与数据区的扇区号是否能对上,如果能那么就直接在根目录下虚拟子目录然后恢复,如果不能那么就要修改DBR参数。
  • DBR修改实验:
  1. 、将找出的子目录的簇大小与数据区的扇区数进行记录(注:记录的是左下角的哪一个)。
  2. 计算公式:扇区与扇区对减;簇大小与簇大小对减,再然后扇区的结果除以簇的结果(例如:扇区是40976和41008;簇大小是3和5那么就是40976-41008=32;5-3=2;32/2=16)。
  3. 、计算根目录所在扇区号:用3号簇的扇区减去我们算出的簇大小的结果等于根目录所在扇区(因为数据存储是有顺序的,所以2号簇过了就是3号簇)。
  4. 、完成后跳转到0号扇区。
  5. 、修改0号扇区簇大小偏移:0D,点击0D位置将我们算出的的簇大小填入到数据解释器中。
  6. 、FAT表大小计算公式:我们算出根目录所在的扇区号减去FAT表的起始扇区扇区号除以2。(注:FAT表的起始扇区号在已经格式化后的偏移:0E-0F位置,也就是说将已经格式化的磁盘的DBR中的偏移:0E-0F数据解释器中的数值来减去我们算出的根目录结果就等于FAT表大小)。
  7. 、算出结果后将结果填到FAT表大小的位置,偏移:24-25,将结果填到数据解释器中。
  8. 、然后更新,如果更新不出来那么就关掉再打开。
  9. 、在计算:FAT起始扇区号加FAT大小乘以2(例:FAT起始扇区为6158;FAT表的大小为:17401;6158+17401*2=40960)。
  10. 、验证完成后到2号簇虚拟一个子目录然后将簇号填上,然后恢复就可以了。

第二十四章《格式化恢复-巧取DBR参数》

  • 巧取实验:
  1. 、搜索子目录下所有父目录。
  2. 、搜索到后,在其中选择一个来验证一下看这个子目录的扇区能否与数据区的扇区号对上,如果不能那么表示DBR里面的参数被改变。
  • 恢复实验:
  1. 、在磁盘管理中或分区工具中再创建一个与实验盘一样大小的盘(注:一定要是FAT32格式的)。
  2. 、创建完成后到WinHex中将我们创建的盘中的DBR复制到实验盘中DBR的位置(注:定要从第0个字节开始写入)。
  3. 、如写入完成后到搜索到的子目录里面再将子目录的簇大小放入到跳至扇区里面簇的框中,如果扇区的框中显示的结果与数据的扇区号不能对上的话,那么就说明我们创建的盘中的DBR的参数是错的。
  4. 、然后再到0号扇区去看一下它的簇大小,然后再到磁盘管理中再将它给格式化(注:要格式化的是我们创建的哪个盘,在格式化分配单元框中选择一个与上一个不同的簇大小;8192是16;4092是10;因为上一个的簇大小是16,它的DBR参数是不对的,所以我们要选择一个与上一个不同的簇大小,再格式化)。
  5. 、如果是对的那么子目录的扇区与数据区的扇区号是可以对上的,根目录下也会自动恢复被格式化的文件,如果对不上那么就再去格式化再换一个簇大小,直到对的上为止。

三、注意:在复制的时候一定要注意,不能把分区1的DBR复制到引导扇区里去。

第二十五章《磁盘未被格式化-利用备份的DBR恢复》

  • 如果在打开磁盘或U盘的时候提示“格式化”那么就表明盘中0号扇区的DBR参数被破坏了。
  • 打开winhex到六号扇区直接将六号扇区的十六进制复制到0号扇区就可以了(因为每个分区的DBR都有一个它的备份分区,所以直接将六号扇区的数据复制到0号扇区就可以了,注:前提是磁盘未被格式化,打开winhex到根目录下去看一下,如果还能看见文件那么表明磁盘未被格式化。之所以能看见是因为备份DBR起的作用,所以在winhex中能看见但在计算机中不能打开就是这个原因了。)

第二十六章《磁盘未被格式化恢复-用系统格式化默认恢复》

  • 恢复前准备:
  1. 、打开磁盘的时候提示说“格式化”那么表明磁盘中的零号扇区的DBR被损坏。
  2. 、我们打开0号扇区和六号扇区去看一下,发现0号和六号的DBR参数都被损坏掉了。
  3. 、看“分区”栏中扩展名的位置下显示的是什么,如果显示FAT32那么就表明备份的DBR没有被损坏;如果显示的是问号那么表明备份的DBR也被损坏了。(注:所以在winhex中数据也提取不出来)。
  4. 、然后再去搜索FAT表,搜索“F8FFFF0F”因为它是FAT表开头的4个字节。偏移条件选择512=0。
  5. 、搜索到后看一下它是FAT1的还是FAT2的(注:FAT表有两个FAT1和FAT2,FAT1在前面FAT2在后面,所以我们如果搜索到后看一下它的前面和后面一个扇区,如果前面为0后面也为0的话那么就表明我们搜索到的是FAT2,因为数据损坏是有顺序的都是从前面一个先开始)。
  • 开始恢复
  1. 、在磁盘管理或分区工具中创建一个与实验盘大小一模一样的,然后再到winhex中打开我们创建的盘中,将盘中的DBR参数复制到实验盘中DBR的位置,然后发现实验盘的“分区”框中扩展名显示的是FAT32,那么表明实验盘的DBR被恢复了,但是磁盘还是不能读写,只能将在根目录下直接提取出来。

第二十七章《磁盘未被格式化恢复-手工计算DBR参数》

  • 恢复实验:
  1. 、先在实验盘里存入一些文件,然后再将磁盘里的DBR参数给损坏掉。
  2. 、损坏完成后打开winhex的物理驱动器的实验盘(注:因为备份的DBR也被损坏,所以直接在逻辑驱动器里无法打开)。
  3. 、打开分区1,打开后在里面搜索我们需要的数据;比如备份DBR,FAT表等。(注:不能直接在物理驱动器下搜索,一定要打开分区1里面去搜;因为如果直接在磁盘下搜索的话那么我们搜索的时候都会以第2048个扇区为起点开始搜索,这样的话我们计算起来会很麻烦的,所以我们为了简单一点都打开分区1到里面去搜索)。
  4. 、找:0号扇区与六号扇区DBR参数;然后找FAT表,搜索“F8FFFF0F”,如果搜索不到,那么就搜“FFFFFF0F”偏移条件:4=0、全部搜索。
  5. 、搜索到后将光标放在第一个字节看数据解释器中的数值,如果是129那么就是第二个FAT表的扇区(因为一个FAT表的一个扇区所容纳的FAT表项数是128个,所以129的话是第二个FAT表扇区)。
  6. 、然后记录搜索到的扇区的上一个扇区号。
  7. 、然后复制我们搜索到扇区的上一个扇区的开头的8个字节进行搜索。
  8. 、搜索到后记录它的扇区号
  9. 、将两个扇区号相减那么就是FAT表大小(7186-19977=12791)。
  10. 、FAT表大小加上FAT表2的起始位置等于根目录所在扇区号(12791+19977=32768)。
  11. 、然后随便搜索两个子目录。
  12. 、搜索到后随意点击一个,记录它的扇区号和簇大小;(3;32800).
  13. 、然后随意点击一个,记录它的扇区号和簇大小。(131;36896)。
  14. 、再然后扇区与扇区对减;簇大小与簇大小对减;扇区结果除以簇大小结果(32800-36896=4096;131-3=128;4096/128=32)。
  15. 、然后再到磁盘管理或分区工具中去创建一个盘,多大都可以。
  16. 、创建完成后再将创建好的盘的DBR参数复制到实验盘DBR的位置。
  17. 、然后修改复制完成的DBR参数,偏移:0D填簇大小;偏移:0E-0F填FAT表的起始扇区号也就是我们搜FAT表最前面的FAT表扇区;偏移:24-25填FAT表大小;偏移:20-23填文件系统总扇区数。
  18. 、然后填写完成后更新快照就可以了。

第二十八章《文件和目录损坏的原因和恢复方法》

  • 一般出现提示“格式化”时都是根目录FAT表项损坏了。
  • 如果是NTFS提示格式化表明MFT损坏。
  • 打不开磁盘是因为根目录的FAT表项被清零,如果是其他FAT表项的话也就是个别文件打不开而已。
  • 恢复方法:
  1. 、将根目录所占用的FAT表项改变“FF FF FF 0F”表示2号簇已被占用。
  2. 、将修复好的FAT表项更新磁盘快照,再到计算机中将实验盘弹出然后在读取一遍就可以了。

第二十九章《文件名变乱码的原因及恢复方法》

  • 文件名变乱码的原因是因为文件夹所在的数据区损坏了。
  • 利用21张所学虚拟子目录,恢复方法:
  1. 、点击文件夹所在的数据区。
  2. 、发现数据区内的数据显示的是一堆乱码,(注:因为如果子目录和父目录正常的话子目录开头用“2E 20 20 20 20 20 20 20 20 20 20开头;父目录用2E 2E 20 20 20 20 20 20 20 20 20 开头”)。
  3. 、看文件夹在那个簇号的方法:点击变成乱码的文件夹,然后将文件夹所在的扇区号复制到跳至扇区扇区的框中,下面的结果就是文件夹所在的簇号。(注:点击的是根目录下的文件夹)。
  4. 、再然后将簇框中显示的结果放到计算器十进制里面转换成十六进制。
  5. 、搜索父目录在2B 7C的所有父目录;方法:找一个部分为0的扇区将它们填为“2E 2E 20 20 20 20 20 20 20 20 20 3F 3F 3F 3F 3F 3F 3F 3F 3F 00 00 3F 3F 3F 3F 7C 2B”(注:因为在winhex中的数值与外界的数值是相反的;又因为数值是从低位簇开始填写的,所以这里高位簇为0)。
  6. 、再然后复制选块---十六进制数值,复制到查找十六进制数值里面进行搜索----勾上通配符、全部搜索、偏移条件:512=32、列出结果可随意。
  7. 、搜索到后将子目录的高低位簇数值做好记录。(注:这里写出来可不用相反)。
  8. 、然后再点击变乱码的文件夹将文件夹的数据区清零,然后再将虚拟的子目录复制到文件夹的数据区中,再将记录好的高低位簇填入到虚拟子目录的高低位簇中。
  9. 、填充完成后跟新就可以了。
  • 如果文件直接在根目录下或直接在变成乱码的文件夹中,恢复方法:
  1. 、搜索压缩包开头的4个字节。(注:如果不知道4个字节是那4个,那么可在外界创建一个与被变乱码压缩包一样的压缩包,然后再将创建好的压缩包拉到winhex中,即可知道,这里一定要创建与要被恢复压缩包一样类型的)。
  2. 、然后复制开头4个字节到查找十六进制数值里面去搜索。
  3. 、搜索到后将数据提取出来就可以了。

第三十章《根据FAT表算出簇大小》

  • 没有子目录,用FAT表算出簇大小实验:
  1. 、 直接在实验盘内存入一些文件或压缩包。
  2. 、然后打开winhex将实验盘的DBR给破坏掉。
  3. 、找FAT表,在查找十六进制数值中搜索“F8 FF FF 0F”全部搜索、偏移条件:512=0
  4. 、搜索到后第一个就是FAT1,然后按F3继续搜索到后第一个就是FAT2,记录它们所在的扇区号。
  5. 、算出FAT表大小:用FAT1的位置减去FAT2的位置(4170-18469=14299)
  6. 、算出根目录所在扇区号:用FAT表大小加上FAT2的起始位置等于根目录所在扇区号(14299+18469=32768)
  7. 、算出根目录所在扇区号后复制结果到跳转至扇区进行跳转。
  8. 、跳转到后记录根目录所在扇区号也就是我们算出的结果。
  9. 、算出文件系统有多大:用总扇区号减去根目录所在位置(14673920-32768=14641152)。
  10. 、算出有多少个FAT表项:用FAT表大小乘以128因为每个扇区可以容纳128个FAT表项(14299*128=1830272)。
  11. 、算出簇大小:用总扇区号除以FAT表项=簇大小(1830272/14641152=7.9994...)簇大小只有1、2、4、8、、16、32、64、128这几个,因为我们算出的结果接近于8,所以它的簇大小就是8。
  12. 、都算完成后再去创建一个为FAT32格式的磁盘,然后再到winhex中将创建的磁盘的DBR参数复制到实验盘DBR参数的位置。
  13. DBR参数写入完成后再将它们的偏移:0D填簇大小;偏移:0E-0F填FAT表的起始扇区号;偏移:24-25填FAT表大小;偏移:20-23填文件系统总扇区号。
  14. 、填入完成后数据就恢复了。
  • FAT表的0号扇区损坏恢复实验。
  1. 、当FAT表的0号扇区损坏了,我们又急需寻找FAT表的话,那么只能搜索“FF FF FF 0F”来查找了,全部不勾。
  2. 、有时候搜索到的第一个并不是FAT表的结束标志,所以要按F3继续搜索。
  3. 、搜索到后,将光标放到第一个字节处看数据解释器的数值。
  4. 、再用第一个字节的数值除以128就是结果。(10625/128=83.00781)。
  5. 、再用所在的扇区号减去算出的结果=FAT1表的起始位置(4253-83=4170)。
  6. 、算出后跳到算出的扇区号的位置。
  7. 、跳转后如发现没多少数据那么向下拉一点就可以看见了。
  8. 、看见以后将光标放在第一个字节发现是FAT表的第二个扇区。也就是129。也就是说我们搜索到的就是FAT表的起始位置了。
  9. 、再将找到的FAT1表的起始位置的前几个字节复制到查找十六进制数值里搜索,搜索到后就是FAT2表的起始位置了。

以上都要注意记录

完结

接上一章winhex数据恢复新手入门教程相关推荐

  1. WinHex数据恢复新手入门

    MBR是主引导记录在数据恢复中也就是0号扇区 FSINFO扇区数据结构 3.在FAT32的保留扇区中除了DBR还有个FSINO信息区,用来记录文件系统中空闲簇数和下一个可用的簇号. 偏移(16进制) ...

  2. RedHatLinux新手入门教程(2)(转)

    RedHatLinux新手入门教程(2)(转) 第2章:安装指南 2.1 安装前的准备 1.收集系统资料:为了能够顺利安装和设置Linux系统,你必须将以下资料记录在案,以备系统安装时使用: 硬盘:数 ...

  3. winhex数据恢复从入门到精通全集-李林峰-专题视频课程

    winhex数据恢复从入门到精通全集-32932人已学习 课程介绍         本套教程分理论课和实战课,其中理论课是讲数据存储的结构 .实战课是实际演示数据恢复过程,实战课会用课堂练习.vhd和 ...

  4. 苹果手机上运行python_Python新手入门教程_在手机上就能学习编程的软件

    Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软件有哪些?毕竟时间宝贵啊!!哈哈哈!!! 这个问题,在悟空回答的 ...

  5. Charles网络抓包新手入门教程-(二)软件配置与环境安装(ios14-IOS系统安装配置)

    目录 一.环境配置 二.开启电脑代理设置 三.给IPhone手机设置代理服务器 四.Iphone手机下载并信任证书 五.Charles抓取手机数据包 六.总结 一.环境配置 1.Win10系统 2.C ...

  6. 【LaTeX】E喵的LaTeX新手入门教程(4)图表

    这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基 ...

  7. 编程入门python语言是多大孩子学的-不学点编程,将来怎么给孩子辅导作业―Python新手入门教程...

    为了填满AI时代的人才缺口,编程语言教育都从娃娃抓起了!如果你还不懂Python是什么将来怎么给孩子辅导作业呢? Python新手入门教程 近期,浙江省信息技术课程改革方案出台,Python言语现已断 ...

  8. 【LaTeX】E喵的LaTeX新手入门教程(6)中文

    假期玩得有点凶 ._.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版  [LaTeX]E喵的LaTeX新手入门教程(3)数学 ...

  9. 【LaTeX】E喵的LaTeX新手入门教程(5)参考文献、文档组织

    这不是最后一篇,明天开始建模所以会从6号开始继续更新.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版  [LaTeX]E喵的 ...

  10. 【LaTeX】E喵的LaTeX新手入门教程(3)数学公式

    昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇  [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}e ...

最新文章

  1. 菜鸟学前端之遍寻名师之混乱的笔记
  2. Java线程的等待与唤醒代码示例
  3. 【Python】蒙特卡罗方法计算圆周率及给定随机数种子
  4. html 三级目录索引,墨涩网 - HTTP Web服务器索引目录列表程序Directory Lister——墨涩网...
  5. springboot链接MySQL线程池_SpringBoot中的数据库连接池
  6. python pyquery.get()_Python爬虫之PyQuery使用(六)
  7. 32位mips运算器logisim_很多网友问32位低功耗MCU设计
  8. 谁需要这件礼物?每一个爱学习的人!
  9. python varchar_在python中声明varchar
  10. lua循环,减少不必要的循环
  11. 图的应用之--图的连通
  12. html注册页面多选代码,利用HTML表单标签编写一个注册页面
  13. 产品小白的Axure之路
  14. 使用swift集成移动广告聚合平台
  15. MemTest64内存测试
  16. python pip源配置,pip配置文件存放位置的方法
  17. 使用MapWinGis ActiveX控件在图层上画点
  18. jsp中文传值到java乱码_jsp传递参数中文乱码解决办法
  19. 无形装逼,最为致命——玩LOL那些有趣的台词
  20. hashmap与concurrenthashmap源码解析

热门文章

  1. Excel快捷键大全和35个函数---第二弹
  2. linux安装英伟达显卡驱动
  3. 【system】关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法
  4. 【搜索】训练E - Crazy Robot
  5. FW: 10家不错的iphone编程资源站
  6. Liang-GaRy啃linux书想吐(五)
  7. hyperv 安装xp
  8. 访问FTP站点下载文件,提示“当前的安全设置不允许从该位置下载文件”
  9. RemoveWGA升级了
  10. [brew]切换brew源