通过十六进制编辑器Excel Excel VBA密码

问题描述:

我过去曾多次使用“十六进制编辑器修改DPB到DPx”来绕过旧Excel VBA项目(.xls)上的VBA项目安全性,所以我绝对知道该怎么做它并知道我可以做到这一点。通过十六进制编辑器Excel Excel VBA密码

但是我昨天刚试过,发现它不再起作用。我尝试使用Excel 2011(Mac)和Excel 2003(Windows),并且在两种情况下,我都得到了相同的行为;

打开VBA编辑器给出了一条消息,说该项目已损坏,该项目将被删除。 VBA编辑器随即打开,当然,所有VBA都从模块和工作表中除去。

我已经尝试了这种方法: Is there a way to crack the password on an Excel VBA Project?(即与已知的密码创建一个电子表格,然后在相关领域复制。)

但找到我的“假的“GC”的长度密钥创建'电子表格比我希望访问的电子表格(“目标”)上的“GC”键更短。我已经在其他地方读过,如果“目标”键长的话,你可以将“虚拟”键放到相同的长度上,但是我没有什么可以找到的,以说明在相反的情况下做什么。

所以 - 我的问题;

  • 是否有人知道是否应用了使“十六进制编辑器”方法无效的修补程序?
  • 任何人都可以帮助当假键长于目标键时该怎么办?
  • 其他人可以提供任何更新的现场到这个问题?

编辑 现在已经解决了这个(在某种程度上)我想我在这里添加一个总结。

HAVE NOT之所以能得到这个在Mac的Excel工作有关更改从filname.xlsm该文件fielname.zip 2011年的东西,然后再返回导致损坏的Excel文件,该文件的Excel 2011拒绝承认。

通过将.xlsm文件名修改为.zip,编辑vbaproject.bin文件中的DPB = AND GC =值,可以通过修改旧的Windows计算机(XP/Excel 2007)十六进制编辑器,然后将该文件保存在.zip文件中,然后将.zip重命名为xlsm。我使用了Ricko在底部给出的“测试”示例,它与ONE CAVEAT一起工作 - 我必须'填充'我的GC值,使其与我的文件中的原始长度相同。

ORIGINAL:  GC="0F0DA36FAF938494849484" 
NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below) 
NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked) 
+0

不是*问题。也许适用于http://superuser.com/ – Selcuk

+3

我在*上询问的原因是因为关于此主题的许多有用信息可以在*中找到。如果Excel中的VBA项目的事态发生了变化,我认为这个问题和随后的答案在SO中是有意义的,因为在那里有很多相关的问题。如果它不能留在这里,那么我可以应付,但我确实认为它有价值( – Andrew

+0

FWIW)在尝试DPx方法时遇到同样的问题。 –

我有你的答案,因为我只是今天同样的问题:

有人提出,改变了VBA保护密码为“宏”的工作VBA代码,所有的Excel文件,其中包括.XLSM (2007+版本)。你可以通过浏览他的代码来了解它是如何工作的。

这家伙的博客:http://lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html 下面是做工作文件:https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit

从一前一后,从他的博客中粘贴:

对于Excel 2007/2010(。xlsm)文件执行以下步骤:

  1. 创建一个新的.xlsm文件。
  2. 在VBA部分,设置一个简单的密码(例如“宏”)。
  3. 保存文件并退出。
  4. 将文件扩展名更改为'.zip',由任何存档程序将其打开。
  5. 找到文件:'vbaProject.bin'(在'xl'文件夹中)。
  6. 从档案中提取它。
  7. 用十六进制编辑器打开刚刚提取的文件。
  8. 查找并复制参数DPB(引号中的值)的值,例如: DPB =“282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A”。 (此值为“宏”密码生成,您可以使用此DPB值跳过步骤1-8)

  9. 对于密码未知的文件(要解锁的文件)执行步骤4-7。在价值这个文件

  10. 变化DBP值,可以在第8步

    如果复制值比加密文件更短,你应该填充缺失的字符0(零)已复制。如果价值更长 - 这不是问题(按原样粘贴)。

  11. 保存 'vbaProject.bin' 文件,并退出十六进制编辑器。

  12. 用已修改的文件替换现有的'vbaProject.bin'文件。从“.ZIP”回“.XLSM”
  13. 现在
  14. 变化extention,打开Excel文件,你需要看到在VBA代码。对VBA代码的密码 将只是宏(如上例我在这里展示)。
+0

这比“神圣的银行转帐”更好,彼得波波夫牧师承诺我会收到。谢谢。 –

+0

GC也必须复制,否则这不起作用。 – LucasSeveryn

+0

我会继续来自LucasSeveryn和Ricko的评论。截至2015年3月,它既需要AND,博客上面列出的文档也没有被更新来执行此操作(即,除非您更新以编辑GC,否则它将不起作用)。此外 - 这不适用于Excel 2011(适用于Mac)。 – Andrew

如果您使用.xlsm文件而不是.xls,则可以使用旧方法。我试图修改vbaProject.bin.xlsm几次使用DBP->DBx方法通过它没有工作,也改变值DBP没有。所以我非常惊讶,以下工作:
1.保存.xlsm.xls
2.在.xls上使用DBP->DBx方法。
3.不幸的是,当使用修改的.xls文件时可能会发生一些错误,我必须将.xls保存为.xlsx并添加模块,然后另存为.xlsm

  1. 用十六进制编辑器打开xls文件。
  2. 搜索DPB
  3. 更换DPBDPx
  4. 保存文件。
  5. 在Excel中打开文件。
  6. 如果您收到任何消息框,请点击“是”。
  7. 从VBA项目属性中设置新密码。
  8. 关闭并再次打开文件,然后键入您的新密码以取消保护。

检查http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/

新版本,现在你也有GC = 尝试与

DPB = “DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2” GC = “BAB816BBF4BCF4BCF4”

更换两DPB和GC

密码将被“测试”

+1

感谢提示Ricko - 你说得对。如果未复制GC,IT将无法工作。我完全按照您在此处添加的方式进行复制,并且它在Excel 2007上运行得很好。 – Andrew

+2

这是否仍然有效?我试图改变我的GC和DPB,但有两个问题... 1. bin文件中的两个值的大小都不一样,因此输入这些需要的文件大小以进行更改。 2. DPB值不以“结尾,但以它开头......它看起来像这样:'Name =”VBAProject“.. HelpContextID =”0“.. VersionCompatible32 =”393222000“.. CMG =”5250FEAE54B254B251B751B7“ ..DP =“A4A60800084F254F25B0DB50250596D1EDAC ....,”' –

+1

如果粘贴值比现有值短,请用零填充间隔 – edokan