我过去曾多次使用"十六进制编辑器将DPB修改为DPx",以绕过我的旧Excel VBA项目(.xls)的VBA项目安全,所以我肯定知道如何做,也知道自己能做到这一点。
然而,我昨天刚刚尝试这样做,发现它似乎不再起作用了。 我尝试使用Excel 2011(Mac)和Excel 2003(Windows),在这两种情况下,我得到了同样的行为。
打开VBA编辑器时,有一条消息说项目已损坏,项目将被删除。然后打开VBA编辑器,果然,所有的VBA都被从模块和工作表中剥离出来。
我已经试过这种方法。 https://stackoverflow.com/questions/1026483/is-there-a-way-to-crack-the-password-on-an-excel-vba-project/1038783#1038783(即用已知的密码创建一个电子表格,然后将相关字段复制过去)
但发现在我的电子表格上创建的GC键的长度比我想访问的电子表格(目标)上的GC键短。我在其他地方读到过,在"目标"键较长的情况下,你可以把"假"键垫到相同的长度,但我没有找到任何东西可以说明在相反的情况下该怎么做。
因此,我的问题是。
编辑 现在已经解决了这个问题(在某种程度上),我想我要在这里添加一个总结。
我没有***能够让这个问题在Mac Excel 2011上工作。 把文件从filname.xlsm改成fielname.zip再改回来,结果是Excel 2011拒绝识别一个损坏的Excel文件。
我设法在一台旧的windows机器(XP/Excel 2007)上将.xlsm文件名修改为.zip,用十六进制编辑器编辑vbaproject.bin文件中的DPB=和GC=值,然后在将.zip文件重命名为xlsm之前将其保存在.zip文件中。 我使用了Ricko在底部给出的"测试"例子,它在一个注意事项下工作--我不得不'pad'出我的GC值,使其与我文件中的原始值长度相同。
ORIGINAL: GC="0F0DA36FAF938494849484"
NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below)
NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked)
我有你的答案,因为我今天刚遇到同样的问题。
有人做了一个可行的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.6.从档案中提取。 7.7.用十六进制编辑器打开你刚刚解压的文件。 8.找到并复制参数DPB的值(引号中的值),例如。 DPB="282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A"。(这个值产生于'宏'密码。你可以使用这个DPB值来跳过1-8步)
9.对未知密码的文件(你想解锁的文件)执行步骤4-7。 10.将该文件中的DBP值改为你在步骤8中复制的值。
如果复制的值比加密文件中的短,你应该用0(零)来填充缺少的字符。如果数值较长,那就没有问题(按原样粘贴)。
11.保存'vbaProject.bin'文件并退出十六进制编辑器。 12.用修改后的文件替换现有的'vbaProject.bin'文件。 13.将扩展名从'.zip'改回'.xlsm'。 14.现在,打开你需要看到的VBA代码的Excel文件。VBA代码的密码是 就像我在这里展示的例子一样)。
1.用十六进制编辑器打开xls文件。 2.搜索 "DPB"。 3.将 "DPB "替换为 "DPx"。 4.保存文件。 5.在Excel中打开文件。 6.6.如果你收到任何信息框,点击"是"。 7.从VBA项目属性中设置新的密码。 8.8.关闭并再次打开文件,然后输入新的密码来解除保护。
检查 http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/