vba

您所在的位置:网站首页 vba代码编辑器套装怎么用 vba

vba

2024-07-10 15:13| 来源: 网络整理| 查看: 265

过去,我曾多次使用“十六进制编辑器将 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 文件损坏,Excel 2011拒绝承认。

通过将 .xlsm 文件名修改为 .zip,使用十六进制编辑 vbaproject.bin 文件中的 DPB= AND GC= 值,我确实设法使其在旧 Windows 计算机 (XP/Excel 2007) 上运行编辑器然后将其保存在 .zip 文件中,然后将 .zip 重命名回 xlsm。我使用了 Ricko 在底部给出的“测试”示例,它与一个警告一起工作 - 我必须“填充”我的 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 保护密码更改为“macro”。你可以通过浏览他的代码来了解它是如何工作的。

这是这个人的博客: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).

保存“vbaProject.bin”文件并退出十六进制编辑器。

将现有的“vbaProject.bin”文件替换为修改后的文件。 将扩展名从“.zip”更改回“.xlsm” 现在,打开您需要查看 VBA 代码的 Excel 文件。VBA 代码的密码 只是宏观的(如我在这里展示的示例)。

关于vba - 通过十六进制编辑器的 Excel VBA 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22663809/



【本文地址】


今日新闻


推荐新闻


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