excelvbaproject保护密码破解查看见过较详细的操作
- 格式:doc
- 大小:32.50 KB
- 文档页数:7
如何利用VBA实现Excel数据加密与解密在Excel中,数据加密与解密是非常重要的功能,可以保护敏感数据的安全性。
VBA(Visual Basic for Applications)是一种编程语言,可以在Excel中编写宏来实现各种功能。
利用VBA编写代码可以实现Excel数据的加密与解密操作,本文将介绍如何利用VBA实现Excel数据的加密与解密。
首先,我们需要创建一个新的Excel工作簿,并通过VBA 编辑器添加一个新的模块。
在模块中编写以下代码:```VBAPrivate Sub EncryptData(ByVal rng As Range, ByVal password As String)rng.Formula = "=ENCRYPT.DECRYPT(" & rng.Address & "," & """" & password & """" & ",TRUE)"End SubPrivate Sub DecryptData(ByVal rng As Range, ByVal password As String)rng.Formula = "=ENCRYPT.DECRYPT(" & rng.Address & "," & """" & password & """" & ",FALSE)"End Sub```上述代码中,`EncryptData`是加密数据的函数,接受两个参数:`rng`是要加密的数据范围,`password`是加密密码。
破解excel保护密码破解vbaproject密码破解excel保护密码破解vbaproject密码破解excel保护密码破解vbaproject密码破解vbaproject密码1.打开带密码的Excel,视图---宏----录制宏---(保存到)“个人宏工作簿”---点“确认”。
2.查看宏----点“编辑”-----进入“Microsofe visual basic-PERSONAL.XLSB”页面;3.点“模块1“,弹出“模块1代码”----清除“模块1代码”里面的东西-----复制如下东西:Public Sub 工作表保护密码破解() Const DBLSPACE As String = vbNewLine & vbNewLineConst AUTHORS As String = DBLSPACE & vbNewLine & _"作者:McCormick JE McGimpsey "Const HEADER As String = "工作表保护密码破解"Const VERSION As String = DBLSPACE & "版本Version 1.1.1"Const REPBACK As String = DBLSPACE & ""Const ZHENGLI As String = DBLSPACE & " hfhzi3—戊冥整理"Const ALLCLEAR As String = DBLSPACE & "该工作簿中的工作表密码保护已全部解除!!" & DBLSPACE & "请记得另保存" _ & DBLSPACE & "注意:不要用在不当地方,要尊重他人的劳动成果!"Const MSGNOPWORDS1 As String = "该文件工作表中没有加密"Const MSGNOPWORDS2 As String = "该文件工作表中没有加密2"Const MSGTAKETIME As String = "解密需花费一定时间,请耐心等候!" & DBLSPACE & "按确定开始破解!"Const MSGPWORDFOUND1 As String = "密码重新组合为:" & DBLSPACE & "$$" & DBLSPACE & _"如果该文件工作表有不同密码,将搜索下一组密码并修改清除"Const MSGPWORDFOUND2 As String = "密码重新组合为:" & DBLSPACE & "$$" & DBLSPACE & _"如果该文件工作表有不同密码,将搜索下一组密码并解除"Const MSGONLYONE As String = "确保为唯一的?"Dim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer Dim PWord1 As StringDim ShTag As Boolean, WinTag As BooleanApplication.ScreenUpdating = FalseWith ActiveWorkbookWinTag = .ProtectStructure Or .ProtectWindowsEnd WithShTag = FalseFor Each w1 In WorksheetsShTag = ShTag Or w1.ProtectContentsNext w1If Not ShTag And Not WinTag ThenMsgBox MSGNOPWORDS1, vbInformation, HEADER Exit Sub End IfMsgBox MSGTAKETIME, vbInformation, HEADERIf Not WinTag ThenElseOn Error Resume NextDo 'dummy do loopFor 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 T o 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 ThenPWord1 = 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, HEADERExit Do 'Bypass all for...nextsEnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinTag And Not ShTag ThenMsgBox MSGONLYONE, vbInformation, HEADERExit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1w1.Unprotect PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShTag triggered to 1 if not. ShTag = ShTag Or w1.ProtectContentsNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For 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 ThenPWord1 = 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 sheetsFor Each w2 In Worksheetsw2.Unprotect PWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK & ZHENGLI, vbInformation, HEADEREnd Sub4.点保存,然后关闭“BOOK1”5.点运行,就OK了。
一、Excel“工程不可查瞧”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。
今天我对一个Excel宏编程中进行日期限制进行了破解。
方法一(共用级锁定)1、先对excel档进行一般的vbaproject”工程密码保护。
2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。
完成後,当您打开“vbaproject”工程属性时,就将会提示∶“工程不可瞧!”方法二(推荐,破坏型锁定)用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做、、、、、、用以上软体打开excel档,查找定位以下地方∶id="{00000000-0000-0000-00000}" 注∶实际显示不会全部为0 此时,您只要将其中的位元组随便修改一下即可。
保存再打开,就会发现大功告成!当然,在修改前最好做好您的文档备份。
至於恢复只要将改动过的地方还原即可(只要您记住了呵呵)。
破解方面,有网友说将CMG=,DPB=与GC=后的"="替换为"、"也可以的,我已测试过的确可以,这样更省事点。
用16进制编辑工具,如winhex、ultraedit-32打开X、xls文件,查找ID=、、、、、、, 或到文件尾查瞧,找到即可。
改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常瞧到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据就是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时您就可以瞧瞧那些就是被隐藏的了,很多时候打开就是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()Worksheets("这里为您要显示的工作表名称")、Visible = TrueEnd Sub关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选您要您破解工程密码的EXCEL文件>>再按F5执行即可、Private Sub VBAPassword()'您要解保护的Excel文件路径= Application、GetOpen("Excel文件(*、xls & *、xla & *、xlt),*、xls;*、xla;*、xlt", , "VBA破解")If Dir() = "" ThenMsgBox "没找到相关文件,清重新设置。
ex-vba迄今为止最简单的excel工作表密码解除方法
ex-vba迄今为止最简单的excel工作表密码解除方法
『动画解读』
对于设置了工作表密码的工作簿,打开后,具体操作步骤如下:
Step-01:通过菜单【开发工具】-【Visual Basic】进入VBA 编辑界面
Step-02:在VBA编辑窗口的【立即窗口】中逐步执行以下
代码(输完一句回车后再输入另一句并回车其中sheet1为
需要破解密码的工作表的名称)sheet1.Protect AllowFiltering:=truesheet1.unProtect
逐步执行这两行代码后,工作表的密码将被解除
如果打开VBA编辑窗口时没有立即窗口,可以通过菜单【视图】-【立即窗口】调出来,如下图所示:
『扩展应用』如果需要批量解除的,可以自行加入循环控制语句,写成一个过程。
代码参考如下(将代码复制放在ThisWorkbook下,然后运行):Sub clsWkShtPwd() Dim sht As Worksheet For Each sht In Worksheets sht.Protect AllowFiltering:=True
sht.unprotect NextEnd Sub
在此再次感谢大神们的分享!同时,一门技术是好是坏,
全凭个人掌握,用于益处是为好……
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。
一、Excel“工程不可查瞧”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。
今天我对一个Excel宏编程中进行日期限制进行了破解。
方法一(共用级锁定)1、先对excel档进行一般的vbaproject”工程密码保护。
2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。
完成後,当您打开“vbaproject”工程属性时,就将会提示∶“工程不可瞧!”方法二(推荐,破坏型锁定)用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做、、、、、、用以上软体打开excel档,查找定位以下地方∶id="{00000000-0000-0000-00000}" 注∶实际显示不会全部为0 此时,您只要将其中的位元组随便修改一下即可。
保存再打开,就会发现大功告成!当然,在修改前最好做好您的文档备份。
至於恢复只要将改动过的地方还原即可(只要您记住了呵呵)。
破解方面,有网友说将CMG=,DPB=与GC=后的"="替换为"、"也可以的,我已测试过的确可以,这样更省事点。
用16进制编辑工具,如winhex、ultraedit-32打开X、xls文件,查找ID=、、、、、、, 或到文件尾查瞧,找到即可。
改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常瞧到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据就是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时您就可以瞧瞧那些就是被隐藏的了,很多时候打开就是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()Worksheets("这里为您要显示的工作表名称")、Visible = TrueEnd Sub关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选您要您破解工程密码的EXCEL文件>>再按F5执行即可、Private Sub VBAPassword()'您要解保护的Excel文件路径= Application、GetOpen("Excel文件(*、xls & *、xla & *、xlt),*、xls;*、xla;*、xlt", , "VBA破解")If Dir() = "" ThenMsgBox "没找到相关文件,清重新设置。
ExcelVBA破解工作表工作簿保护密码Excel VBA破解工作表/工作簿保护密码平时在用Excel编辑文件时,如果不希望别人修改文件的内容,我们一般会为工作表或工作簿添加上密码,起到保护作用。
而当我们从网上下载了一个Excel文档,如果里面带有工作表/工作簿密码保护,我们又急需修改这个文件,这时我们又该怎么办呢?今天,我们就来讲一下Excel工作表/工作簿密码的攻与防,正所谓没有最硬的盾,也没有最快的矛,矛与盾的关系就看我们怎么处理了。
好了,闲话少说,打板就唱。
怎么样设置工作表/工作簿密码?制作好Excel表后,点击工具菜单下的保护->保护工作表/保护工作簿,在弹出的对话框中设置上密码即可。
密码尽量设置的复杂点,防止暴力破解。
到此,工作表/工作簿密码就设置好了,下面我们就开始讲怎么破解这个密码。
怎么样破解这个密码?注意:在破解之前最好先备份,免得发生意外!破解密码,一般人都会想到用软件来破解,而我们今天是用VBA 来进行破解。
首先打开VBA编辑器。
1、点击工具->宏->Visual Basic编辑器,打开VBA的编辑器。
2、在Visual Basic编辑器中,点击插入->模块,插入一个新的模块,我们的代码就是写到这个新的模块中的。
5、程序开始运行后,会弹出两次对话框,直接确定即可。
6、大约2分钟左右后,即弹出完成对话框,下图中画红线的地方即是找到的密码(注意:最后的那个也是密码中的一部分),单击确定后,文件中的密码即被清除。
7、如果只想找到密码而不想清除它,只要不保存文件,重新打开后在工具->保护->撤消工作表/工作簿保护,输入刚才找到的密码即可。
8、需要说明的一点是,找到的这个密码并不是真正设置时输入的密码,但确可以使用。
比如刚才找到的这个密码,而我设置时用的是123为密码的,不知这种情况是Excel的漏洞还是有意为之的,总之都可以撤消对工作表的保护。
总结看到这里,我们要问了,那怎么样的密码才算安全呀?其实安全是需要配合使用的,我们刚才的代码只是破解工作表/工作簿密码的,而我们可以用更多其它方面的保护来防止我们的文件不被破解,比如权限的设置(文件->权限)等。
Excel用VBA去除工作表保护密码Excel 的工作表保护是非常脆弱的。
下面的VBA代码虽然不能找出工作表保护密码,但可以取消工作表保护,如果自己的工作表保护密码忘记了,可以用这个方法:1.按Alt+F11,打开VBA编辑器。
2.在“工程”窗口中选择要取消保护的工作表名称,单击菜单“插入→模块”。
3.在右侧的代码窗口中输入下列代码:Sub Remove_WorkSheet_Password()Dim i As Integer, j As Integer, k As IntegerDim l As Integer, m As Integer, n As IntegerDim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integer, i6 As IntegerOn Error Resume NextIf ActiveSheet.ProtectContents = False ThenMsgBox "该工作表没有保护密码!"Exit SubEnd IfFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126ActiveSheet.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 ThenMsgBox "已经解除了工作表保护!"Exit SubEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextEnd Sub4.关闭VBA编辑器,回到工作表中,按Alt+F8,打开“宏”对话框,选择“Remove_WorkSheet_Password”,并单击“执行”按钮。
破解VBAProject保護口令1﹑使用UltraEdit32或其它二進制編輯工具2﹑你理解二進制﹑十進制﹑十六進制的概念3﹑Excel 中的_VBA_Project_CUR storage(我們可以理解為一個目錄) 下的Project Stream(可以理解為一個文件)是一個純文本文件。
如下例所示意﹐是一個包含了一個工作表(Worksheet)﹑一個模塊(Moudle)的Project stream。
其表達式為:命令符=串...[小節]命令符=串每行間用&h0d﹑&h0a (回車﹑換行)分隔。
所以﹐這就為我們簡單地破解提供了條件。
'********************************************'*** 帶有VBA 的Excel﹐沒有口令保護***'********************************************ID="{87EEB809-E9F0-11D6-95A2-008888998168}"Document=ThisWorkbook/&H00000000Document=Sheet1/&H00000000Module=模塊1Name="VBAProject"HelpContextID="0"VersionCompatible32="393222000"CMG="DBD91940F044F044F044F044"DPB="B6B474AD94536E546E546E"GC="91935354545454AB"[Host Extender Info]&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace]ThisWorkbook=0, 0, 0, 0, CSheet1=0, 0, 0, 0, C模塊1=22, 22, 155, 343, Z下例是同一個文件﹐增加了口令保護的project stream。
对于那种试用的含有VBA宏的Excel 是最好破的。
这样的Excel 文件一般加载了dll文件,一打开就提示输入密码,然后还提示你只能使用多少次。
有次数限制当然不爽了,呵呵,所以必须破解。
首先用Advanced Office Password Recovery 打开文件,马上就会破解出通用密码,然后点击删除VBA密码,然后拷贝工作薄密码。
打开Excel 文件,撤销工作薄保护,粘贴你刚才复制的密码。
继续看每个表有保护没,有的话全部撤销。
每个工作表的密码在刚才的软件界面上都有。
然后打开VBA编辑器,提示输入密码,不管它,因为密码已经删除了,所以点击确定就可以进去了。
展开工程,删除里面用户保护的VBA代码,保存,关闭。
再打开Excel 时你就会发现已经不会提示输入任何密码了,破解完成。
对于不提供试用,只提供输入密码才能访问,而且一打开就全屏的提示输入密码。
这样的Excel 破解起来稍微要麻烦一点,不过还是能破。
具体方法有空了再写。
就按照刚刚破解的一个VBA加密的Excel 写一下破解思路,仅供参考。
打开Excel 只看到一个表,然后马上出现全屏运行的密码输入窗口。
看来该加密方式是利用的这个表写的VBA代码。
只有输入正确密码才能登陆,如果点取消,则Excel 就马上关闭了。
在全屏的界面按下ALT+F 调出菜单栏,一直按右键,到“工具”菜单,选择“保护”,继续选择“撤销工作薄保护”,然后输入上面用软件破解出来的工作薄保护密码,然后确定。
如果没有出现密码错误对话框,就说明密码正确了。
然后按CTRL+S保存,等保存完毕,再回到那个登陆窗口,点击取消。
此时你就会发现Excel 没有关闭,而是绕过用户密码登陆直接进入了,里面就是你想要看到的Excel 表。
此时不要关闭Excel ,不然待会又要求输入登陆密码。
进入“工具”-“宏”-“Visual Basic 编辑器”,双击VBAProjiect,会提示输入密码,因为在前面已经用软件删除了VBA密码,所以直接点确定就可以进入。
Excel工作表密码保护的解除方法Excel弹出“您试图更改的单元格或图表受保护,因而是只读的;若要修改受保护单元格或图表,请先使用‘撤消工作表保护’命令在‘审阅’选项卡的‘更改’组中来取消保护;可能会提示您输入密码;出现这种情况,应该怎么解决呢经过研究,找到了两种破解Excel工作表保护码的方法;一、VBA宏代码破解法:第一步:打开该文件第二步:按Alt F11,进入VBA编辑界面;第三步:插入一个Module;第四步:在右边Module的空白编辑区域,复制粘贴下面的所有内容;第五步:按F5,运行该VBA命令;密码就现形了;Sub PasswordDim i As Integer, j As Integer, k As IntegerDim l As Integer, m As Integer, n As IntegerDim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integer, i6 As IntegerOn Error Resume NextFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126ActiveSheet.Unprotect Chri & Chrj & Chrk & _Chrl & Chrm & Chri1 & Chri2 & Chri3 & _Chri4 & Chri5 & Chri6 & ChrnIf ActiveSheet.ProtectContents = False ThenMsgBox "One usable password is " & Chri & Chrj & _Chrk & Chrl & Chrm & Chri1 & Chri2 & _Chri3 & Chri4 & Chri5 & Chri6 & ChrnActiveWorkbook.Sheets1.SelectRange"a1".FormulaR1C1 = Chri & Chrj & _Chrk & Chrl & Chrm & Chri1 & Chri2 & _Chri3 & Chri4 & Chri5 & Chri6 & ChrnExit SubEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextEnd Sub第六步:切换“审阅”选项卡,点击“撤消工作表保护”,然后输入密码即可解除锁定;二、软件破解法有许多专门为破解Excel各种密码而制作的软件,Excel Key与AdvancedOffice Password Recovery就是其中的佼佼者;它们的使用方法简单且破解速度极快;1. Excel Key下载下载地址:http://.mydown/soft/183/183131.html安装完后运行软件,点击工具栏“Recovery”按钮,找到要破解的文件,软件马上就可以解出密码了图5;2. Advanced Office Password Recovery下载下载地址:http://.mydown/soft/utilitie/security/268/410768.shtml 安装完后运行软件,点击工具栏“Open File”按钮,打开要破解的Excel文件,马上就可以看到解出的密码了图6;可以看出,用以上方法读出的密码完全不同,但它们确实均可以解除该工作表的密码保护,这实在是个有趣的问题;在网上查找了许久,终于找到比较圆满的解释答案:当Excel工作表采用密码保护时,就会生成一个16位双字节长hash值;当输入密码进行验证时,真正进行比较的就是这个hash值;事实上,有很多不同的密码都可以生成同样的hash值;大家可以试试:当你用“test”不含双引号作为Excel工作表保护密码,你同样可以用“zzyw”同样不含双引号这个密码进行解锁;怎么样,神奇吧。
EXCEL VBA Project密码破解过程可能有些繁琐,EXCEL工作表保护密码破解方法:1\打开文件2\工具---宏----录制新宏---输入名字如:aa3\停止录制(这样得到一个空宏)4\工具---宏----宏,选aa,点编辑按钮5\删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧)6\关闭编辑窗口7\工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了!!内容如下: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' Modified 2003-Apr-04 by JEM: All msgs to constants, and' eliminate one Exit Sub (Version' Reveals hashed passwords NOT original passwordsConst DBLSPACE As String = vbNewLine & vbNewLineConst 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 2003-Apr-04"Const REPBACK As String = DBLSPACE & "Please report failure " & _"to the 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 & VERSIONConst MSGNOPWORDS2 As String = "There was no protection to " & _"workbook structure or windows." & DBLSPACE & _"Proceeding to unprotect sheets." & AUTHORS & VERSIONConst 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 & VERSIONConst 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 & VERSIONConst MSGONLYONE As String = "Only structure / windows " & _ "protected with the password that was just found." & _ALLCLEAR & AUTHORS & VERSION & REPBACKDim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer Dim PWord1 As StringDim ShTag As Boolean, WinTag As Boolean= FalseWith ActiveWorkbookWinTag = .ProtectStructure Or .ProtectWindowsEnd WithShTag = FalseFor Each w1 In WorksheetsShTag = ShTag OrNext w1If Not ShTag And Not WinTag ThenMsgBox MSGNOPWORDS1, vbInformation, HEADERExit SubEnd IfMsgBox MSGTAKETIME, vbInformation, HEADERIf Not WinTag ThenMsgBox MSGNOPWORDS2, vbInformation, HEADERElseOn Error Resume NextDo 'dummy do loopFor 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 ThenPWord1 = 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 (MSGPWORDFOUND1, _"$$", PWord1), vbInformation, HEADERExit Do 'Bypass all for...nextsEnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinTag And Not ShTag ThenMsgBox MSGONLYONE, vbInformation, HEADERExit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShTag triggered to 1 if not. ShTag = ShTag OrNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66For 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 ThenPWord1 = 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 (MSGPWORDFOUND2, _"$$", PWord1), vbInformation, HEADER'leverage finding Pword by trying on other sheetsFor Each w2 In WorksheetsPWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER End Sub如何破解VBAProject属性的保护密码1、打开任一excel文件2、在宏里粘贴下面的代码3、运行下面的代码4、选择需要破解密码的文件5、点击“打开”'移除VBA编码保护Sub MoveProtect()Dim FileName As StringFileName = ("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, FalseEnd IfEnd Sub'设置VBA编码保护Sub SetProtect()Dim FileName As StringFileName = ("Excel文件(*.xls & *.xla&*.xlsx),*.xls;*.xla;*.xlsx", , "VBA破解")If FileName = CStr(False) ThenExit SubElseVBAPassword FileName, TrueEnd IfEnd SubPrivate Function VBAPassword(FileName As String, Optional Protect As Boolean = False)If Dir(FileName) = "" ThenExit FunctionElseFileCopy FileName, FileName & ".bak"End IfDim GetData As String * 5Open FileName For Binary As #1Dim CMGs As LongDim DPBo As LongFor i = 1 To LOF(1)Get #1, i, GetDataIf GetData = "CMG=""" Then CMGs = iIf GetData = "[Host" Then DPBo = i - 2: Exit ForNextIf CMGs = 0 ThenMsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"Exit FunctionEnd IfIf Protect = False ThenDim St As String * 2Dim s20 As String * 1'取得一个0D0A十六进制字串Get #1, CMGs - 2, St'取得一个20十六制字串Get #1, DPBo + 16, s20'替换加密部份机码For i = CMGs To DPBo Step 2Put #1, i, StNext'加入不配对符号If (DPBo - CMGs) Mod 2 <> 0 ThenPut #1, DPBo + 1, s20End IfMsgBox "文件解密成功......", 32, "提示"ElseDim MMs As String * 5MMs = "DPB="""Put #1, CMGs, MMsMsgBox "对文件特殊加密成功......", 32, "提示"End IfClose #1End Function如果你是要破解EXCEL工作表保护密码,请按“EXCEL工作表保护密码破解”操作,若在录制宏时,要求输入VBAProject密码,请先按后面的“如何破解VBAProject属性的保护密码”破解VBAProject密码,然后再按“EXCEL工作表保护密码破解”操作即可。