VBA代码破解excel密码保护,支持2003,2007

Zero零分 代码 5,398 0 6年前

Excel密码保护之后只能只读,不能进行修改操作,想要修改就需要对excel进行破解,当然,是在不知道密码的情况下!

这是一个经过密码保护的excel表格,现在开始破解工作!

1、打开密码保护的excel文件–工具–录制新宏–输入名字如:xp  –点击停止录制!

2、工具–宏–宏,选xp,点编辑按钮

3、删除窗口的代码,替换VBA破解代码:

VBA代码:

  1. Public Sub AllInternalPasswords()    
  2. ‘ Breaks worksheet and workbook structure passwords. Bob McCormick    
  3. ‘ probably originator of base code algorithm modified for coverage    
  4. ‘ of workbook structure / windows passwords and for multiple passwords    
  5. ‘    
  6. ‘ Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)    
  7. ‘ Modified 2003-Apr-04 by JEM: All msgs to constants, and    
  8. ‘ eliminate one Exit Sub (Version 1.1.1)    
  9. ‘ Reveals hashed passwords NOT original passwords    
  10. Const DBLSPACE As String = vbNewLine & vbNewLine    
  11. Const AUTHORS As String = DBLSPACE & vbNewLine & _    
  12. “Adapted from Bob McCormick base code by” & _    
  13. “Norman Harker and JE McGimpsey”    
  14. Const HEADER As String = “AllInternalPasswords User Message”    
  15. Const VERSION As String = DBLSPACE & “Version 1.1.1 2003-Apr-04”    
  16. Const REPBACK As String = DBLSPACE & “Please report failure “ & _    
  17. “to the microsoft.public.excel.programming newsgroup.”    
  18. Const ALLCLEAR As String = DBLSPACE & “The workbook should “ & _    
  19. “now be free of all password protection, so make sure you:” & _    
  20. DBLSPACE & “SAVE IT NOW!” & DBLSPACE & “and also” & _    
  21. DBLSPACE & “BACKUP!, BACKUP!!, BACKUP!!!” & _    
  22. DBLSPACE & “Also, remember that the password was “ & _    
  23. “put there for a reason. Don’t stuff up crucial formulas “ & _    
  24. “or data.” & DBLSPACE & “Access and use of some data “ & _    
  25. “may be an offense. If in doubt, don’t.”    
  26. Const MSGNOPWORDS1 As String = “There were no passwords on “ & _    
  27. “sheets, or workbook structure or windows.” & AUTHORS & VERSION    
  28. Const MSGNOPWORDS2 As String = “There was no protection to “ & _    
  29. “workbook structure or windows.” & DBLSPACE & _    
  30. “Proceeding to unprotect sheets.” & AUTHORS & VERSION    
  31. Const MSGTAKETIME As String = “After pressing OK button this “ & _    
  32. “will take some time.” & DBLSPACE & “Amount of time “ & _    
  33. “depends on how many different passwords, the “ & _    
  34. “passwords, and your computer’s specification.” & DBLSPACE & _    
  35. “Just be patient! Make me a coffee!” & AUTHORS & VERSION    
  36. Const MSGPWORDFOUND1 As String = “You had a Worksheet “ & _    
  37. “Structure or Windows Password set.” & DBLSPACE & _    
  38. “The password found was: “ & DBLSPACE & “$$” & DBLSPACE & _    
  39. “Note it down for potential future use in other workbooks by “ & _    
  40. “the same person who set this password.” & DBLSPACE & _    
  41. “Now to check and clear other passwords.” & AUTHORS & VERSION    
  42. Const MSGPWORDFOUND2 As String = “You had a Worksheet “ & _    
  43. “password set.” & DBLSPACE & “The password found was: “ & _    
  44. DBLSPACE & “$$” & DBLSPACE & “Note it down for potential “ & _    
  45. “future use in other workbooks by same person who “ & _    
  46. “set this password.” & DBLSPACE & “Now to check and clear “ & _    
  47. “other passwords.” & AUTHORS & VERSION    
  48. Const MSGONLYONE As String = “Only structure / windows “ & _    
  49. “protected with the password that was just found.” & _    
  50. ALLCLEAR & AUTHORS & VERSION & REPBACK    
  51. Dim w1 As Worksheet, w2 As Worksheet    
  52. Dim i As Integer, j As Integer, k As Integer, l As Integer    
  53. Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer    
  54. Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer    
  55. Dim PWord1 As String    
  56. Dim ShTag As Boolean, WinTag As Boolean    
  57.   
  58. Application.ScreenUpdating = False    
  59. With ActiveWorkbook    
  60. WinTag = .ProtectStructure Or .ProtectWindows    
  61. End With    
  62. ShTag = False    
  63. For Each w1 In Worksheets    
  64. ShTag = ShTag Or w1.ProtectContents    
  65. Next w1    
  66. If Not ShTag And Not WinTag Then    
  67. MsgBox MSGNOPWORDS1, vbInformation, HEADER    
  68. Exit Sub    
  69. End If    
  70. MsgBox MSGTAKETIME, vbInformation, HEADER    
  71. If Not WinTag Then    
  72. MsgBox MSGNOPWORDS2, vbInformation, HEADER    
  73. Else    
  74. On Error Resume Next    
  75. Do ‘dummy do loop    
  76. For i = 65 To 66: For j = 65 To 66: For k = 65 To 66    
  77. For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66    
  78. For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66    
  79. For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126    
  80. With ActiveWorkbook    
  81. .Unprotect Chr(i) & Chr(j) & Chr(k) & _    
  82. Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _    
  83. Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)    
  84. If .ProtectStructure = False And _    
  85. .ProtectWindows = False Then    
  86. PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _    
  87. Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _    
  88. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)    
  89. MsgBox Application.Substitute(MSGPWORDFOUND1, _    
  90. “$$”, PWord1), vbInformation, HEADER    
  91. Exit Do ‘Bypass all for…nexts    
  92. End If    
  93. End With    
  94. Next: Next: Next: Next: Next: Next    
  95. Next: Next: Next: Next: Next: Next    
  96. Loop Until True    
  97. On Error GoTo 0    
  98. End If    
  99. If WinTag And Not ShTag Then    
  100. MsgBox MSGONLYONE, vbInformation, HEADER    
  101. Exit Sub    
  102. End If    
  103. On Error Resume Next    
  104. For Each w1 In Worksheets    
  105. ‘Attempt clearance with PWord1    
  106. w1.Unprotect PWord1    
  107. Next w1    
  108. On Error GoTo 0    
  109. ShTag = False    
  110. For Each w1 In Worksheets    
  111. ‘Checks for all clear ShTag triggered to 1 if not.    
  112. ShTag = ShTag Or w1.ProtectContents    
  113. Next w1    
  114. If ShTag Then    
  115. For Each w1 In Worksheets    
  116. With w1    
  117. If .ProtectContents Then    
  118. On Error Resume Next    
  119. Do ‘Dummy do loop    
  120. For i = 65 To 66: For j = 65 To 66: For k = 65 To 66    
  121. For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66    
  122. For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66    
  123. For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126    
  124. .Unprotect Chr(i) & Chr(j) & Chr(k) & _    
  125. Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _    
  126. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)    
  127. If Not .ProtectContents Then    
  128. PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _    
  129. Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _    
  130. Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)    
  131. MsgBox Application.Substitute(MSGPWORDFOUND2, _    
  132. “$$”, PWord1), vbInformation, HEADER    
  133. ‘leverage finding Pword by trying on other sheets    
  134. For Each w2 In Worksheets    
  135. w2.Unprotect PWord1    
  136. Next w2    
  137. Exit Do ‘Bypass all for…nexts    
  138. End If    
  139. Next: Next: Next: Next: Next: Next    
  140. Next: Next: Next: Next: Next: Next    
  141. Loop Until True    
  142. On Error GoTo 0    
  143. End If    
  144. End With    
  145. Next w1    
  146. End If    
  147. MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER    
  148. End Sub  

