快速加密MATLAB代码:pcode方法与技巧

图图今天教大家如何利用P代码对MATLAB的源代码(.m文件)进行加密。

MATLAB代码加密

我们为什么要对代码进行加密? 大多数的MATLAB用户都在进行复杂算法的设计,或者非常个性化的GUI软件开发,这一过程通常非常费时费力,甚至需要严格保密。如果我们想让其他人用上自己开发的代码(所实现的功能),又不想让对方知道源代码,就需要对代码进行加密。

MATLAB出了2种加密.m文件的解决方案:

A 生成独立应用程序

使用MATLAB Compiler将源代码文件生成独立应用程序(.exe),将.exe分发给其它人。

B 生成P代码

将某些或全部源代码文件转换为一种名为P代码的文件(文件扩展名为 .p)。P代码内的内容是无法查看的。

A方案的优点是安全性高,但是打包的独立应用程序安装包非常大,需要安装匹配MATLAB版本的runtime环境才能运行(runtime需要另外安装,通常有1G左右大小),且并非所有的内容都能很好的打包,比如图图的FigureBest软件天生不能打包成.exe文件运行。这样打包的应用非MATLAB用户基本无法使用。

B方案的优点是非常灵活,可以加密部分代码或者全部代码(下方展示了部分加密的代码),无论是加密还是最终运行速度都极快。但是缺点也很明显,就是安全性比较低,破解是可能的。

P代码

本期推送里仅教大家使用P代码进行加密,关于MATLAB Compiler的使用后面有机会再补充。

p意思是预解析(preparsed version)。即将.m文件里的代码预解析一遍,生成p文件。当再次调用时,实际上调用的就是.p文件。当MATLAB将某文件转换为p代码文件时,该文件将进行模糊处理而非加密。虽然.p文件中的内容难以理解,但不应将其视为安全的。(真正的大大大大佬是可以破解的,不过可能会被M公司狠狠地处理;对于我们这些小白就和加密是一样的。)

p代码转换相比打包成独立应用要简单和方便很多,如果你只是想小范围的分享你的代码又不想别人知道你的实现细节,就可以考虑用p代码的形式实现。

p代码如何生成

m代码到p代码的转换是通过调用pcode函数实现。

pcode(fun)

对 fun.m 中的代码进行模糊处理并生成名为 fun.p 的文件,即所谓的p文件。如果fun是一个文件夹,则该文件夹中的所有脚本或函数文件都在p文件中进行模糊处理。MATLAB 在当前文件夹中创建p文件。原始的 .m 文件或文件夹可以位于搜索路径上的任何位置。

pcode(fun1,...,funN)

从列出的文件创建p文件。如果输入了任意个文件夹,则 MATLAB 为各文件夹所包含的每个 .m 文件创建一个p文件。

pcode(fun,'-inplace')

在脚本或函数文件所在的同一个文件夹中创建p文件。

p代码如何调用

调用方式和.m文件一模一样,只不过不能直接双击打开.p文件。创建好.p文件后将同名的.m文件移出+备份以避免冲突!

注意:在执行中 P 文件优先于对应的 MATLAB 代码文件。

- 公众号后台回复`全家桶`获取所有作品;

- 图图的MATLAB交流群:1129425848;

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空