效率源数据恢复论坛

标题: 电子取证-WD硬盘固件损坏的文件恢复提取技术研究 [打印本页]

作者: xlysoft    时间: 2016-3-25 14:15
标题: 电子取证-WD硬盘固件损坏的文件恢复提取技术研究
【文章来源:效率源科技(微信)】微信号:xiaolvyuantech
编者按:本期,数据恢复四川省重点实验室科研人员带来关于WD硬盘固件区坏道的文件恢复提取技术的研究成果,提供了一种更高效的固件区坏道修复方法,能有效解决硬盘不能正常读取固件,甚至硬盘不能正常识别的问题。

       据最新披露的《2016年2月中国硬盘市场研究报告》显示,西部数据(WD)硬盘的市场占有率名列前茅,已经成为市面上应用面最广的硬盘品牌之一。在案件调查中,取证人员经常会遇到WD硬盘出现固件区坏道而无法读取数据,甚至是硬盘不能被识别的问题,影响案件的快速侦破 。针对这一问题,研究一种专业技术,有效修复固件坏道,对于电子取证非常重要。

【WD硬盘品牌关注度位居第二】


一、什么是固件
      固件就是固化在硬盘内部的一个软件。

1、固件,让硬盘“动起来”
       硬盘就如一台小型的电脑,需要使用软件进行驱动工作。再简单来说,固件就如大家使用的手机软件一样,手机的物理硬件部分需要软件驱动才能使用。所以,凡是硬件体内有软件功能的,软件部分就统称为固件。

       固件在硬盘中要做很多工作,比如管理硬盘数据的存放位置;记录已经损坏的缺陷扇区,避免使用中再次用到这些缺陷扇区;记录硬盘在工作中的温度或出现的错误等等。少了固件的硬盘,就只是一堆机械和电子元件。

2、固件程序,包括主固件与次固件
       硬盘厂商将磁道分为两个部分,一个部分用于存放硬盘固件,一部分用于存放用户数据。存放硬盘固件的磁道是厂家的保留区域(固件区),对其访问时需要使用特定的指令及密码才行,普通的如 WINDOWS 操作系统等均无法对这个区域进行访问及管理, 另外也有少数人叫存放厂家固件的区域叫负轨。

      硬盘的固件程序一共有两份,两份都是相同的,分别称为主固件和次固件。这样做的目的是当主固件出现错误或丢失后,可以启用次固件来进行工作或修复,二者根据硬盘容量和磁道的分布来进行存放。一般情况下,0头和1头各存放一份。但工作时如有两个磁头的硬盘,就会将存放在0头的那份固件称为主固件。如果只有一个磁头的硬盘,那主次固件按先后顺序存放0头。为了方便对不同功能的固件进行分类有效管理,硬盘厂商又将不同的功能划分成组,各司其职用于高速数据读取。

       在固件的概念中,磁道包括组及模块,模块的概念就是组中的更具体的执行功能。如果说磁道是一本书,那组就是大章节,而模块就是每个段落。一个组中包含若干个模块。

3、固件坏道形式
       随着硬盘技术发展的进步,固件文件越来越大,电路板上的ROM空间已经不能满足其需求,固件开始从最初存储在电路板上发展到部分存储在盘体上,再到全部存储到盘体上。当然,不同品牌的硬盘各有不同,有些部分保存在电路板的芯片中,部分保存在负磁道(即零磁道前面的磁道),而有些则全部存放在负磁道中。硬盘固件坏道通常分为物理坏道和逻辑坏道两种形式:

       物理坏道:在访问硬盘的时候如果此扇区有划伤或者磁性介质减弱,会直接导致扇区读取失败。

       逻辑坏道:扇区读取的数据的ECC校验失败,导致读取失败。

       针对逻辑坏道,通常只需要对此扇区进行擦除即可解决。而针对物理坏道,需要进行扇区重映射(指利用厂家备份的扇区替代损坏扇区)。

二、固件的工作原理
       模块中最为重要的就是地图模块,在硬盘通电进行工作的时候,ROM 芯片中的对应工作参数会指出地图模块在盘片上的具体位置(UBA)。

       地图模块和 ROM 芯片的关系,就相当于地图模块是WINDOWS 操作系统中的启动部分,如果 ROM芯片不能与地图模块在硬盘通电后取得正确的联系,就等于无法启动 WINDOWS 系统,就不能使用基于WINDOWS 系统下的软件。

       地图模块记录了固件存放的地图结构,这些包括了大部分重要模块的定位,当然还是有些隐藏的模块没有记录在其中。

三、固件坏道的修复思路
       通过ROM内的配置信息,确定固件区地图模块的位置,然后再定位到此模块,在此模块内即可完成对固件区坏道的重映射。

1、ROM结构
       WD硬盘ROM芯片信息由引导代码和若干模块(配置信息)构成,其中模块通过编号加以区分,以下是WD硬盘ROM固件模块的文件头。

【ROYL为文件头,0x0D为此模块的编号】



       其中0xOB模块为ROM的地图模块,其中不仅记录了ROM内的所有模块的偏移地址,还记录了盘片上地图模块的偏移地址,如下图。

【0x012E5B为模块0x01(盘片地图模块)的UBA】



2、 地图模块结构
       在地图模块中,每个模块目录由0x12个字节组成,结构为:描述模块的长度(1)+此模块的备份数(1)+此模块的编号(2)+此模块的大小(2)+未知(4)+主模块的UBA(4)+次模块的UBA(4),如下图。

【地图模块结构数据】


       对固件区扇区进行重映射,就是通过修改地图模块中坏道所属模块的开始位置进行更改。

小结:本技术的优点在于:可解析硬盘地图模块,通过UBA方式访问固件模块;针对逻辑坏道,使用低格操作区域完成校验并解决数据的双重擦除问题;针对物理坏道,通过修改模块的地图完成模块的偏移达到修复的功能。能有效解决硬盘不能正常读取固件,甚至硬盘不能正常识别的问题。目前,该技术已经运用到效率源战略新产品DRS数据恢复系统中,感兴趣的读者欢迎一同探讨。













欢迎光临 效率源数据恢复论坛 (http://bbs.xlysoft.net/) Powered by Discuz! X3.2