有一次我女朋友让我帮忙解一个excel表格的保护密码,然后~用了宏

网上下载来的Excel经常会有工作表保护,也就是无法修改,妄图做任何修改的时候你就会看见这句话:

您试图更改的单元格或图表位于受保护的工作表中。若要进行更改,请取消工作表保护。您可能需要输入密码。

那么这篇文章可以简单的帮你解决这个问题...因为Excel中内置了Visual Basic,所以我们写个宏暴力破解密码就可以了。。。

1. 当然是先打开有保护密码的Excel文件

2. 新建一个宏(不同版本的office宏所在的位置不一样,一般都在"菜单—视图" 中)

然后我们点击"录制宏",名字随便写,然后再次点击,会发现录制宏的位置已经变成了“停止录制”,点击“停止录制”

3.在停止录制后我们点击“查看宏”,找到我们刚才新建的宏,比如我新建的名为“asd”,选中后点击"编辑"

4. 然后在弹出的框中我们可以看到我们新建的空宏"asd"

5. 把这个框内的所有内容全部删除,将下面的所有代码复制进去

6. 关闭Visual Basic,回到我们的Excel,当然这里不需要保存,直接右上角叉掉即可

7. 然后我们回到最初的位置,点击“查看宏”,就会发现刚才我们新建的空宏已经不见了,取而代之的是一个名为"Password_cracking"的宏

8. 选中这个宏,点击执行,就可以破解当前这份Excel中的工作保护密码了

当然在执行完这个宏之后,当前打开的Excel中的密码已经被清除,你可以选择直接保存这份Excel,这样的话你的Excel就不再有密码了,也可以选择记下破解出来的密码,然后关闭这个Excel重新打开一次,输入密码解除保护

  1. Public Sub Password_cracking()
  2. Const DBLSPACE As String = vbNewLine & vbNewLine
  3. Const AUTHORS As String = DBLSPACE & vbNewLine & _
  4. " Author - GhostCN_Z "
  5. Const HEADER As String = "Password_cracking"
  6. Const VERSION As String = DBLSPACE & " Version 1.0"
  7. Const REPBACK As String = DBLSPACE & ""
  8. Const ZHENGLI As String = DBLSPACE & ""
  9. Const ALLCLEAR As String = DBLSPACE & "All password is clear" & DBLSPACE & "Please remember to save"
  10. Const MSGNOPWORDS1 As String = "No password!"
  11. Const MSGNOPWORDS2 As String = "No password!"
  12. Const MSGTAKETIME As String = "This will take some time , please wait for a while" & DBLSPACE & "Press next to start"
  13. Const MSGPWORDFOUND1 As String = "Password is : " & DBLSPACE & "$$" & DBLSPACE & _
  14. "If the file worksheet has a different password, it will search for the next set of passwords and release"
  15. Const MSGPWORDFOUND2 As String = "Password is : " & DBLSPACE & "$$" & DBLSPACE & _
  16. "If the file worksheet has a different password, it will search for the next set of passwords and release"
  17. Const MSGONLYONE As String = ""
  18. Dim w1 As Worksheet, w2 As Worksheet
  19. Dim i As Integer, j As Integer, k As Integer, l As Integer
  20. Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
  21. Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
  22. Dim PWord1 As String
  23. Dim ShTag As Boolean, WinTag As Boolean
  24. Application.ScreenUpdating = False
  25. With ActiveWorkbook
  26. WinTag = .ProtectStructure Or .ProtectWindows
  27. End With
  28. ShTag = False
  29. For Each w1 In Worksheets
  30. ShTag = ShTag Or w1.ProtectContents
  31. Next w1
  32. If Not ShTag And Not WinTag Then
  33. MsgBox MSGNOPWORDS1, vbInformation, HEADER
  34. Exit Sub
  35. End If
  36. MsgBox MSGTAKETIME, vbInformation, HEADER
  37. If Not WinTag Then
  38. Else
  39. On Error Resume Next
  40. Do 'dummy do loop
  41. For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
  42. For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
  43. For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
  44. For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
  45. With ActiveWorkbook
  46. .Unprotect Chr(i) & Chr(j) & Chr(k) & _
  47. Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
  48. Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  49. If .ProtectStructure = False And _
  50. .ProtectWindows = False Then
  51. PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
  52. Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
  53. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  54. MsgBox Application.Substitute(MSGPWORDFOUND1, _
  55. "$$", PWord1), vbInformation, HEADER
  56. Exit Do 'Bypass all for...nexts
  57. End If
  58. End With
  59. Next: Next: Next: Next: Next: Next
  60. Next: Next: Next: Next: Next: Next
  61. Loop Until True
  62. On Error GoTo 0
  63. End If
  64. If WinTag And Not ShTag Then
  65. MsgBox MSGONLYONE, vbInformation, HEADER
  66. Exit Sub
  67. End If
  68. On Error Resume Next
  69. For Each w1 In Worksheets
  70. 'Attempt clearance with PWord1
  71. w1.Unprotect PWord1
  72. Next w1
  73. On Error GoTo 0
  74. ShTag = False
  75. For Each w1 In Worksheets
  76. 'Checks for all clear ShTag triggered to 1 if not.
  77. ShTag = ShTag Or w1.ProtectContents
  78. Next w1
  79. If ShTag Then
  80. For Each w1 In Worksheets
  81. With w1
  82. If .ProtectContents Then
  83. On Error Resume Next
  84. Do 'Dummy do loop
  85. For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
  86. For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
  87. For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
  88. For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
  89. .Unprotect Chr(i) & Chr(j) & Chr(k) & _
  90. Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
  91. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  92. If Not .ProtectContents Then
  93. PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
  94. Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
  95. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  96. MsgBox Application.Substitute(MSGPWORDFOUND2, _
  97. "$$", PWord1), vbInformation, HEADER
  98. 'leverage finding Pword by trying on other sheets
  99. For Each w2 In Worksheets
  100. w2.Unprotect PWord1
  101. Next w2
  102. Exit Do 'Bypass all for...nexts
  103. End If
  104. Next: Next: Next: Next: Next: Next
  105. Next: Next: Next: Next: Next: Next
  106. Loop Until True
  107. On Error GoTo 0
  108. End If
  109. End With
  110. Next w1
  111. End If
  112. MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK & ZHENGLI, vbInformation, HEADER
  113. End Sub

