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

sim*_*mon 7 matlab protection piracy piracy-prevention piracy-protection

如何保护MATLAB编译的.exe:

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

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

ang*_*nor 5

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

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

我们最终使用了一个涉及USB加密狗的解决方案.它即时执行加密/解密,并且或多或少地解决了上述复杂性.它工作在客户机/服务器的设置,也就是说,你可以在服务器上有一个USB加密狗,和客户端与服务器签出许可证和运行代码.但是,当时仅在Windows上支持完全加密.我不知道我是否应该在这里提到的公司名称上SO(我不附属于任何方式,但反正).我可以私下告诉你我们使用了什么,或者你可以稍微谷歌 - 这个市场上有其他选择.

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