【发布时间】:2014-05-05 00:30:34
【问题描述】:
我过去曾多次使用“十六进制编辑器将 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= 和 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)
【问题讨论】:
-
不是 StackOverflow 问题。也许适合superuser.com
-
我在 StackOverflow 上询问的原因是因为在 StackOverflow 中可以找到有关此主题的许多有用信息。如果 Excel 中的 VBA 项目的情况发生了变化,我认为问题和后续答案出现在 SO 中是有意义的,因为有这么多相关的问题。如果它不能留在这里,那么我可以应付,但我确实认为它被问到(并在这里回答)是有价值的
-
FWIW 我在尝试 DPx 方法时遇到了同样的问题。
-
浏览,这个作品,一起打开运行,受文件保护。 Đức Thanh Nguyễn - Thank you
标签: vba excel hex-editors