如何保护MATLAB编译的应用程序免于分发?

时间:2012-10-24 06:56:34

标签: matlab protection piracy-prevention piracy piracy-protection

如何保护MATLAB编译的.exe:

  • 逆向工程
  • 未经授权的分发?

我应该使用哪些包装工具,保护工具等?

2 个答案:

答案 0 :(得分:5)

我之前遇到过这个问题。以下是一些想法:

  • MATLAB编译的二进制文件实际上是ZIP存档,在运行时可以解压缩(可能是用户可访问的临时文件夹或主文件夹)。
  • 文件本身使用AES加密,这是不理想的,因为理论上可以恢复密钥。
  • 上述内容使得使用基于用户的密钥对最终exe进行额外加密以限制重新分发变得毫无意义,因为解压缩的文件在运行时期间可用。从这个意义上讲,它仅相当于使用mcc进行保护。
  • 作为额外的问题:分发中的MEX文件未加密。您可以从MCR_CACHE和directly use it.获取mex文件。对于Java类也是如此。
  • 因此,除了加密可执行文件本身之外,还需要一个加密/解密由MATLAB可执行文件执行的磁盘写入/读取的解决方案
  • 显然,您需要能够指定要加密的磁盘访问权限 - 您希望用户能够提供输入数据并读取其输出
  • 理想情况下,此解决方案还会在内存中保留二进制文件的加密副本,并且只在需要时解密它们,即在执行/访问一段代码/数据时
  • 此外,解决方案应检测到代码是从调试器执行的,并在这种情况下关闭程序
  • 对提取密钥的加密过程进行逆向工程应该很困难。使用纯软件解决方案,始终可以(并且比使用硬件解决方案更容易)获取密钥。

我们最终使用了一个涉及USB加密狗的解决方案。它即时执行加密/解密,并且或多或少地解决了上述复杂性。它适用于客户端/服务器设置,即您可以在服务器上安装USB加密狗,客户端联系服务器以签出许可证并运行代码。但是,当时仅在Windows上支持完全加密。我不确定我是否应该在这里提到公司名称(我不是以任何方式附属于它,但无论如何)。我可以私下告诉你我们使用了什么,或者你可以稍微谷歌 - 这个市场上有替代品。

编辑我在原始陈述中犯了一个错误。存档确实被提取到MCR_CACHE目录,但文件是加密的。但是,这仍然不能阻止编译程序的重新分发。虽然脚本没有明文,但从这个意义上说,您的知识产权是安全的。有关MATLAB部署工具执行和不保护的更详细说明,以及有关该计划can be found here安全性的简短声明。

答案 1 :(得分:0)

有一个名为Taurus的商业实用程序可用于以pcoded和编译格式复制保护Matlab应用程序。 Taurus拥有桌面应用程序中的许多典型复制保护方案。请参阅http://www.algorithmprotection.com/index.php/component/content/article/34-products/46-taurus