【P文件破解】MATLAB P文件转变M文件

文章介绍了如何使用MATLAB的pcode功能对.m文件进行加密,以保护核心算法不被查看。加密后的p文件可在MATLAB环境中运行,但无法反编译。此外,还提到了加密文件夹、.mat文件以及GUI的方法。对于更高的安全性,可以使用MATLABCompiler生成独立的应用程序,但文件体积会显著增大。

 可通过pcode对MATLAB脚本文件进行加密处理,用于分享给第三方时,保护自己核心算法文件的所有权。
加密后的文件不改变程序功能,只是将程序设置为可使用但不可查看(包括加密者本人)。
代码一旦加密便不能被反编译。因此用户一定要注意备份源文件。
加密后的文件只能在MATLAB环境下使用。
注:执行中p文件优先于同名的m文件。

1 加密方法

MATLAB中对pcode的使用作了相关说明:

>> help pcode
 pcode - 创建对代码内容进行了模糊处理的可执行文件
    此 MATLAB 函数 对搜索路径中 .m 文件或文件夹中的代码进行模糊处理,并生成扩展名为 .p
    的 P 代码文件。例如,如果 item 是名为 mytest.m 的 .m 文件,则生成的文件是
    mytest.p。如果 item 是一个文件夹,则该文件夹中的所有脚本或函数文件都经过模糊处理并保
    存在当前文件夹中。在执行中 P 代码文件优先于对应的 .m 文件,即使已对 .m 文件进行了修改
    也是如此。

    pcode(item)
    pcode(item,"-R2022a")
    pcode(item,"-R2007b")
    pcode(item1,item2,...,itemN)
    pcode(___,"-inplace")

    输入参数
        item - 要模糊处理的 .m 文件或文件夹
            字符向量 | 字符串标量
        item1,item2,...,itemN - 要模糊处理的 .m 文件或文件夹的列表
            字符向量 | 字符串标量

    另请参阅 which

    已在 R2006a 之前的 MATLAB 中引入
    pcode 的文档
  • 操作

2.1 加密 .m文件

将下列函数保存为times.m文件:

function [f] = times(a,b)
f = a * b ;
end

此时对文件进行加密:

>> pcode times
>> 

加密后文件夹里出现p文件:

此时即使删去.m文件,p文件也能单独运行。
甚至更改p文件的名字,也能运行

>> times3(2,3)
ans =
     6

2.2 加密文件夹

pcode除了加密文件,还可以加密文件夹。
如图,在code文件夹里放置两个m文件:

将MATLAB工作目录设置为要加密文件夹的上一层

如下加密:

>> pcode code
>> 

加密之后,在加密文件夹同级目录下出现加密后的所有文件:

2.3 加密其它文件

如加密.mat文件

>> pcode matlab
>> 

2.4 加密GUI

GUI也是一种.m文件,直接对GUI的名字加密即可。加密方式同m文件。
加密之后用户只能运行GUI,但不能查看GUI后端代码。

2.5 其它加密方法

p文件被破解是可能的。使用 MATLAB Compiler 将源代码文件生成独立应用程序(.exe)会更安全。且能脱离MATLAB环境运行,但文件大小呈千倍放大。后续会介绍。

3 私信博主解密p文件

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值