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

我如何保护MATLAB编译的.exe来自:

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

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

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

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

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

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

相关文章
相关标签/搜索