一种解除西数硬盘固件锁并提取数据的方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201610874919.2
(22)申请日 2016.10.08
(71)申请人 四川秘无痕信息安全技术有限责任
公司
地址 641000 四川省内江市松山南路253号
(72)发明人 黄旭 杨先珉 董超 
(51)Int.Cl.
G06F  11/07(2006.01)
(54)发明名称
一种解除西数硬盘固件锁并提取数据的方
(57)摘要
本发明公开了一种解除西数硬盘固件锁并
提取数据的方法,包括以下步骤:
S1:单接西数硬盘电路板;S2:提取硬盘PCB板上的ROM芯片数据,
S3:提取0B模块数据体;S4:到0B模块中的所有
UBA开始位置,并阻塞服务区;S5:从固件区地图
中到02模块的存放位置;S6:在02模块中解锁
SED锁;S7:还原OB模块;S8:断电起电,恢复数据。
本发明的有益效果如下:通过阻塞服务区,解锁
固件锁,达到读取故障加密西数硬盘固件,修复
固件区从而恢复数据的目的,降低因硬盘故障到
时数据丢失的损失。权利要求书1页  说明书3页CN 106407036 A 2017.02.15
C N  106407036
A
1.一种解除西数硬盘固件锁并提取数据的方法,其特征在于包括以下步骤:
S1:单接西数硬盘电路板,通电待电路板状态就绪;
S2:提取硬盘PCB板上的ROM芯片数据,大小为256KB;
S3:在ROM芯片数据中检索检索并提取0B模块数据体;
S4:到0B模块中的所有UBA开始位置,并阻塞服务区;
S5:加载硬盘ROM微码一致的ATA;使硬盘可以正常工作,从而读取硬盘固件区,从固件区地图中到02模块的存放位置;
S6:在02模块中解锁固件锁,步骤如下:
S61:获取固件锁偏移位置,固件锁的处理标记在02模块的偏移“0xAE ”处,2字节所指位置,则为0x7A1,长度为7;
S62:清除固件锁,固件锁处理标记偏移到0x7A1,向后第7字节所在位置,到固件锁标;若到固件锁标为锁定状态则解锁;
S7:还原S4中OB模块阻塞的服务区,将固件区磁头地址分配信息表中4个磁头的UBA开始地址还原成原始的值;
S8:断电起电,恢复数据,可以对硬盘进行镜像处理。
2.根据权利要求1所述的一种解除西数硬盘固件锁并提取数据的方法,其特征在于S3的详细步骤如下:
S31:在256KB的信息中检索“0x524F594C ”4个字节的内容;
S32:检索到“0x524F594C ”后,向后偏移4个字节,取2字节数据,这2字节就代表ROM模块号;并判断该模块号是否为“0x0B00”,如果是则执行S33,如果不是则以该位置为起始执行S31;
S33:得到模块的大小;模块号后面2字节代表模块所占扇区数;
S34:提取整个0B模块,从头部“0x524F594C ”标记向后,到下一个标记“0x524F594C ”的数据都为0B模块的数据体;在此数据体后添加0x00直至填充为一个完整的扇区数据即可。
3.根据权利要求2所述的一种解除西数硬盘固件锁并提取数据的方法,其特征在于S4的详细步骤如下:
S41:计算出固件区磁头地址分配表起始偏移位置,执行以下公式:
OB模块数据起始位置+ROM模块条目数*条目所占字节数=固件区磁头地址分配表起始偏移位置;
S42:偏移至固件区磁头地址分配表起始偏移位置得到固件区磁头地图分配信息表占用总大小;
S43:根据地图分配信息表占用总大小扫描整个分配表,得到0头UBA结束位置;
S44:到0、1、2、3头的UBA开始位置;
S45:阻塞服务区;将0、1、2、3头的UBA开始位置都做加1处理;
S46:修改完成后,校验回写OB模块,断电起电。
权 利 要 求 书1/1页CN 106407036 A
一种解除西数硬盘固件锁并提取数据的方法
技术领域
[0001]本发明涉及信息安全技术领域,特别涉及一种解除西数硬盘固件锁并提取数据的方法。
背景技术
[0002]西数硬盘是市面上使用最多、最广泛的品牌厂家硬盘之一。西数硬盘厂家为了保证数据的安全性,在硬盘固件区增加了固件锁,防止固件被串改,保证只能访问数据区;但是如果此种加密硬盘出现了故障,数据区的数据就无法正常访问,硬盘家族无法识别,不能对硬盘进行分头。
[0003]目前还没有一种技术可以实现针对加密硬盘发生故障后的数据恢复。
发明内容
[0004]本发明针对现有技术的缺陷,提供了一种解除西数硬盘固件锁并提取数据的方法,能有效的解决上述现有技术存在的问题。
[0005]一种解除西数硬盘固件锁并提取数据的方法,包括以下步骤:
[0006]S1:单接西数硬盘电路板,通电待电路板状态就绪;
[0007]S2:提取硬盘PCB板上的ROM芯片数据,大小为256KB;
[0008]S3:在ROM芯片数据中检索检索并提取0B模块数据体;
[0009]S4:到0B模块中的所有UBA开始位置,并阻塞服务区;
[0010]S5:加载硬盘ROM微码一致的ATA;使硬盘可以正常工作,从而读取硬盘固件区,从固件区地图中到02模块的存放位置;
[0011]S6:在02模块中解锁固件锁,步骤如下:
[0012]S61:获取固件锁偏移位置,固件锁的处理标记在02模块的偏移“0xAE”处,2字节所指位置,则为0x7A1,长度为7;
[0013]S62:清除固件锁,固件锁处理标记偏移到0x7A1,向后第7字节所在位置,到固件锁标;若到固件锁标为锁定状态则解锁;
[0014]S7:还原S4中OB模块阻塞的服务区,将固件区磁头地址分配信息表中4个磁头的UBA开始地址还原成原始的值;
[0015]S8:断电起电,恢复数据,可以对硬盘进行镜像处理。
[0016]作为优选,S3的详细步骤如下:
[0017]S31:在256KB的信息中检索“0x524F594C”4个字节的内容;
[0018]S32:检索到“0x524F594C”后,向后偏移4个字节,取2字节数据,这2字节就代表ROM 模块号;并判断该模块号是否为“0x0B00”,如果是则执行S33,如果不是则以该位置为起始执行S31;
[0019]S33:得到模块的大小;模块号后面2字节代表模块所占扇区数;
[0020]S34:提取整个0B模块,从头部“0x524F594C”标记向后,到下一个标记
“0x524F594C”的数据都为0B模块的数据体;在此数据体后添加0x00直至填充为一个完整的扇区数据即可。
[0021]作为优选,S4的详细步骤如下:
[0022]S41:计算出固件区磁头地址分配表起始偏移位置,执行以下公式:
[0023]OB模块数据起始位置+ROM模块条目数*条目所占字节数=固件区磁头地址分配表起始偏移位置;
[0024]S42:偏移至固件区磁头地址分配表起始偏移位置得到固件区磁头地图分配信息表占用总大小;
[0025]S43:根据地图分配信息表占用总大小扫描整个分配表,得到0头UBA结束位置;[0026]S44:到0、1、2、3头的UBA开始位置;
[0027]S45:阻塞服务区;将0、1、2、3头的UBA开始位置都做加1处理;
[0028]S46:修改完成后,校验回写OB模块,断电起电。
[0029]与现有技术相比本发明的优点在于:通过阻塞服务区,解锁固件锁,达到读取故障加密西数硬盘固件,修复固件区从而恢复数据的目的,降低因硬盘故障到时数据丢失的损失。
具体实施方式
[0030]为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。
[0031]一种解除西数硬盘固件锁并提取数据的方法,包括以下步骤:
[0032]S1:单接西数硬盘电路板,通电待电路板状态就绪;
[0033]S2:提取硬盘PCB板上的ROM芯片数据,大小为256KB;
[0034]S3:在ROM芯片数据中检索检索并提取0B模块数据体,详细步骤如下:
[0035]S31:在256KB的信息中检索“0x524F594C”4个字节的内容;
[0036]S32:检索到“0x524F594C”后,向后偏移4个字节,取2字节数据,这2字节就代表ROM 模块号;并判断该模块号是否为“0x0B00”,如果是则执行S33,如果不是则以该位置为起始执行S31;
[0037]S33:得到模块的大小;模块号后面2字节代表模块所占扇区数;
[0038]S34:提取整个0B模块,从头部“0x524F594C”标记向后,到下一个标记“0x524F594C”的数据都为0B模块的数据体;在此数据体后添加0x00直至填充为一个完整的扇区数据即可。
[0039]S4:到0B模块中的所有UBA开始位置,并阻塞服务区,详细步骤如下:
[0040]S41:计算出固件区磁头地址分配表起始偏移位置,执行以下公式:
[0041]OB模块数据起始位置+ROM模块条目数*条目所占字节数=固件区磁头地址分配表起始偏移位置,本例中为1E+0A*1A=0x122;
[0042]S42:偏移至“0x122”(固件区磁头地址分配表起始偏移位置)得到固件区磁头地图分配信息表占用总大小,本例中为“0x46”;
[0043]S43:根据地图分配信息表占用总大小“0x46”扫描整个分配表,得到0头UBA结束位置;
[0044]S44:到0、1、2、3头的UBA开始位置;
[0045]“0x46”后4个字节表示固件区磁头位图,本例中为“0x04FF 0F 0F”;
[0046]固件区磁头位图后一个字节为占位符;
[0047]占位符向后偏移4个字节表示0头实际使用的UBA长度,本例为“0x00 56 04 00”;[0048]向后偏移4个字节表示0头UBA开始位置,本例为“00 00 00 00”;
[0049]向后偏移4个字节表示1头实际使用的UBA长度,本例为“00 56 04 00”;[0050]向后偏移4个字节表示1头UBA开始位置,本例为“FB C7 05 00”;
[0051]向后偏移4个字节表示2头实际使用的UBA长度,本例为“0x00 56 04 00”;[0052]向后偏移4个字节表示2头UBA开始位置,本例为“FB 8F 0B 00”;
[0053]向后偏移4个字节表示3头实际使用的UBA长度,本例为“0x00 56 04 00”;[0054]向后偏移4个字节表示3头UBA开始位置,本例为“FB 57 11 00”;
[0055]S45:阻塞服务区;将0、1、2、3头的UBA开始位置都做加1处理;
[0056]00 00 00 00表示0头UBA开始位置修改为01 00 00 00;
[0057]FB C7 05 00表示1头UBA开始位置修改为FC C7 05 00;
[0058]FB 8F 0B 00表示2头UBA开始位置修改为FC 8F 0B 00;
[0059]FB 57 11 00表示3头UBA开始位置修改为FC 57 11 00;
[0060]S46:修改完成后,校验回写OB模块,断电起电。
[0061]S5:加载硬盘ROM微码一致的ATA;使硬盘可以正常工作,从而读取硬盘固件区,从固件区地图中到02模块的存放位置。
[0062]S6:在02模块中解锁固件锁,具体步骤如下:
[0063]S61:获取固件锁偏移位置,固件锁的处理标记在02模块的偏移“0xAE”处,2字节所指位置,则为0x7A1,长度为7;
[0064]S62:清除固件锁,固件锁偏移到0x7A1,向后第7字节所在位置,即为固件锁标记位;0x00表示没有固件锁,0x01表示有固件锁;将01改为00,即可去掉固件锁,解锁固件区。[0065]S7:还原S4中OB模块阻塞的服务区,将固件区磁头地址分配信息表中4个磁头的UBA开始地址还原成原始的值。
[0066]S8:断电起电,恢复数据,可以对硬盘进行镜像处理。
[0067]本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

本文发布于:2024-09-20 14:21:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/777471.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:固件   硬盘   数据   位置   模块   技术   偏移   磁头
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议