通过重写c ++代码来防止Matlab代码的逆向工程? (在部署之前编译)

时间:2015-08-17 16:47:26

标签: matlab reverse-engineering

我的公司有一个用matlab编写的分析产品。我们想将其编译为可执行文件并出售给第三方。我们关注的一件事是代码被反向设计的可能性。

对编译的matlab代码进行反向工程是否很难? 与编译的c ++代码相比,这样做有多难?因此,如果我们需要将所有内容转换为c ++,我们会做出决定,这显然会花费大量的劳动时间。

1 个答案:

答案 0 :(得分:5)

MATLAB编译器(以及其他部署产品,例如Builder产品)不会像C或C ++编译器那样编译代码。

MATLAB编译器对您的代码进行加密和存档,并将其打包在一个瘦的可执行包装器中。您可以将这个提供给最终用户以及MATLAB Compiler Runtime(可以自由再分发,如果需要,也可以打包在可执行文件中)。

当最终用户运行应用程序时,可执行文件只是解压缩并解密MATLAB代码,并针对MCR而不是MATLAB本身执行它。

最终用户无法以解密的形式看到您的代码(但是,如果用户在临时目录中查找,则应用程序中包含的非代码文件将是。)

“逆向工程”代码将涉及破坏代码文件的加密 - 我相信使用的加密是AES256,一个强大的标准。我不是专家,但我的理解是,这将比C / C ++应用程序的反编译更难。

我也同意很多评论者的建议,即最好的想法是简单地制定许可限制并依赖于此。如果它让您放松心情,那么使用MATLAB Compiler成功部署和分发了大量商业应用程序。

编辑:R2015a用新产品MATLAB Compiler SDK取代了Builder产品。以上答案对于此产品保持不变。