代码之家  ›  专栏  ›  技术社区  ›  Jean-François Corbett

所以我的Excel VBA项目密码很容易被破解…还有什么其他选项?

  •  14
  • Jean-François Corbett  · 技术社区  · 16 年前

    现在我知道 easy workaround standard way 关于锁定和密码保护的VBA代码,我想继续探讨更有效的代码保护方法。我将向客户机交付一个基于Excel的工具,但我想要的不仅仅是简单的烦人类型保护,它只会阻止最懒惰的黑客。

    Excel VBA中是否有任何选项,或者我们真的需要编译一个单独的应用程序,而忽略基于Excel的界面?

    4 回复  |  直到 7 年前
        1
  •  8
  •   Charles Williams    16 年前

    最简单和最有效的方法是将您的VBA代码移动到一个VB6编译的COM/Automation加载项。

    或者,如果性能不重要,您可能需要考虑.NET(带模糊器)解决方案。

        2
  •  2
  •   Ross    11 年前

    另一个技巧是在Access中针对Excel对象编写代码,然后将访问文件放入.mde中。 http://www.blog.methodsinexcel.co.uk/?s=Access+MDB 可怜的,但是很低俗;-)

        3
  •  1
  •   Trashman    8 年前

    无需转换为其他语言-您应该能够通过 www.vbsobfuscator.com [注:链接到archive.org]

        4
  •  1
  •   NikoDeem    7 年前

    实际上, VBA混淆器 不要保护VBA代码,因为它们使算法的结构保持不变,可以追溯到原始算法,然后可以恢复。

    转换你的 VBA到VB6的代码 意味着您的应用程序将被限制为32位Excel(VB6没有64位版本),它可以通过VB解压程序进行解压,例如 https://www.vb-decompiler.org/

    转换你的 vba代码到vb.net 也不是一个完美的解决方案,因为.NET有一个“反射”机制,可以将.NET程序集的编译代码转换为原始源代码。

    你可以转换你的 到C/C++的VBA代码 这将是一种非常有效的保护形式,但是由于C/C++和VBA是非常不同的编程语言,VBA代码转换为C/C++是困难的,容易出错,而且通常不值得花费大量的时间和精力。

    有一个工具叫做 vba Excel编译器 ( http://vbacompiler.com )它转换了 将VBA代码转换为C语言代码,然后将其编译为DLL . 该工具声称提供的保护级别类似于将VBA代码转换成C/C++的级别,但没有这样一个过程所需的大量手工操作。

    推荐文章