DETAILS
由ATA密码浅谈西部数据硬盘固件模块


在取证工作中,经常会遇到硬盘加密的情况,如图1所示。电脑正常开机,但需要正确输入硬盘口令,才可解除硬盘锁定状态,否则硬盘无法被访问。

这也就意味着,如果我们不解锁硬盘的话,是没有办法访问数据做数据固定的。此类加密我们称之为ATA加密。此类加密允许密码长度为32个字符,密码可以是大小写字母、数字和特殊符号。

图片 1.png

(图1)

遇到此类问题,我们通常需要借助PC3000、Atola等专业工具对硬盘进行解锁后才可正常访问或者制作磁盘镜像。

当然,本文不是专业工具的使用介绍,本文意在为大家介绍解锁原理以及固件的相关知识。所以文章中将主要使用免费、开源的工具为大家介绍。

首先,我们将加密的硬盘挂载到MHDD(MHDD是一款俄罗斯的免费硬盘测试软件)查看硬盘状态,如图所示。通过状态寄存器可以看到,硬盘正常复位,其中DRSC表示硬盘寻道完成、DRDY表示硬盘准备就绪;通过硬盘错误寄存器可以看到,硬盘PWD状态指示灯处于高亮状态,表示硬盘被加密。另外软件也做出了相应的提示:“WARRING:THIS DRIVE IS LOCKED BY ATA PASSWORD”。图2所示。

图片 2.png

(图2)

此时硬盘处于ATA加密状态,前文交代,处于ATA加密状态是不可能正常访问硬盘数据的。我们可以对硬盘进行逻辑扫描测试加以验证。图3所示。

图片 3.png

(图3)

我们可以清楚的看到,错误寄存器,ABRT处于高亮,ABRT表示指令被终止,由于全盘不可访问,所以发送的硬盘检测指令不能被执行。所以此状态下就更不可能做数据固定了。

 

什么是硬盘固件

我们讨论密码之前,先了解一下什么是固件?对于硬盘固件的解释有很多种,通俗易懂的解释就是,固件相当于硬盘的操作系统(这只是小编的理解)。文件系统下硬盘是以簇为单位进行数据读写的,一簇包由若干扇区组成,而扇区又包含在磁道之中,如图4所示。但这只是“用户区”,也就是硬盘用来存储数据的部分。除此之外,还有位于负磁道的固件区(SA区)以及保留扇区(这里需要说明一下,很多人认为硬盘的固件是存在电路板上的,当然这也没错,但是大部分固件还是存在盘片上的负磁道里)。

图片 4.png

(图4)

这里给大家扩展一个知识点,SPT(sector per tracks)我们称之为磁道密度。也就是每磁道扇区数。那可能有人会问了,每个磁道有多少个扇区应该是固定的吧?其实不然,莫不要说不同硬盘了,即使是同一块硬盘的不同磁道,密度也是有所差异的,我们可以想象,盘片的外圈磁道和内圈磁道互为同心圆。但外圈磁道的面积显而易见比内圈磁道面积大,如果相同的密度势必会造成盘片空间的浪费,所以硬盘引入了SPT磁道密度的概念。如图5所示,颜色相同部分的磁道密度也相同,我们称之为一个Zone。

图片5.png

(图5)

言归正传,我们回到固件。其实硬盘的ATA密码就被保存在了硬盘的固件区,密码信息被记录在一个模块里了,这个模块就是02模块。如图6所示。

图片 6.png

(图6)

西数02模块介绍

西数的02模块主要是硬盘的配置信息,以及硬盘的一些参数,比如型号、SN号、容量以及我们今天讨论的密码等内容。当然硬盘的固件读取肯定需要借助一些专业工具,比如上面提到的PC3000、Atola等设备。如果说你手里没有这些工具又想研究一下固件模块,也没关系可以后台联系小编索要免费的小工具哦。

接下来我们看下02模块的数据结构,如图7所示。颜色鲜艳部分是我们今天研究的内容,其余部分以后我们再继续交流。

图片 7.png

(图7)

l  偏移地址00H-03H:ROYL标志(俗称三角板);

l  偏移地址06H:有效数据的起始地址,由偏移地址30H开始是该模块的有效数据部分;

l  偏移地址08H-09H:模块ID,本模块的ID;

l  偏移地址0AH-0BH:模块长度;

l  偏移地址0CH-0FH:模块的校验信息;

l  偏移地址0x10H-0x17:模块的版本号;

l  偏移地址0x32H-0x33H:SN号的起始位置;

