过去,我多次使用“十六进制编辑器将DPB修改为DPx”来绕过旧的Excel VBA项目(.xls)上的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”键(“目标”)短。我在其他地方读过,在“目标”键较长的情况下,您可以将“虚拟”键填充到相同的长度,但是我找不到相反的情况该怎么办。

所以-我的问题;

  • 是否有人知道是否已应用使“十六进制编辑器”方法无效的补丁?
  • 当虚拟密钥比目标密钥长时,有人可以帮忙做什么?
  • 任何人都可以在此问题上提供任何更新的现场吗?

  • 编辑
    现在已经解决了这个问题(某种程度上),我想在这里添加一个摘要。

    尚未能够使它在Mac Excel 2011上正常工作。有关将文件从filname.xlsm更改为fielname.zip并再次返回的操作导致Excel 2011拒绝识别的Excel文件损坏。

    我通过将.xlsm文件名修改为.zip,用十六进制编辑器编辑vbaproject.bin文件中的DPB = AND GC =值,设法使它在旧的Windows计算机(XP / Excel 2007)上运行,在将.zip重命名回xlsm之前,请先将其保存在.zip文件中。我使用了Ricko在底部给出的“测试”示例,它与ONE CAVEAT一起使用-我必须“填充”我的GC值,使其与文件中原始的值相同。
    ORIGINAL:       GC="0F0DA36FAF938494849484"
    NEW:  (TEST)    GC="BAB816BBF4BCF4BCF4"  (from Ricko below)
    NEW:  (TEST)    GC="BAB816BBF4BCF4BCF40000"  (what i used and what worked)
    

    最佳答案

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

    有人制作了一个有效的vba代码,将所有excel文件(包括.xlsm(2007+版本))的vba保护密码更改为“宏”。您可以通过浏览他的代码来查看其工作原理。

    这是这个人的博客:http://lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html
    这是完成工作的文件:https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit

    从他的博客的先前帖子中粘贴:

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

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


  • 保存“vbaProject.bin”文件并退出十六进制编辑器。
  • 用已修改的文件替换现有的'vbaProject.bin'文件。
  • 将扩展范围从'.zip'更改回'.xlsm'
  • 现在,打开需要查看VBA代码的excel文件。VBA代码的密码
    只会是宏(如我在此处显示的示例所示)。
  • 关于vba - 通过十六进制编辑器的Excel VBA密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22663809/

    10-17 00:35