0

我有一个要部署到客户端的 Excel 加载项。目前它是一个.xlam文件。我知道 Excel 插件可能不是分发软件的最佳方式,但这就是我所拥有的。我的问题是如何保护此加载项不被用于目标客户端以外的其他计算机?

我考虑了以下几点:

  1. 加载项检查某个不知名的位置是否存在文件。如果存在,请转到步骤 6
  2. 如果文件不存在,则生成包含一些随机字符的文件。并将其作为注册信息显示给用户。
  3. 然后用户联系我们获取激活码。
  4. 我们使用一些加盐哈希算法创建激活码并将其发送回用户。
  5. 用户将这个激活码输入到提示中。宏对其进行验证,然后将激活码存储在.xlam.
  6. 然后,宏检查受保护工作表中的激活代码是否对文件中的代码有效。如果不是,它会提示激活。
  7. 如果文件和激活匹配,则允许访问加载项中的功能。

我对上述想法的问题如下:

  1. 文件应该存储在哪里以及不允许当前用户在该位置创建文件的机器呢?
  2. 用户是否容易发现这些文件的存在?如果文件被复制到另一台计算机,加载项将对其进行验证并正常工作。
  3. 如果我们升级插件,它将丢失激活码。如果我们使用第二个文件而不是受保护的工作表来存储它,这实际上可以很容易地解决。
4

1 回答 1

2

创建需要安装密码(Setup Factory、InstallShield 等)的 XLA/XLAM 安装程序相当容易。但是,它们并不能防止随意复制 XLA/XLAM 本身。
但是 XLA/XLAM 的主要问题是它们很容易被破解,因此任何控制嵌入在 XLA/XLAM 本身中的激活的许可代码都是不安全的。根据您的目标受众,这可能会或可能不会很重要。
为了更强大的安全性,许可系统确实需要以更安全的语言进行编码,最好是完全编译的 DLL 或可能是混淆的 .NET 程序集。网络上有各种各样的预构建解决方案可以做到这一点。

于 2013-06-21T09:12:45.890 回答