最近看论文,很多开源程序被加密成p文件。由于论文写得往往跟程序里实际做的还是有一定差别,很想借鉴一下前人宝贵的经验。之前,网上有大神曾经公布过逆向p文件到m文件,据说p文件采用AES-128加密格式,知道秘钥就可以反向逆向工程。由于matlab公司要求下架,该公测网站已经下架了。不过,可能有些人之前可能把该网站克隆过,现在做有偿破解。
这里,主要在讨论如何加密matlab程序程p文件(并不是绝对安全)和逆向工程原理(探索中),看来目前matlab程序加密最安全的方式是生成可执行文件.exe。
一、生成p文件
加密很简单,可以直接在matlab指令窗口下输入:
pcode test.m (要加密文件)
会自动在您的目录下生成对应的“test.p” (加密文件,这也就是要逆向的文件)
二、逆向工程讨论
matlab的所谓加密文件,看官网回复信件,加密只是把代码进行了字母模糊处理,并非直接转成机器的二进制码,因此,exe文件要比p文件更安全一些。
这里提供一组,加密和逆向之后的文件(下载地址),以便对于逆向感兴趣的研究学习(仅限于研究,请遵照知识产权!)
注意:一般逆向之后的文件,所有的注释都没了,部分语句可能发生格式改变。
一点点补充,未完待续。。。
参考网站:
【1】https://blog.csdn.net/stereohomology/article/details/54893271
【2】https://sites.google.com/site/sippeyfunlabs/matlab-hacks/please-do-not-secure-your-password-in-matlab-p-code
【3】AES加密机制:https://blog.csdn.net/qq_38289815/article/details/80900813