4、关闭编辑窗口–工具—宏—宏,选AllInternalPasswords,执行,弹出的所有窗口都点击确定,直到不再弹出,破解完成!

PS:如果excel表格内容比较多的话,可能会出现无反应的情况,等待一会就可以了!破解之后记得保存!

END

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*

用户评论(0)

一个很有趣的CSS3动画效果

一个很有趣的CSS3动画效果,可当过渡页,如loading! 完整代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width,height=device-height, initial-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="robots" content="noindex,follow"> <title>加载中</title> <style> body{font-weight:100;margin:0}body{-webkit-tap-highlight-color:transparent;background-color:#222428;font-size:100%;font-family:Open Sans;height:100%}.loader{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-mos-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;width:80%;overflow:visible}.loader,.loader div{position:absolute;height:36px}.loader div{width:30px;margin:0 10px;opacity:0;animation:move 2s linear infinite;-o-animation:move 2s linear infinite;-moz-animation:move 2s linear infinite;-webkit-animation:move 2s linear infinite;transform:rotate(180deg);-o-transform:rotate(180deg);-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg);color:#fff;font-size:3em}.loader div:nth-child(8):before{background:#db2f00}.loader div:nth-child(8):before,.loader div:nth-child(9):before{content:'';position:absolute;bottom:-15px;left:0;width:30px;height:30px;border-radius:100%}.loader div:nth-child(9):before{background:#f2f2f2}.loader div:nth-child(10):before{bottom:-15px;height:30px;background:#13a3a5}.loader div:after,.loader div:nth-child(10):before{content:'';position:absolute;left:0;width:30px;border-radius:100%}.loader div:after{bottom:-40px;height:5px;background:#39312d}.loader div:nth-child(2){animation-delay:.2s;-o-animation-delay:.2s;-moz-animation-delay:.2s;-webkit-animation-delay:.2s}.loader div:nth-child(3){animation-delay:.4s;-o-animation-delay:.4s;-webkit-animation-delay:.4s}.loader div:nth-child(4){animation-delay:.6s;-o-animation-delay:.6s;-moz-animation-delay:.6s;-webkit-animation-delay:.6s}.loader div:nth-child(5){animation-delay:.8s;-o-animation-delay:.8s;-moz-animation-delay:.8s;-webkit-animation-delay:.8s}.loader div:nth-child(6){animation-delay:1s;-o-animation-delay:1s;-moz-animation-delay:1s;-webkit-animation-delay:1s}.loader div:nth-child(7){animation-delay:1.2s;-o-animation-delay:1.2s;-moz-animation-delay:1.2s;-webkit-animation-delay:1.2s}.loader div:nth-child(8){animation-delay:1.4s;-o-animation-delay:1.4s;-moz-animation-delay:1.4s;-webkit-animation-delay:1.4s}.loader div:nth-child(9){animation-delay:1.6s;-o-animation-delay:1.6s;-moz-animation-delay:1.6s;-webkit-animation-delay:1.6s}.loader div:nth-child(10){animation-delay:1.8s;-o-animation-delay:1.8s;-moz-animation-delay:1.8s;-webkit-animation-delay:1.8s}@keyframes move{0%{right:0;opacity:0}35%{right:41%}35%,65%{-webkit-transform:rotate(0);transform:rotate(0);opacity:1}65%{right:59%}to{right:100%;-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}}@-webkit-keyframes move{0%,to{opacity:0}0%{right:0}35%{right:41%}35%,75%{-webkit-transform:rotate(0);transform:rotate(0);opacity:1}75%{right:59%}to{right:100%;-webkit-transform:rotate(-180deg);transform:rotate(-180deg);opacity:0}} </style> </head> <body class="ie8"> <div class="loader"> <div> C </div> <div> S </div> <div> S </div> <div> 动 </div> <div> 画 </div> <div> 吗 </div> <div> ? </div> <div> </div> <div> </div> <div> </div> </div> </body> </html> 演示地址:效果演示
代码 ·

JOS京东联盟API接口调用

突然突然突然,觉得做一个京东联盟API调用,也许,在微信QQ等场景是不会有被屏蔽的现象。 于是于是于是,就去研究了下京东联盟API,看着一堆接口,描述的确挺不错的,实际返回内容,可能不是你想的那样。。。 另外另外另外,京东联盟的API调用是需要一个token授权的,而且,这个token授权还需要登陆京东账户的,好在这个token的有效期是1年,在1年内,登陆一次就好!据说,修改过京东账户密码,是需要重新获取一次的! 好吧好吧好吧,那就来获取token授权码,想获取token,先得获取code,通过code,再获取token! 先看下官方说明: 再看下获取授权码的API请求链接: https://oauth.jd.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID& redirect_uri=YOUR_REGISTERED_REDIRECT_URI&state=YOUR_CUSTOM_CODE 对着参数列表,链接是这样的! https://oauth.jd.com/oauth/authorize?response_type=code&client_id=你的Appkey& redirect_uri=你的回调URL&state=随意写 改好后,复制黏贴到浏览器打开,就是一个授权登陆,登陆之后自动跳转到回调地址,参数中带有code值! 通过code值获取token,获取token值请求地址: https://oauth.jd.com/oauth/token?grant_type=authorization_code&client_id=你的Appkey& redirect_uri=你的回调URL&code=刚刚获取的code&state=随意写&client_secret= 你的appSecret 复制到浏览器打开,就可以获得需要的token。 另外,有一个叫做Refresh token的刷新token来延迟Access token的时效,也就是,如果获取一次,可以在有效期内延长时间,比如计划! 获取了Access token之后,就可以使用API接口了! 最后,只想说,京东联盟的API,始终没有阿里妈妈API来的方便! 参考官方文档://jos.jd.com/doc/channel.htm?id=152
代码 ·

让position:absolute超出DIV溢出隐藏

通常,为了让DIV子元素超出部分隐藏,都是在父元素设置overflow:hidden,这样即可防止子元素撑开父元素,使子元素能够溢出隐藏! 但是,对于position:absolute定位的子元素,仅仅使用overflow:hidden没办法将其溢出部分隐藏,需要在父元素上也加上一个定位position:relative;才能将含有 position:absolute属性的子元素进行溢出隐藏! 效果: 代码: <style> .box{     width:200px;     height:150px;     overflow:hidden;     border:2px solid #000;     float:left;     margin-right:20px; } .relative{     position:relative; } .div{     width:200px;     height:100px;     background:#FF5400;     margin-top:100px;     position:absolute; } .zi{     width:200px;     height:300px;     background:#FF0000; } </style> <div class=“box”> 高300px的子元素溢出隐藏 <div class=“zi”></div> </div> <div class=“box”> 不带relative <div class=“div”></div> </div> <br><br><br><br><br><br> <div class=“box relative”> 带上relative <div class=“div”></div> </div> 附: 1、CSS overflow属性,overflow 属性规定当内容溢出元素框时发生的事情,所有主流浏览器都支持 overflow 属性。任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。 这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。 默认值:visible hidden:内容会被修剪,并且其余内容是不可见的。 scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 inherit:规定应该从父元素继承 overflow 属性的值。 2、position属性,position 属性规定元素的定位类型。所有主流浏览器都支持 position 属性。任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。 这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。默认值:static absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 relative:生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20″ 会向元素的 LEFT 位置添加 20 像素。 static:默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 inherit:规定应该从父元素继承 position 属性的值。  
代码 ·

淘点金href值

最近一段时间,写一个淘点金店铺的集合页(//mall.moutaowang.com),在写链接的时候希望A标签能有站内链接href值,同时又需要点击能直接跳转淘点金链接!按照搜索引擎的观点,站内链接能提高爬虫,实际点击的效果是跳转到淘点金生成的链接! 部署完淘点金链接之后,发现如果有站内href值,淘点金无法生效,移除href值淘点金能成功生效。 淘点金组件部署: <a biz-sellerid=“1753012236” isconvert=“1” href=“//mall.moutaowang.com/shop/29-1.html” target=“_blank”>申美盛旗舰店</a> 淘点金click组件,需要两个属性biz-sellerid和isconvert 带有href值的直接链接到href的链接,不带href就可以链接到淘客链接!搜索引擎对JS无视,利用JQ过滤href值。 $(“a[isconvert^=’1′]”).each(function(i){ $(this).removeAttr(“href”); $(this).css(‘cursor’,’pointer’); 这样,查找 isconvert属性的A标签移出href,这样右击查看属性,地址(URL)就是淘点金生成的淘客链接了! 查看源码,href值就是站内的链接! 因为使用JQ,所以要在文档中引入JQ库!  
代码 ·
Zero零分
站龄14年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
458
文章
28
评论
27
分类
810
标签
7
友链
onlinelovesky 317355746 122551965@qq.com

百度广告