I was playing around with HDD security features today using ATAPWD.EXE and stupidly created a random user password (maximum level) which has locked the drive. I was able to set a master password successfully after the fact, which I think will allow me to erase the drive and reset the user password.
I'm using this
similar discussion as a basis for my process. Here is what I have so far.
The drive is a Seagate DB35.3 (ST3250820ACE) series device. I pulled these ATA-7 commands from the drive's
product manual.
Code:
Command name [ Command code (in hex) ]
Security Disable Password [ F6h ]
Security Erase Prepare [ F3h ]
Security Erase Unit [ F4h ]
Security Freeze [ F5h ]
Security Set Password [ F1h ]
Security Unlock [ F2h ]
From here I referenced the
ATA-7 Specifications to see what it could tell me about these features.
Section 4.7.4 shows the security mode states and transitions that the drive is capable of. The drive right now is in state SEC4: Security enabled/Locked. From what I understand I can use the master password to 'reset' the drive.
Quote:
If the Security Level was set to Maximum during the last SECURITY SET PASSWORD command, the device shall not unlock if the Master password is received. The SECURITY ERASE UNIT command shall erase all user data and unlock the device if the Master password matches the last Master password previously set with the SECURITY SET PASSWORD command.
Now I'm getting somewhere.
Quote:
Transition SEC4:SEC1:
When a SECURITY ERASE PREPARE command is received and is followed by a SECURITY ERASE UNIT command, the device shall make a transition to the SEC1: Security disabled/not Frozen state.
So from my research I need to write a script for MHDD that will use the master password to send SECURITY ERASE PREPARE [ F3h ] followed by SECURITY ERASE UNIT [ F4h ] to the drive.
Looking at the post mentioned earlier, Spildit provided a script for a WD HD.
Spildit wrote:
Then open your notepad and past the following script :
Code:
; rm modul id 42
reset
waitnbsy
regs = $57 $44 $43 $00 $00 $a0 $8a
waitnbsy
regs = $00 $02 $00 $00 $0F $E0 $21
waitnbsy
checkdrq
sectorsto = 42.bin
; End.
And this is where I am currently stuck. I have all the pieces (I think) and just need to figure out how to combine them into a script for MHDD.
I will keep looking around trying to figure this one out, but if anyone has any pointers or knows what I need to do to send these commands, I would greatly appreciate the help. Thanks.