使用Matlab pcode的风险

网上有很多人说有见过Matlab pcode的decompiler,但我至今没有找到可以直接下载使用的工具,其实pcode是把.m预解析了一下,并且用AES来加密。但尽管如此,使用Matlab pcode有很大的被破解的风险。Matlab允许对pcode进行单步跟踪,我们可以step in到任何.p调用过的.m文件。即如果我们写了一个用内置solve函数解一元二次方程组的程序并编译为.p文件,那我们就会直接step in到Matlab的内置solve函数里,直接看到了我们在解的方程的表达式,从而暴露了我们的目的。

如果我们几乎没有调用过Matlab内置的函数,把所有使用到的.m文件都编译为.p文件,这样便无法得知函数之间的调用关系。但是依然可以通过单步跟踪来观察变量数值的变化,来猜测程序的目的,尤其是对于那些对程序本身功能就很熟悉的人。有一个解决办法,把所有.m的代码都放在一行里,并且在把需要的结果数据传输出去之后,clear一下,这样编译成.p之后进行debug,就看不到任何数据和变量名了。


如何编译生成.p:

>> pcode filename

如何设置断点:

>> dbstop in filename at line

运行filename进入debug模式:K>>

再之后可以用F11来step in,用F10来step out,最后可以用dbquit命令来退出debug模式。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值