Excel工作表保护的密码破解与清除...假装自己破解密码系列?的更多相关文章

  1. 破解EXCEL工作表保护密码

    神技 破解EXCEL工作表保护密码 http://www.mr-wu.cn/crack-excel-workbook-protection/ 我们可以通过新建工作本,来创建一个新的工作本来创造新的宏而 ...

  2. 方法一破解:Excel工作表保护密码

    在excel2016中实测验证过有效 在Excel中,为了保护自已的工作表不被修改,我们可以添加保护密码. 操作步骤: 1.把Excel文件的扩展名xlsx修改为Rar.瞬间Excel文件变成了压缩包 ...

  3. [转]Excel 工作表保护密码移除

    http://blog.sina.com.cn/s/blog_4cf096b80100rhfb.html Public Sub 工作表保护密码() Const DBLSPACE As String = ...

  4. 使用宏命令撤销EXCEL工作表保护

    EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具 ...

  5. 方法二破解:Excel工作表保护密码

    最简单,复制整表,粘贴在全新的表中.但是有时候会丢失一些元素 在excel2016中实测验证过有效 第1步:在工作表菜单栏上添加[开发工具].方法是:依次单击[文件]--->[选项]---> ...

  6. 方法三破解:Excel工作表保护密码

    Sub PasswordBreaker()  Dim i As Integer, j As Integer, k As Integer  Dim l As Integer, m As Integer, ...

  7. EXCEL工作表保护密码忘记了,如何撤消工作表保护?

    按下面步骤操作,如果不会发邮件给我吧 SamRichard@live.cn 1\打开文件 2\工具---宏----录制新宏---输入名字如:aa 3\停止录制(这样得到一个空宏) 4\工具---宏-- ...

  8. Excel—“撤销工作表保护密码”的破解并获取原始密码

    您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护 ...

  9. 转:Excel—“撤销工作表保护密码”的破解并获取原始密码

    在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能, ...

随机推荐

  1. VC++中如何将字符串转换成整型数字

    原文:http://blog.csdn.net/yongf2014/article/details/47071663 注意: atoi函数是c的函数,它的输入参数是char *类型. 你声明了stri ...

  2. VS2013下使用log4cplus

    原文:http://blog.csdn.net/qq_35850668/article/details/52522932 最近工作需要,需要使用log库来完善日志类记录,由于之前没什么经验,遇到了很多 ...

  3. AndroidStudio中logcat不输出信息

    2017年11月27日,记住这个日子.今天第一次感觉到被批评了,由于自己技术知识储备不足导致今天的外出工作等于浪费时间.正式因为这个logcat不输出信息的问题,前几回不输出信息了我就从新启动了开发工 ...

  4. 微信小程序开发8-小程序的宿主环境(1)

    1.小程序的运行环境分成渲染层和逻辑层,第2章提到过 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层.小程序的渲染层和逻辑层分离是经过很多考虑得出来的模型 2. 1.渲染层和数据 ...

  5. 【疑难杂症01】TypeError: alert is not a function

    一.背景 话说今天在调试js的时候,碰到一个很奇怪的问题,现记录一下.当使用alert()函数弹出提示时,总是报错,你没看错,alert函数报错了. 二.详细说明 当时正在做一个关于告警的页面展示功能 ...

  6. github连接提示

    解决办法: 1,将连接方式从http更换为ssh.注意,github.com后面一定有(冒号): git remote rm origin git remote add origingit@githu ...

  7. 利用Vagrant完成开发环境配置

    作者:astaxie链接:https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.0.md著作权归作者所有.商业转载请联 ...

  8. spring事务的理解

    特性 一致性:业务处理要么都成功,要么都失败,不能部分成功不分失败 原子性:业务操作是由多个动作完成,这些动作不可分割,要么都执行,要么都不执行 隔离性:事务间之间要做隔离,不要互相影响 持久性:操作 ...

  9. linux 下的python的最佳打开方式, you know?

    IPython install IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性.特别是它的代码补完功能,例如:在输入zlib ...

  10. 在Eclipse中通过build.xml导入工程

    http://www.zihou.me/html/2012/10/18/7868.html