代码改变世界

winhex分析磁盘目录结构(未完待续)

2013-04-27 10:47  放作夥  阅读(2807)  评论(0编辑  收藏  举报

  网上的介绍杂七杂八,我尽力完整清晰地综合阐释给大家,分析工具选择的是winhex,仔细看的话,满满的数字中每隔一定位置就有条横线,代表一个扇区的空间。所以我们先来看第一个扇区(主引导扇区),即第一条横线前(0000H---00ffH),我把结构贴出来

 

主分区表是从主引导扇区第0x1BE字节开始的,共64个字节,所有主分区的分区表都是一样的

0000  |------------------------------------------------|
  ....   | Master Boot Record主引导记录(446字节)(启动代码,没必要分析
01BD  
01BE  |------------------------------------------------|
  ....       分区信息 1(16字节) 
01CD |
01CE |------------------------------------------------|
  .....              分区信息 2(16字节) 
01DD |
01DE |------------------------------------------------|
........     分区信息 3(16字节) |
01ED | 
01EE |------------------------------------------------|
....           分区信息 4(16字节) | 
01FD | 
|------------------------------------------------|
| 01FE | 01FF |
| 55 | AA | (结束标志)
|------------------------------------------------|

上图也说明了在没有扩展逻辑分区的情况下,电脑只能有4个分区,若你的4个主分区有的没有用满,将以全0填充,若想用扩展分区则必须在DPT里放一个EBR,但不一定是最后一个

的分区信息,这个看你怎么分区了,例如有的人就是c是主分区,剩下的D E F都是扩展分区,那么这个分区表就应该是分区信息1有内容,分区信息2是一个EBR,剩下两个的填充0

说明一下分区信息,我把我的分区信息1贴出来80 00 01 01 07 FE FF FF C1 3E 00 00 02 7B B1 03,然后逐位看一下,

说说重要的吧,比如第9、10、11、12字节代表本分区之前已用了的扇区数,第一字节(80)说明是活动分区,第5字节(07)说明是NTFS分区,其他的分区类型标志我就不列出来,自己百度,常见的就只有0F代表扩展分区0B代表FAT32,05代表逻辑分区和这个NTFS

最后四个字节(02 7B B1 03)代表分区大小 (总扇区数)。

     剩下三个分区信息的结构跟以上分析的一致

PS:扩展分区类似于一个完整的硬盘,因此每一个扩展分区的分区表同样存储在扩展分区的第一个扇区中.每个扩展分区中只能存在一个其他分区(表中最多只能有两个分区数据项)