-
-
Save avambro/48aa7f25d6dd8217979d9a364253e07a to your computer and use it in GitHub Desktop.
Two methods of unlocking a locked excel sheet:
VBA macro for Excel that should unprotect a password protected sheet,
Opening the spreadsheet as XML and removing the specific piece
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Step 1. Make a copy of the spreadsheet in an empty directory. Rename the extension to .zip | |
Step 2. Extract the zip file. | |
Step 3. In the extracted contents, goto the folder \xl\worksheets\ | |
Step 4. There should be one xml file per sheet? I editing "sheet1.xml" with NotePad++. From nearly the very end of the file, remove the tag that starts with: | |
<sheetProtection | |
My entire tag was as follows: | |
<sheetProtection algorithmName="SHA-512" hashValue="ALciNBSIqRcjDiFbCuyWoGk4iOcC/ZRKnEjwEVi1skb6G5JbHhp+QVZ9+rlPVbGILOS7lYiCvJmR4Q7IuSphXA==" saltValue="8OVKXrG0VacLOLVztUpEYw==" spinCount="100000" sheet="1" objects="1" scenarios="1" selectLockedCells="1"/> | |
Step 5. Save the file. Open the ZIP file in 7zip, find the same file, drag and drop, save, exit, rename the file back to (xlsx) and open |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub PasswordBreaker() | |
'Breaks worksheet password protection. | |
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 | |
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ | |
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ | |
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) | |
If ActiveSheet.ProtectContents = False Then | |
MsgBox "One usable password is " & Chr(i) & Chr(j) & _ | |
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ | |
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) | |
Exit Sub | |
End If | |
Next: Next: Next: Next: Next: Next | |
Next: Next: Next: Next: Next: Next | |
End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment