咨询热线:4006-759388  
分部: 杭州 | 上海 | 武汉 | 深圳 | 北京 | 沈阳
华军科技数据恢复
数据恢复
成功案例
 
 当前位置: 首页 > 数据恢复 > 正文

 联系我们

 4006-759388

解锁WD 西数硬盘工厂指令探究

 浏览量:次  来源:华军科技数据恢复  发布日期:2020-08-22 16:56:54

\

由于美国国安局开发的EQUATION病毒会修改硬盘韧体,还有市面上充斥着WD硬盘修改通电时间软体。


WD硬盘到后期时,就锁住无法执行ATA Vendor Command(工厂指令).防止上述修改,但同样的也会妨碍对硬盘做数据恢复处理.就要绕过这样保护机制。

其原理可能是
1.MCU内microcode不同(需使用jtag修改)
2.外部EEPROM ROM执行码不同


翻译此文在思考其思路.
常用字眼讲解:
服务区(Service Area)存放硬盘盘片上的韧体区.意味者电路版上没有完整的韧体程式码.
模块(Module)韧体区有分类好的区域.有时为匹配参数.有时有程式码.有在盘片上的也有在ROM上.


现在越来越多的Palmer家族SMR硬盘,都被SED锁定(无法执行工厂指令集与安全防护),并且当服务区模块损坏或数据不可用时,我们必须使用特殊的未锁定SATA PCB才能访问并修复韧体。

最简单的方法是直接从中国购买这种PCB,但是这种解锁的PCB的价格很高。此外,有时由于错误的焊接过程或太多的ROM重写,未锁定的PCB可能变得无法操作。有必要购买这种PCB吗?让我们在下面的文章中对此进行讨论。

 

PC-3000具有制作未锁定PCB的功能,并在将来用于解锁其他Palmer家族硬盘,从而保持原始未锁定PCB完整。主要思想是获取损坏硬盘盘片服务区,保存所有服务区模块,然后将这些模块用于解锁ROM重建。为此,我们需要:

  • 在PC-3000便携式 / 快速 / UDMA版本6.7或更高版本;
  • 编程器设备;


\


  • 烙铁(可选带热风枪);
    \
  • 解锁专用的PCB
    \

第一次,我们必须将解锁板PCB(在此步骤中保持ROM不更换为原故障资料硬盘的)锁在到我们故障硬盘(已被SED锁住):

\

并运行PC-3000 WDC Marvell Utility。该驱动器被自动检测为Palmer系列。像通常一样进行ROM备份。

\

如果尝试上传Module Dir跟加载LDR,会收到这错误:

静态模块读取错误检测到设备错误:“ VSC ERR INV FUNC CODE REQ”

首先,我们可以检查是否可以看到模块90。为此,我们执行Service Area->View module 90 information(使用服务区”->“查看模块90”信息),
如果磁头状况OK,我们将在主日志中看到一条消息:

View module 90 information

Total heads……………………….. : 2

Used heads………………………… : 2

Mdl 47 version…………………….. : 1007bI72

ROM Version version………………… : 00050006 (05.06)

Mdl 11 Version…………………….. : 00050006 (05.06)

所以我们的磁头状况不错。
准备重建ROM


让我们转到Tools->Utility extensions->ROM build from SA data ( 工具”->“实用程序扩展”->“根据SA数据构建ROM”_。在这里,我们必须按“ 从HDD ROM读取”按钮

\

并选择代码部分复选框。这样,我们将从解锁板中的供体ROM中获得ROM程式码。

\

接下来,我们按“ 从HDD SA读取”按钮

 

\

然后选择ROM模块这样,我们将从数据硬盘盘片上service area获得ROM匹配。

\
并合成产新的完整ROM ,保存到文件

\

然后使用“使用ROM->写入ROM”将新ROM写入HDD ,然后重新启动驱动器。下一步,我们需要将兼容的加载程序加载到HDD RAM中,以访问模块。

\
驱动器获得部分-XYZ- ID,现在我们可以检查是否可以通过ID访问模块。为此,我们转到工具->实用程序扩展->查看和编辑硬盘资源,“模块”选项

\

如果ID无法读取模块109(或任何其他模块),则问题可能出在ROM 的20B 模块被启用,因此我们必须再建立一20B不启用的完整ROM。

在同一ROM构建窗口中,我们按“ 从HDD SA读取 ”按钮,然后选择20B作为不启用

\

然后按一下[ 编辑]按钮,检查20B是否良好

\

再次构建ROM,保存并重新启动驱动器

\

检查模块109再次通过ID读取,不需要加载程序上传。如果可读,则需要将其保存到文件中。

\

因此,由于服务区现在是可读的,并且我们选择了正确的Flash目录20B,因此我们可以继续使用模块109在ROM中重建代码段。
请注意ROM程式码:它现在是准备根据109 Module重建的。

\

写入新的ROM并重新启动驱动器。它以完整的ID和LBA访问权开头:

\

这意味着我们已成功恢复了正确ROM,并且可以此ROM写入原来被锁定的SATA PCB。

接下来,我们转到原始的SED锁定PCB。我们需要先拆解ROM芯片

\

然后,我们将故障硬盘芯片放入编程器设备并读取以进行备份。DUMP保存到bin文件中。

现在是时候将新的患者ROM写入原始的患者PCB了。因此,我们使用先前保存的BIN文件做ROM写入。

将具有恢复后的ROM的患者PCB连接到PC-3000,启动WDC Marvell实用程序,然后检查硬盘是否具有完整ID跟资料访问权限。从这一刻起,我们不需要解锁PCB。

但是,如何使用我们新的未锁定SATA PCB来解锁另一个SED锁定的Palmer驱动器?

  • 将之前获得的未锁定SATA PCB连接到新的已锁定Palmer HDA。
  • 像我们第一次进行ROM恢复一样,从备份还原ROM。
  • 解开病人的ROM芯片,进行备份,并使用编程器设备写入新的恢复的ROM。
  • 将ROM焊接到其先前锁定的原始PCB上,将驱动器连接到PC-3000,从而可以完全访问服务区和数据。

请注意,此过程仅适用于Palmer驱动器。其他锁定驱动器具有另一种ROM结构以及出厂时设置的其他模块,因此该ROM恢复技巧不起作用。


华军结语
1.此法太复杂.所以正常数据恢复建议还是买解锁板直接换ROM就可
2.无修改过的EEPROM ROM.只能搭配MCU解锁的电路板才可执行工厂指令
3.若PCB上MCU无解锁,则电路的上ROM要从原盘片上109模块做code跟匹配一起提取,才可执行工厂指令
4.从这篇可看出WD对于工厂指令控制在MCU上跟ROM上都有



相关推荐: