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

您所在的位置:网站首页 二进制存档如何修改密码保护 通过十六进制编辑器的Excel VBA密码

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

2024-07-17 01:39| 来源: 网络整理| 查看: 265

过去,我多次使用"十六进制编辑器将DPB修改为DPx"来绕过旧的Excel VBA项目(.xls)上的VBA项目安全性,因此我绝对知道该怎么做并且知道自己可以做到。

但是我昨天才尝试做,发现它似乎不再起作用。我尝试同时使用Excel 2011(Mac)和Excel 2003(Windows),在两种情况下,我都具有相同的行为。

打开VBA编辑器将显示一条消息,指出该项目已损坏,该项目将被删除。然后,将打开VBA编辑器,并且可以肯定的是,已从模块和工作表中剥离了所有VBA。

我试过这种方法: 有没有办法破解Excel VBA项目上的密码? (即,使用已知密码创建电子表格,然后在相关字段之间进行复制)

但是发现在我的"虚拟"电子表格上创建的" 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值以使其与文件中原始长度相同。

123ORIGINAL:       GC="0F0DA36FAF938494849484" NEW:  (TEST)    GC="BAB816BBF4BCF4BCF4"  (from Ricko below) NEW:  (TEST)    GC="BAB816BBF4BCF4BCF40000"  (what i used and what worked) 相关讨论 不是StackOverflow问题。 也许适合superuser.com 我之所以问StackOverflow,是因为有关此主题的许多有用信息都可以在StackOverflow中找到。 如果关于Excel中的VBA项目的事务状态已发生变化,我认为将问题和后续答案包含在SO中是有意义的,因为SO中有许多相关问题。 如果它不能留在这里,那么我可以应付,但是我确实认为被问到(并在这里回答)很有价值 FWIW尝试DPx方法时遇到相同的问题。

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

有人制作了一个有效的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中复制的值。

If copied value is shorter than in encrypted file you should populate missing characters with 0 (zero). If value is longer - that is not a problem (paste it as is).

BLOCKQUOTE>

保存" vbaProject.bin"文件,然后从十六进制编辑器退出。

用修改后的文件替换现有的" vbaProject.bin"文件。 将扩展名从" .zip"更改回" .xlsm" 现在,打开需要查看VBA代码的excel文件。VBA代码的密码 只会是宏(如我在此处显示的示例所示)。 相关讨论 彼得·波普波夫牧师向我保证,这将比"神圣的银行转账"更好。谢谢。 GC也必须被复制,否则将无法正常工作。 我将赞同卢卡斯·塞弗林(LucasSeveryn)和里科(Ricko)的评论。截至2015年3月,它需要同时更新Blog上面列出的文档和文档来完成此操作(即,除非您也对其进行更新以编辑GC,否则它将无法正常工作)。还-这不适用于Excel 2011(对于Mac)。 我有两个问题:1)XLSB也可以使用吗? 2)您表示0(零)是什么意思?十六进制值30或十六进制值00(请记住,正在使用十六进制编辑器)吗?

新版本,现在您还有GC = 尝试用那些替代DPB和GC

DPB =" DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC =" BAB816BBF4BCF4BCF4"

密码将为"测试"

相关讨论 感谢您的提示Ricko-您绝对正确。如果不复制GC,它将无法正常工作。我完全按照您在此处添加的内容进行了复制,它在Excel 2007上非常有用。 这仍然有效吗?我试图更改我的GC和DPB,但是有两个问题……1. bin文件中的两个值的大小都不同,因此,请输入需要更改的文件大小。 2. DPB值不以"结尾,而是以...开头...看起来像这样:Name="VBAProject"..HelpContextID="0"..VersionCompatible32="393222000"..CMG="5250FEAE54B254B251B751B7"..DPB="A4A60800084F254F25B0DB50250596D1EDAC....?.......?... 如果粘贴的值比现有的值短,则用零填充空白

使用十六进制编辑器打开xls文件。 搜索DPB 将DPB替换为DPx 保存存档。 在Excel中打开文件。 如果出现任何消??息框,请单击"是"。 在" VBA项目属性"中设置新密码。 关闭并再次打开文件,然后输入新密码以取消保护。

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

如果处理.xlsm文件而不是.xls,则可以使用旧方法。我试图使用DBP->DBx方法多次修改.xlsm中的vbaProject.bin,但也没有效果,更改DBP的值也无效。所以我很惊讶以下工作: 1.将.xlsm另存为.xls。 2.在.xls上使用DBP->DBx方法。 3.不幸的是,使用修改后的.xls文件时可能会出现一些错误,我不得不将.xls另存为.xlsx并添加模块,然后另存为.xlsm。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3