我与同事合作过一个excel插件我们想卖给我们的客户。它链接到云数据库。许可系统目前在VBA中编码,但是非常弱,潜在的黑客绕过VBA保护将能够禁用许可检查(代码保护不是这样的问题)。
我们一直在考虑开发.dll文件来检查许可证,但缺乏该领域的专业知识。
你有什么建议吗?
答案 0 :(得分:1)
其他人可以发布有关.NET许可解决方案....
多年前,Microsoft组件对象模型(COM)确实拥有许可证系统。一个用C ++编写代码,客户端使用COM来实例化你的组件。 COM许可机制是实现IClassFactory2
而不是IClassFactory
这是一个链接https://msdn.microsoft.com/en-us/library/windows/desktop/ms680095(v=vs.85).aspx
现在您可以说"但我的代码是在VBA中!?"。好吧,VBA不安全,工作簿可以被打破。问题是源是内部发货的。
编译.NET解决方案更好,但可执行文件是中间语言(IL),可以反向设计回源。与Java相同的问题,'字节代码'也可以进行逆向工程。
对于最强大的代码安全性,您需要编译为C ++。即使使用C ++,也有人说它仍然可以进行逆向工程。
最终的偏执是将您尊贵的代码置于Web服务之后,因此它永远不会出现在用户的计算机上。