限制Excel加载项分发

时间:2013-06-21 08:53:29

标签: excel-vba excel-addins vba excel

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

我考虑了以下内容:

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

    1. 文件应该存储在哪里以及那些不允许当前用户在该位置创建文件的机器呢?
    2. 用户是否容易发现这些文件的存在?如果文件被复制到另一台计算机,则加载项将验证它并且没有任何问题。
    3. 如果我们升级加载项,它将丢失激活码。如果我们使用第二个文件而不是受保护的工作表来存储它,这实际上很容易修复。

1 个答案:

答案 0 :(得分:2)

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