查看: 1654|回复: 4
收起左侧

[求助] Excel工作表密码破解方法

[复制链接]
ID不变
发表于 2012-12-19 18:21:30 | 显示全部楼层 |阅读模式
本帖最后由 ID不变 于 2012-12-19 18:22 编辑

本帖转自:http://tieba.baidu.com/p/435222733,原作者:至爱蓝蓝

1、打开Excel相关文件

2、以Excel2010举例,打开“视图”→“宏”→“录制宏”,输入名字,如:aa

3、“停止录制宏”(这样得到一个空宏)

4、“视图”→“宏”→“查看宏”,选择“aa”,并“编辑”

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

Option Explicit  

Public Sub AllInternalPasswords()  
' Breaks worksheet and workbook structure passwords. Bob McCormick  
' probably originator of base code algorithm modified for coverage  
' of workbook structure / windows passwords and for 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.1)  
' Reveals hashed passwords NOT original passwords  
Const DBLSPACE As String = vbNewLine & vbNewLine  
Const AUTHORS As String = DBLSPACE & vbNewLine & _  
"Adapted from 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 microsoft.public.excel.programming newsgroup."  
Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _  
"now be free of all password protection, 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 a reason. Don't stuff up crucial formulas " & _  
"or data." & DBLSPACE & "Access and use of some data " & _  
"may be an offense. If in doubt, don't."  
Const MSGNOPWORDS1 As String = "There were no passwords on " & _  
"sheets, or workbook structure or windows." & AUTHORS & VERSION  
Const MSGNOPWORDS2 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 & _  
"The 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  

Application.ScreenUpdating = False  
With ActiveWorkbook  
WinTag = .ProtectStructure Or .ProtectWindows  
End With  
ShTag = False  
For Each w1 In Worksheets  
ShTag = ShTag Or w1.ProtectContents  
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(l) & Chr(m) & Chr(i1) & Chr(i2) & _  
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
If .ProtectStructure = False And _  
.ProtectWindows = False Then  
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _  
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _  
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
MsgBox Application.Substitute(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  
w1.Unprotect PWord1  
Next w1  
On Error GoTo 0  
ShTag = False  
For Each w1 In Worksheets  
'Checks for all clear ShTag triggered to 1 if not.  
ShTag = ShTag Or w1.ProtectContents  
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(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _  
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
If Not .ProtectContents Then  
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _  
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _  
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)  
MsgBox Application.Substitute(MSGPWORDFOUND2, _  
"$$", PWord1), vbInformation, HEADER  
'leverage finding Pword by trying on other sheets  
For Each w2 In Worksheets  
w2.Unprotect 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


6、关闭编辑窗口

7、“视图”→“宏”→“查看宏”,选择“AllInternalPasswords”,并“执行”,等待一会,并连续点击4次确定,即可消除密码。

8、最后注意保存Excel,不然以上都白做了。

最后,送上我的word收藏版本: excel工作表密码破解方法.rar (295.4 KB, 下载次数: 76)
inttk
发表于 2012-12-19 19:29:20 | 显示全部楼层
密码长一点等死人也不出来的 当年暴力破解4位的都要等。。。
ID不变
 楼主| 发表于 2012-12-19 19:37:47 | 显示全部楼层
inttk 发表于 2012-12-19 19:29
密码长一点等死人也不出来的 当年暴力破解4位的都要等。。。

没有吧,我试过8位的破解,也很快。
这不是暴力破解吧。
早春新柳
发表于 2012-12-19 19:58:06 | 显示全部楼层
专用解密软件秒杀!
kangta
发表于 2012-12-20 11:44:09 | 显示全部楼层
这个不错,可以把之前加密了的,翻出来试试!
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-1 09:10 , Processed in 0.121216 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表