2024年1月23日发(作者:)

各位朋友不知道有没有碰到过这样的情况,当你要打开一个EXECL工作表时,突然发现密码忘记了,唯一可做的也许是搞个破解软件来破一下,但针对打开后的工作表保护,一般就很难有效了,复制虽是一种办法,但不少数据(特别是公式较多着),可能就要乱套了,入户才能破解这一类密码呢?不久前在网上发现此精华,与大家共享一下!

利用宏运行方式破解,真的很有效,运行中可能电脑有两分钟无反应,千万不要以为死机了,等等吧!

步骤方法如下:

1. 打开文件

2. 工具---宏---录制新宏---输入名字如:aa

3. 停止录制(这样得到一个空宏)

4. 工具---宏----宏,选aa,点编辑按钮

5. 删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧)

6. 关闭编辑窗口

7. 工具---宏----宏。选AllInternalPasswords,运行,确定两次,等两分钟,再确定,OK,没有密码了!!

宏内容如下:

Public Sub AllInternalPasswords()

'Breaks worksheet and workbook structure McCormick

'probably originator of base code algorithm modified for coverage

'of workbook structure / windows passwords and multiple passwords

'

'Norman Harker and JE McGimpsey 27-Dec-2002(Version 1.1)

'Modified 2003-Apr-04 by JEM:All msgs to constants,and

'eliminate one Exit Sub (Version 1.1)

'Reveals hashed passwords NOT original passwords

Const DBLSPACE As String = vbNewLine & vbNewLine

Const AUTHORS As String = DBLSPACE & vbNewLine & _

"Adapted form Bob McCormick base code by" & _

"Norman Harker and JE McGimpsey"

Const HEADER As String = "AllInternalPasswords User Message"

Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"

Const REPBACK As String = DBLSPACE & "Please report failure" & _

"to the mming newsgroup."

Const ALLCLEAR As String = DBLSPACE & "The workbook should" & _

"now be free of all password proteection, so make sure you:" & _

DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _

DBLSPACE & "BACKUP!,BACKUP!!,BACKUP" & _

DBLSPACE & "Also, remember that the password was" & _

"put there for areason. Don't stuff up crucial formulas" & _

"or date/" & DBLSPACE & "Access and use of some data" & _

"may be an in doubt,don't."

Const MSGNOPWPRDS1 As String = "There were no passwords on" & _

"sheet,or workbook struture or windows." & AUTHORS & VERSION

Const MSGNOPWORD2 As String = "There was no protection to" & _

"workbook structure or windows." & DBLSPACE & _

"Proceeding to unprotect sheets." & AUTHORS & VERSION

Const MSGTAKETIME As String = "After pressing OK button this" & _

"will take some time." & DBLSPACE & "Amount of time" & _

"depends on how many different passwords,the" & _

"passwords, and your computer's specification." & DBLSPACE & _

"Just be patient! Make me a coffee!" & AUTHORS & VERSION

Const MSGPWORDFOUND1 As String = " You had a Worksheet" & _

"Structure or Windows Password set." & DBLSPACE & _

"Thq password found was:" & DBLSPACE & "$$" & DBLSPACE & _

"Note it down for potential future use in other workbooks by" & _

"the same person who set this password." & DBLSPACE & _

"Now to check and clear other passwords." & AUTHORS & VERSION

Const MSGPWORDFOUND2 As String = "You had a Worksheet" & _

"password set." & DBLSPACE & "The password found was:" & _

DBLSPACE & "&&" & DBLSPACE & "Note it down for potential" & _

"future use in other workbooks by same person who" & _

"set this password." & DBLSPACE & "Now to check and clear" & _

"other passwords." & AUTHORS & VERSION

Const MSGONLYONE As String = "Only structure / windows" & _

"protected with the password that was just found." & _

ALLCLEAR & AUTHORS & VERSION & REPBACK

Dim w1 As Worksheet, w2 As Worksheet

Dim i As Integer, j As Integer, k As Integer, l As Integer

Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer

Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer

Dim PWord1 As String

Dim ShTag As Boolean, WinTag As Boolean

Updating = False

With ActiveWorkbook

WinTag = ProtectStructure Or .ProtectWindows

End With

ShTag = False

For Each w1 In Worksheets

ShTag = ShTag Or tContents

Next w1

If Not ShTag And Not WinTag Then

MsgBox MSGNOPWORDS1, vbInformation, HEADER

Exit Sub

End If

MsgBox MSGTAKETIME, vbInformation, HEADER

If Not WinTag Then

MsgBox MSGNOPWORDS2, vbInformation, HEADER

Else

On Error Resume Next

Do 'dummy do loop

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

With ActiveWorkbook

.Unprotect Chr(i) & Chr(j) & Chr(k) & _

Chr(1) & Chr(m) & Chr(i1) & Chr(i2) & _

Chr(i3) & Chr(i4) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

If .ProtectStructure = False And _

.ProtectWindows = False Then

PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(1) & _

Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _

Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

MsgBox tute(MSGPWORDFOUND1, _

"$$", PWord1), vbInformation, HEADER

Exit Do 'Bypass all for…nexts

End If

End With

Next: Next: Next: Next: Next: Next

Next: Next: Next: Next: Next: Next

Loop Until True

On Error GoTo 0

End If

If WinTag And Not ShTag Then

MsgBox MSGONLYONE, vbInformation, HEADER

Exit Sub

End If

On Error Resume Next

For Each w1 In Worksheets

'Attempt clearance with PWord1

ect PWord1

Next w1

On Error GoTo 0

ShTag = False

For Each w1 In Worksheets

'Checks for all clear ShTag triffered to 1 if not.

ShTag = ShTag Or tContents

Next w1

If ShTag Then

For Each w1 In Worksheets

With w1

If .ProtectContents Then

On Error Resume Next

Do 'Dummy do loop

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

.Unprotect Chr(i) & Chr(j) & Chr(k) & _

Chr(1) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _

Chr(i4) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

If Not .ProtectContents Then

PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(1) & _

Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _

Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

MsgBox tute(MSGPWORDFOUND2, _

"$$", PWord1), vbInformation, HEADER

'leverrage finding Pword by trying on other sheets

For Each w2 In Worksheets

ect PWord1

Next w2

Exit Do 'Bypass all for…nexts

End If

Next: Next: Next: Next: Next: Next

Next: Next: Next: Next: Next: Next

Loop Until True

On Error GoTo 0

End If

End With

Next w1

End If

MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER

End Sub

好了,经测试有效,祝各位成功!