winhex搜索16进制_WinHex软件使用方法与磁盘分析方法

时间: 2025-05-20 admin 互联网

数据的逻辑运算

  1. 逻辑或:逻辑加运算,运算符:+、OR等,当输入变量有一个满足时(例如,为1有效),输出就有效。所有输入变量均不满足条件(例如,为0),输出就无效。例如0+0=0;0+1=1;1+1=1
  2. 逻辑与:逻辑乘运算,指所有输入都同时满足条件(例如,都为1有效),输出才有效(如,为1),否则输出无效(为0).例如1*1=1;0*1=0
  3. 逻辑非:逻辑反运算。运算符为在变量上画一条横线。输入变量中为1时,输出为0,输入为0,输出为1.也就是0的非为1,1的非为0。
  4. 逻辑异或:如果AB两个值是相同,则结果为0,如果AB两个值是不相同,则结果为1,0⊕0=0;1⊕0=1;1⊕1=0.(这种逻辑运算在RAID中是一种很重要的算法,熟练掌握)

数据结构的分类

数据结构关系分类:线性结构,树结构,图结构。

数据结构按层次分类有两种:数据的逻辑结构和数据的物理结构

数据的逻辑结构:线性关系和非线性关系。非线性结构包括图结构和树结构。

数据的物理结构:是数据逻辑结构在计算机中的表示和实现,称数据“存储结构”

存储结构:顺序、链式、索引、散列。

树结构:在文件系统中使用最多 。

winhex窗口认识:

打开的是一个原始磁盘镜像文件,按页面浏览就会产生诸多不便 ,会让分析,定位扇区及解释文件 系统等常规工作无法完成,这时就需要将此文件强制按照每512字节/扇区进行处理,“专业工具——将镜像文件转换为磁盘”

选择扇区数据:在起始位置,鼠标右击选择“选块起始位置”,在尾部数据鼠标选择“选块尾部”,然后复制选块

。将数据 写入到相应的位置。

粘贴与写入的区别:

粘贴:

,会另起一行,粘贴数据。

写入:会在选定的数据覆盖原有数据。

数据恢复工具有(存放在百度网盘):

WinHex、DiskExplorer for Fat、DiskExplorer for Fat、DiskExplorer for NTFS、DiskExplorer for Linux

虚拟硬盘工具:win7 8 10 都自带。计算机右击“管理”,选择磁盘管理,创建VHD。选择位置保存文件。

引导程序占用的前400字节:

以下是十进制的表示方法(点击偏移地址:输入399,就是引导程序占用的前400字节)

以下是十六进制表示方法(点击偏移地址:输入1B7,就是引导程序占用的前400字节)

WIN磁盘标签占用引导程序后的4个字节,WIN系统对硬盘初始化时写入的一个磁盘标签。

86 67 13 36

分区表:1BEH~1FDH的64个字节,是MBR中非常重要的一个结构。

结束标志:“55 AA”1FEH~1FFH.(H表示十六进制,不需要在偏移量输入H)

总结:首先是引导程序前440字节,接着4个字节是磁盘签名标签,空两个字节后是分区表占用64字节,最后是结束标志55AA。

一块硬盘如果还是系统引导盘,MBR扇区中可以没有引导程序,但是绝对不能没有磁盘签名。

磁盘签名实验结果:

将磁盘签名删除后,重新挂载,WINhex工具查看磁盘签名低位字节有改变,高位与原来还是一致的

原来磁盘签名

修改后磁盘签名。13,36是高位。再一次删除磁盘签名,另外一台计算机没有给该硬盘写入磁盘签名,就会提示没有初始化。

分区表的作用:用来管理硬盘的分区的,如果分区表被清除或者破坏,则硬盘的分区就会丢失。

结束标志:在执行MBR的引导程序时,会验证MBR扇区最后两个字节是否为"55 AA",如果 是,正常执行,否则,报错。

如果一块MBR结构完好并且有分区的硬盘,其结束标志"55aa"被破坏后,该硬盘的分区也将无法读取,硬盘会成为“没有初始化”状态。

主磁盘分区结构分析:

结束标志前64字节中,以16字节为一个分区表项来描述一个分区的结构

(80)(02 03 00)(07)(A7 20 07)(80 00 00 00)(00 E0 01 00)

(80):表示C盘为活动分区(可引导的)。即系统会从C盘活动,只能是00H和80H,

(02 03 00):表示C盘的起始扇区为(0柱面 03扇区 02磁头),注意是反过来看。

(07):表示C盘的文件系统为NTFS。

(A7 20 07):表示C盘的结束扇区为(柱面:07=(00000111)2=(4+2+1)10 扇区:20=(00100000)2=(32)10 磁头:A7=(1010 0111)2=(128+32+7)10),注意是反过来看。注:有1的地方相加。

(80 00 00 00):反向(00 00 00 80)16=(128)10表示C盘前面已有128个扇区,这128个扇区为系统隐藏扇区.大于1字节的数值被以低字节在前的存储格式顺序保存下来,按照习惯的高位在前的方式表示为(00 00 00 80)

(00 E0 01 00):反向(00 01 E0 00)16=

07:表示NTFS .05:表示EXTENDED(扩展分区),0B:表示FAT32格式

一个字节8位表示。

128(第一分区开始扇区数)+122880(第一分区的总扇区)=123880(第二分区的开始扇区号)

123008是第二个分区扇区开始,

点击扇区输入“123008”,到第二个扇区,

扩展分区的结构分析

EBR中分区表中第一项描述第一个逻辑驱动器,第二项指向下一个逻辑驱动器的EBR。如果不存在下一个驱动器,第二项就不需要使用。

首先查看0扇区分区表项,第一个分区表:80表示活动区,07表示NTFS。第二个分区表0表示非活动区,0F/05表示扩展分区.

表示下一个起始扇区位置。

查找“209,719,296”扇区,查看第一分区表项是用来管理第一个逻辑驱动器的,开始于2048号扇区,这个值就不是绝对值了,而是个相对值,也就是说这值EBR1开始扇区209,719,296作为起始扇区来定位。

第二分区表,分区类型为05H,为什么在扩展分区中还有扩展分区?因为扩展分区是一种链式结构来管理的。EBR扇区中第一个分区表项总是描述当前的逻辑驱动器,第二个分区表项则链接到下一个EBR扇区,583,012,352也是相对值。也就是说这值EBR1开始扇区209,719,296作为起始扇区来定位。583,012,352+209,719,296=792731648下一个逻辑驱动器开始扇区

查找”792731648“扇区,第一分区表2048是相对值,是以MBR2"792731648"作为起始扇区来定位。第二分区表”1,163,927,552“相对值,是以EBR1”209,719,296“所有扇区为起始点来定位的,而不是EBR2,这一点很重要,一定不要搞错。1,163,927,552+209,719,296=1373646848

查找”1373646848“扇区,发现只能第一个分区表中有数据,第二分区表中没有数据,这说明是主扩展分区中的最后 一个EBR扇区,因为最后一个,所有 就没有下一个扩展分区了,第二个分区表自然就不再使用了。

总结:一共四个盘,一个主磁盘区,另外三个是逻辑驱动器。在0扇区中,第一分区表是可以看出主分区的格式,分区是从2048开始的。第二分区表描述是一个扩展分区的,因为类型是0F/05,

,这个参数很重要,下面磁盘的绝对值起始扇区值要与这值相加。查找209719296扇区,查找这个扇区后,第一个分区表是当前逻辑驱动器参数,扇区2048是相对值是基于EBR1(第一逻辑驱动器)”209719296“作为起始扇区来定位的。第二分区表,分区开始位置也是相对值,与(第一逻辑驱动器)”209719296“作为起始扇区来定位相加,得出第二个逻辑驱动器开始扇区,第一分区表的开始分区值是将第二个逻辑驱动器开始扇区作为定位的。第二个分区表中的开始分区值要与第一个开始扇区相加,得出第三个逻辑驱动器。第三个逻辑驱动器第一个分区表,开始分区值是把第三个逻辑驱动器开始扇区作为定位。第二个分区表的开始分区值与EBR1开始扇区值相加,注意不是EBR2开始扇区值。

我们要计算出每个逻辑驱动器开始扇区值,第一个逻辑驱动器值可以从主磁盘中第二个分区表开始分区获取,得出第二个逻辑驱动器开始扇区值。第三个逻辑驱动器开始扇区值从第二个逻辑驱动器第二分区表中开始分区值与第一个逻辑驱动器开始扇区值相加。解决了每个逻辑驱动器开始扇区值。每个逻辑驱动器第一分区表的开始分区值是相对值,将每个逻辑驱动器开始扇区作为定位。