有没有办法破解密码的Excel的VBA项目

我一直要求更新Excel 2003中的宏,但VBA项目有密码保护,而且似乎还有欠缺,没有人知道密码。 有没有对VBA项目删除或破解口令的方法是什么?
本文地址 :CodeGo.net/60693/ 
------------------------------------------------------------------------------------------------------------------------- 
1.  是的,有,只要你一个 .xls 格式的电子表格(默认为Excel至2003年)。对于Excel 2007年起,默认为 .xlsx ,这是一个相当安全的格式,并且将无法正常工作。 由于TREB说,这是一个如此简直是换出的十六进制编辑器输入的密码(见十六进制编辑器适用于Windows).a步一步的例子: 创建一个新的简单的excel文件。 在VBA部分 CodeGo.net,设置简单的密码(例如-1234)。 保存文件并退出。然后检查文件的大小-见Stewbob的疑难杂症 打开刚才用十六进制编辑器创建的文件。 复制开始使用下列键的行:
CMG=....
DPB=...
GC=...
优先次备份的excel文件你不知道的VBA密码,然后用十六进制编辑器打开它,并粘贴在虚拟文件上拷贝线路。 保存Excel文件并退出。 现在,打开Excel文件,你需要看到的VBA代码英寸的VBA代码的密码 将仅仅是1234(如例子中我展示在这里)。 如果你需要使用Excel 2007或2010的工作,还有其他的答案在下面这也许会有帮助,尤其是这些:1,2,3。 
2.  还有另一种(更简单)溶液,没有大小的问题。这种方法今天(于2003年的XLS文件,使用Excel 2007),并 备份的xls文件 使用十六进制编辑器,找到DPB=...部分 改变DPB=...字符串DPX=... 在Excel中打开xls文件 打开VBA编辑器(Alt +F11) magic: Excel中发现一个无效的密钥(DPX),并查询您是否要继续加载项目(基本上忽略了保护) 您将能够覆盖密码,所以将其更改为可以 保存的xls文件* 关闭并重新打开并正常工作的VBA魔法! *注意:请确保您已经将密码更改为一个新的值,否则,你打开电子表格Excel将报告错误(意外错误)接下来的,那么当你访问的VBA模块列表中你会看到现在的源模块但试图打开窗体/代码/等时收到另一个错误。对此,回到VBA项目属性和密码设置为一个新值。保存并重新打开Excel,你应该是好去! 
3.  科林・皮卡德具有优良的答案,但有一个“注意”与此有关。在一些情况(我还没有想通了还),其中的总长度“CMG=........ GC=....”文件中的条目是不同的从一个excel文件到下一个。在情况下,这个项目将是137字节,而在其他这将是143个字节。 137字节长度为奇数之一,如果发生这种情况,当你创建了'1234'你的密码文件,只需创建另一个文件,它应该跳转到143字节的长度。 如果您尝试字节数错误粘贴到该文件中,你会当您尝试打开与Excel文件丢失VBA项目。 编辑 这是无效的为Excel 2007/2010文件。该标准。xlsx文件格式实际上是包含子文件夹的格式,布局,内容等,存储为XML数据。zip文件.a个不受保护的Excel 2007文件,你可以改变的。xlsx扩展名改为。压缩,然后打开zip文件,并期待通过所有的XML数据。这是非常简单的。 但是,当你的密码保护的Excel 2007文件,整个的zip(。XLSX)文件实际上是RSA加密。它不再是可以更改扩展名改为。zip和浏览文件内容。 
4.  值得指出的是,如果你有一个Excel 2007(XLSM)文件,那么你可以简单地把它保存在其他的答案中概述的Excel 2003(xls)文件。 
5.  您是否尝试过在简单地打开它们 我有一个类似的问题前,发现Excel和Calc的不理解对方的加密,以及有关一切都那么允许直接访问而已。 这是前一段时间,因此,如果这不只是我的一部分,也可能已被修补。 
6.  倘若你的块 CMG="XXXX"\r\nDPB="XXXXX"\r\nGC="XXXXXX" 在你的'已知的密码'文件是不是在“未知密码”的文件,垫十六进制字符串现有的块与尾随零,达到正确的长度短。 例如 CMG="xxxxxx"\r\nDPB="xxxxxxxx"\r\nGC="xxxxxxxxxx" 在未知的密码文件,应被设置为 CMG="XXXX00"\r\nDPB="XXXXX000"\r\nGC="XXXXXX0000" 保存文件长度。 我也曾经这样在使用。XLA(97/2003格式)的Office 2007文件。 
7.  科林・皮卡德大多是正确的,但不要在“打开权限密码”保护的VBA密码保护,这不同于,是为Office 2003和2007(适用于Office 2007的文件。压缩整个文件,查找vbaProject.binzip内)。并在技术上要编辑的文件的正确方法是像CFX观众开辟了正确的流。当然,如果你只是更换字节,普通的老式二进制编辑器可以正常工作。 顺便说一句,如果你想知道有关这些字段的确切格式,他们现在: 
8.  汤姆-我最初做了一个男生的错误,因为我没看的字节大小,而是我复制并从“康联”成立,随后进入贴。这是两个文件,虽然在两个不同的文字大小,而我失去了VBA项目,就像Stewbob警告。 采用HXD,有一个计数器轨迹多少文件,你选择。复制从CMG开始,直到粘贴到锁定的文件时,计数器读取8F(十六进制为143),同样-我结束了两倍数量的“...”在粘贴的结束,这看上去很奇怪,觉得几乎不自然,但它的工作。 我不知道这是否是至关重要的,但我确信我闭嘴两个十六进制编辑器并重新打开该文件在Excel之前,练成了下来。然后,我不得不去通过打开VB编辑器,进入的VBProject属性,并在“新”输入密码来解锁代码。 我希望这有助于。 
9.  HREF=“REL=”nofollow的“>让先进的办公密码断路器和先进的办公密码恢复产品可能适用于这种情况下,只要是在Office 2007或之前创建的。 
10.  如果该文件是一个有效的zip文件(前几个字节 50 4B -用于格式如 .xlsm ),然后解压缩文件,并寻找子文件 xl/vbaProject.bin 。这是一个循环流化床文件就像 .xls 文件。按照说明为XLS格式(适用于子文件),然后只是压缩的内容。 为XLS格式,你可以在这个岗位遵循的。我个人更喜欢搜索的 DPB= 块和替换文本
CMG="..."
DPB="..."
GC="..."
有空格。这避免了循环流化床容器大小的问题。 
11.  保护是Excel中的简单。 加载Excel中你最喜欢的调试器(Ollydbg的是我的首选工具),发现执行函数的代码,并修复它总是返回true,这应该让你访问该宏。 
12.  我的工具,VbaDiff,直接从文件中读取的VBA,所以你它从大多数办公恢复受保护的VBA代码,而不诉诸一个十六进制编辑器。
本文标题 :有没有办法破解密码的Excel的VBA项目?
本文地址 :CodeGo.net/60693/ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
excel密码破解详细教程,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 _
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值