【内卷到底】Excel催化剂免费提供VBA解密功能,除打开密码外,其余所有密码均可秒级破解

2022-03-31 09:06:45 浏览数 (1)

VBA密码破解,在一般地插件里,都是收费方式提供,Excel催化剂,全功能免费,最新推出VBA解密功能,还要公开核心源代码,这免费程度够诚意了么?

密码相关的历史推文:

第26波-正确的Excel密码管理之道

第123波-批量创建或取消Excel文件打开密码

Excel催化剂开源第18波-工作表、工作薄保护破解

功能展示

使用方法很简单,点击菜单后,跳出选择文件对话框,选择破解的文件即可,一次可选择多个文件,文件范围为:xls/xla/xlam/xlsm四种都可以。

中途会跳出这个错误弹窗,选择是即可,原因是破解后的文件用代码来打开,不能屏蔽此错误,手动选择【是】后,程序另存为文件后,再手动打开文件就不报错了。

破解后不会覆盖源文件,生成新的文件,保证不破坏源数据是数据处理最基本的操作需知。

因本破解方法是使用07版格式的文件破解方法,故遇到03版本格式程序自动打开后转为07版本格式,再进行破解,破解后的文件名也是07版本的,但07版本兼容性更好,破解也只是为了看源代码,不影响使用。

核心源代码公布

可能微软是基于推动其他企业级产品的销售的需求,虽然知道有破解的漏洞,但这么多年也没有意愿去修复它,这个破解的原理,之前发文过介绍过一个开源小工具,现Excel催化剂也是基于其开源代码来完成的。

VBA工程密码破解分享,同步推荐两款VBA代码助手工具

核心代码为:445042改为444278

代码语言:javascript复制
            var binPath = Path.Combine(tmpDir, @"xlvbaProject.bin");

            if (File.Exists(binPath))
            {
                try
                {
                    byte[] buf = File.ReadAllBytes(binPath);

                    // Encodes the binary as hex, which allows us to edit the three hex couplets below
                    var str = new SoapHexBinary(buf).ToString();

                    // Find the VBA protection key ("DPB") and replaces it with a nothing key ("DBx")
                    // This causes the VBA editor to go through recovery and delete protection
                    str = str.Replace("445042", "444278");

                    // Writes the hex back to binary into the vbaProject.bin file
                    File.WriteAllBytes(binPath, SoapHexBinary.Parse(str).Value);
                }
                catch
                {
                }
            }

VBA的未来

VBA不死,这个已经不是传说,的确这么多年,生态不断,但有它来做产品级的方案,破解这东西也是难以避免的,就算不被破解,用它来做复杂的应用,也是很吃力,VBE编辑器落后,VBA语言无生态,一些现代语言很简单实现的,落到它头上,就无比复杂。

当然,如果纯粹操作Excel等OFFICE对象来说,简单的套几个循环、选择结构,把录制宏的代码串起来一下,还是可行的。

在笔者未来有余力,可以给大家更多普及在.NET环境下的插件开发技术,特别是使用ExcelDNA框架的开发。当然最后的.NET语言当然是选择C#,没有C#,代码现成摆在面前,想抄也抄不动,例如本篇的VBA代码破解,也是从老外写的C#开源代码中抄到手的。

0 人点赞