因此,我编写了一个VBA应用程序并锁定了VBAProject(不可查看)。但是,当然,用户仍然可以访问即时窗口(例如,如果他们打开另一个excel文件并单击我的VBAProject,即使已锁定)。尽管我的VBAProject被锁定并且不可见,但是用户在打开另一个excel的情况下仍可以访问我的即时窗口并尝试运行宏或输入一些代码来运行。当然,他们不知道我如何命名宏,但是可能可以运行代码来获取名称列表(过程名称)。那么-可以防止用户在我的VBAProject立即窗口中运行任何代码或调用任何宏吗?
简短的答案:使用Private
关键字。
更长的答案:保护源代码的唯一方法是永远不要释放它。
长答案是:可以创建一个VBA项目来主动阻止对VBA编辑器的访问。但这是不道德的,除项目密码外,它不保护您的源代码。
考虑一个古老的Workbook.Close
恶作剧,它在打开工作簿后立即将其关闭。用户所需要做的就是禁用宏,然后重新打开工作簿。对于您在VBA中编写的任何内容,也是如此。如果您依靠VBA来执行安全性操作,则在禁用宏时安全性将终止。
将其与使用项目密码获得的安全性进行比较。当然,对于大多数开发人员而言,密码破解都是微不足道的,但是这需要更多的精力,并且会阻止大多数临时用户。重要的是,它使您和您的软件保持一致。
关于使用外部工具代替VBA或与VBA结合使用,有一种讨论,但这比您提出的问题要复杂得多。如果恶意软件的行为像您建议的那样,这也将满足术语恶意软件的任何定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句