l  偏移地址0x34-0x35H:SN号长度;

l  偏移地址0x36H-0x37H:LBA起始地址;

l  偏移地址0x38H-0x39H:LBA长度;

l  偏移地址0x72H-0x73H:Model起始地址;

l  偏移地址0x74H-0x75H:Model长度;

l  偏移地址0x76H-0x77H:DCM起始地址;

l  偏移地址0x78H-0x79H:DMC长度;

l  偏移地址0x7AH-0x7BH:密码信息起始位置;

l  偏移地址0x7CH-0x7DH:密码信息长度。

以上是02模块里记录的一些重要信息,当然02模块里还记录一些其他重要信息,但我们今天不做过多说明。接下来我们逐一的看下其中的参数内容。

Ø  首先我们看0x32H-0x33H处记录的数值为“C200H”表示SN号起始地址为C2H,长度为17H也就是23个字节。SN号为:“WD-WX71E32XC177”。图8所示。

图片 8.png

(图8)

在我们的认知中,认为硬盘的SN号是唯一的,不可改变的。但是今天通过我们深入的固件模块研究,是不是对此有所疑问?

 

Ø  0x36H-0x37H处的数值为“D900H”,表示硬盘LBA起始地址为D9H,长度为18H,24个字节。LBA为:“2542EAAF”也就是625142447,320G硬盘标准LBA值(320G标准LBA为625142448,由于硬盘是从LBA=0开始,所以此处少1)。图9所示。

图片 9.png

(图9)

 

Ø  0x72H-0x73H处数值为“BB03H”,表示硬盘型号信息记录地址为03BBH处,长度为44H,68字节。型号为:“WD3200BEVT-00A23T0”。图10所示。

图片10.png

(图10)

 

Ø  0x76H-0x77H处数值为“FF03”,表示硬盘DCM信息记录位置为3FFH处,长度为46H,70字节。图11所示。

图片 11.png

(图11)

Ø  0x7AH-0x7BH处数值为“4504H”,表示硬盘的密码信息位置为0445H处,长度为4A,74字节。图12所示。

图片 12.png

(图12)

到此我们可以看到,我们设置的用户密码其实就是“12345”。那么问题来了,我们该如何解密呢?当然如果有专业工具那就轻而易举了。但我们这里讲原理。有两个办法,第一,更改密码开关位,使之处于关闭状态,然后回写模块(改完模块后需从新校验,生成新的校验值)。第二,使用通过“通用密码”解密。那么什么是“通用密码”?ATA密码分两个级别,User和Master,也就是用户密码和主密码。可以使用主密码来解锁用户级别的锁定状态。图13所示。

图片13.png

(图13)

如图14所示。通过MHDD使用“通用密码(Master)”对硬盘进行解密,输入“unlock”密码等级选择master级别,然后输入Master密码,出现Done字样表示解锁成功。但此时硬盘依旧处于加密状态,因为当前只解除了硬盘的锁定状态,还需要对硬盘进行解密操作。

图片14.png

(图14)

继续输入“dispwd”,密码级别选择Master主密码,输入Master密码,出现Done字样表示硬盘彻底解密成功。此时我们可以看到,硬盘的错误寄存器中的PWD状态已经解除了。表示硬盘彻底处于解锁状态。

总结

1.  硬盘一旦处于ATA密码保护状态,用户将无法正常访问硬盘数据、无法数据固定;

2.  ATA密码分为User和Master级别,Master主密码可以用来解除User级别的锁定状态;

3.  我们用户设置的密码,其实在硬盘的02固件模块中有所记录;

4.  西部数据硬盘Master密码有两个,第一个,本案例中的“WDCWDCWDCWDCWDCWDCWDCWDCWDCWDCW”(10个WDC+1个W);第二个,“WDCWDCWDCWDCWDCWDCWDCWDCWDCWDCWD”(10个WDC+1个WD);

5.  新款硬盘,Master密码不一定适用,还需要通过更改02模块来实现硬盘解锁。

30779f83-4bd9-4709-9979-92adf988c6d0.jpg

下一篇:手机数据获取之华为手机备份

上一篇:手机数据获取之ROOT权限

联系我们
  •    北京
  • 电话:010-62983123
  • 地址:北京市海淀区信息路15号616
  •    天津
  • 电话:022-23737908
  • 地址:天津市华苑产业区开华道22号普天大厦东塔5层
Copyright © 2002-2020 Timehost Technology Co.,Ltd 北京天鉴科技有限公司 | 北京天宇宏远科技有限公司 京ICP备05073270号