Excel VBA密码通过hex编辑器
过去我多次使用“hex编辑器修改DPB到DPx”来绕过旧的Excel VBA项目(.xls)上的VBA项目安全性,所以我一定知道该怎么做,并知道我可以做到这一点。
不过,我昨天刚试过,发现它不再起作用。 我尝试使用Excel 2011(Mac)和Excel 2003(Windows),在这两种情况下,我得到了相同的行为;
打开VBA编辑器给出了一个消息,说该项目已经损坏,该项目将被删除。 然后,VBA编辑器打开,当然,所有的VBA都从模块和工作表中除去。
我已经尝试了这种方法: 有没有办法破解Excel VBA项目的密码? (即创build一个带有已知密码的电子表格,然后在相关字段中进行复制)
但是,发现在我的“虚拟”电子表格上创build的“GC”键的长度比我希望访问的电子表格(“目标”)上的“GC”键更短。 我曾经在其他地方看过,如果“目标”键长的话,你可以把“虚拟”键放到相同的长度,但是我没有办法find相反的情况下做什么。
所以 – 我的问题;
- 有没有人知道,如果一个补丁已经被应用,使“hex编辑器”方法无效?
- 任何人都可以帮助当假键比目标键更长时该怎么办?
- 任何人都可以提供任何更新现场到这个问题?
编辑现在解决了这个(在某种程度上)我想我会在这里添加一个总结。
我一直没有能够得到这个在Mac Excel 2011上工作。关于将文件从filname.xlsm更改为fielname.zip并再次返回的结果导致Excel 2011拒绝识别损坏的Excel文件。
我设法通过修改.xlsm文件名到.zip,用hex编辑器编辑vbaproject.bin文件中的DPB = AND GC =值,然后保存在将.zip重命名为xlsm之前.zip文件中。 我使用了Ricko在底部给出的“testing”例子,它和ONE CAVEAT一起工作 – 我必须“填充”我的GC值,使其与我的文件中的原始长度相同。
ORIGINAL: GC="0F0DA36FAF938494849484" NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below) NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked)
我有你的答案,因为我今天也有同样的问题:
有人提出了一个可用的vba代码,将vba保护密码更改为“macro”,适用于所有的excel文件,包括.xlsm(2007+版本)。 你可以通过浏览他的代码来看看它是如何工作的。
这是该家伙的博客: http : //lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html这是做这项工作的文件: https : //docs.google.com/file / d / 0B6sFi5sSqEKbLUIwUTVhY3lWZE0 /编辑
从以前的博客贴出他的博客:
对于Excel 2007/2010(.xlsm)文件,请执行以下步骤:
- 创build一个新的.xlsm文件。
- 在VBA部分,设置一个简单的密码(例如“macros”)。
- 保存该文件并退出。
- 将文件扩展名更改为“.zip”,由任何存档程序打开。
- find文件:'vbaProject.bin'(在'xl'文件夹中)。
- 从档案中提取它。
- 用hex编辑器打开刚刚提取的文件。
-
查找并复制参数DPB(引号中的值)的值,例如:DPB =“282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A”。 (为“macros”密码生成此值,可以使用此DPB值跳过步骤1-8)
-
对步骤4-7进行密码不明的文件(要解锁的文件)。
-
在第8步中复制的值中更改此文件中的DBP值。
如果复制值比encryption文件中的短,则应使用0(零)填充缺less的字符。 如果价值更长 – 这不是问题(按原样粘贴)。
-
保存'vbaProject.bin'文件并退出hex编辑器。
- 用已修改的文件replace现有的“vbaProject.bin”文件。
- 将“.zip”的扩展名更改回“.xlsm”
- 现在,打开你需要查看VBA代码的excel文件。VBA代码的密码就是macros(就像我在这里展示的例子)。
新版本,现在你也有GC =尝试用这些replaceDPB和GC
DPB =“DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2”GC =“BAB816BBF4BCF4BCF4”
密码将被“testing”
- 用hex编辑器打开xls文件。
- search
DPB
- 将
DPB
replace为DPx
- 保存存档。
- 在Excel中打开文件。
- 如果您收到任何消息框,请点击“是”。
- 从VBA项目属性中设置新密码。
- closures并再次打开文件,然后键入您的新密码解除保护。
检查http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/
如果您处理.xlsm
文件而不是.xls
,则可以使用旧方法。 我试图在.xlsm
使用DBP->DBx
方法多次修改vbaProject.bin
,但它没有工作,也没有改变DBP
值。 所以我感到非常惊讶,以下工作:
1.将.xlsm
保存为.xls
。
2.在.xls
上使用DBP->DBx
方法。
3.不幸的是,在使用修改的.xls
文件时可能会出现一些错误,我必须将.xls
保存为.xlsx
并添加模块,然后另存为.xlsm
。