首先,想读取希捷硬盘的固件区数据,用普通的方法CreateFile打开硬盘,然后Seek,ReadFile等是不行的,这样读取出来的只是硬盘的用户区数据。想要读取硬盘的固件区(系统区)数据,需要一些额外的配置。
硬件:
1、电源。
2、usb转com口数据线。
3、一块希捷硬盘。
操作:
用usb转串口数据线连接硬盘,给硬盘加电,操作完成。
需要在PC上通过串口通信的方式,给希捷硬盘发送指令,以读取希捷硬盘的固件区数据。
指令如下:
进入T模式:ctrl+z
进入T模式后,会返回(省略号代表前边还有其他字符,在此未列出):“......F3 T>"
进入16进制模式(字母O):O1
进入ASSIC模式(字母O):O3
进入ATA模式(com口将不可用,仅进入T模式的指令可用):ctrl+t
命令 说明 / 返回 ctrl+z 进入T模式 ctrl+t 进入ATA模式,com口将不可用 F3 T> T模式 /2 进入定位模式 x 查看分区信息 A0 所有分区可读 S11,0,,,,1 定位11柱面 r,,,,,1 将数据读入缓存区 ? 显示缓存区地址 / 返回T模式 O1 进入16进制模式 O3 进入ASSIC模式 /1 进入读模式 D6447600,,,800 从取缓存区地址6447600读800字节
返回T模式:/
进入定位模式:/2
查看分区信息(此指令可读取出用户分区和固件分区的柱面、每柱面的磁道数等。):x
进入读模式(所有分区可读,在此必须执行此命令,不然,后边的压入缓存和读都无法执行):A0
定位柱面(如11柱面):S11,0,,,,1
将当前定位柱面的数据压入缓存:r,,,,,1
显示缓存区地址:?
进入读模式:/1
从取缓存区地址6447600读800字节:D6447600,,,800
通过上边的重复定位柱面、压入缓存、显示缓存地址、读取缓存数据的方式,即可完成对希捷硬盘固件区数据的读取。
转载请注明文章来自:http://blog.csdn.net/windows_nt