I forgot the password to open a Word document. How can I retrieve the password?

mHelpMe picture mHelpMe · Jun 10, 2015 · Viewed 22.2k times · Source

I have a word document that prompts the user for a password to open it, the dialogue box is like below.

"Enter Password to open file" 

I found some code to break a password using brute force which is below (written it from with Excel). The only issue is when I use Documents.Open if the password is wrong word shows the dialogue box - is there anyway to get round this?

Private Sub PasswordBreakerWord()
'Author unknown but submitted by brettdj of www.experts-exchange.com


Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim strPath As String
Dim passAtmp As String

strPath = "H:\My_Path\"

Set objWord = CreateObject("word.Application")
objWord.Visible = True

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126

  passAtmp = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

 On Error Resume Next
  Set objDoc = objWord.Documents.Open(Filename:=strPath & "High Yield FMA Procedures.doc", PasswordTemplate:=passAtmp)
 If Err <> 0 Then
    On Error GoTo 0
 Else
    MsgBox "password is: " & passAtmp
    Debug.Print passAtmp
    Exit Sub
End If

Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next

Set objWord = Nothing

End Sub

Answer

Matt picture Matt · Apr 14, 2016

The file needs to be in .docx format, if it is .doc convert it to .docx:

  1. Create a back-up copy of the file.
  2. Change the extension from .docx to .zip.
  3. Open new .zip file and extract all files.
  4. In the extracted folder go to to word\settings.xml.
  5. Open settings.xml and remove the code from <w:documentProtection to /> and save the file.
  6. Copy the new settings.xml to the original .zip file and overwrite the old one.
  7. Rename the .zip to .docx and open file which is now protection free!