最近看论文,很多开源程序被加密成p文件。由于论文写得往往跟程序里实际做的还是有一定差别,很想借鉴一下前人宝贵的经验。之前,网上有大神曾经公布过逆向p文件到m文件,据说p文件采用AES-128加密格式,知道秘钥就可以反向逆向工程。由于matlab公司要求下架,该公测网站已经下架了。不过,可能有些人之前把该网站克隆过,去做有偿破解。
这里,主要在讨论如何加密matlab程序程p文件(并不是绝对安全)和逆向工程原理(探索中),看来目前matlab程序加密最安全的方式是生成可执行文件.exe。
一、生成p文件
加密很简单,可以直接在matlab指令窗口下输入:
pcode test.m (要加密文件)
会自动在您的目录下生成对应的“test.p” (加密文件,这也就是要逆向的文件)
注意:P文件的运行速度跟m文件运行速度一样,并不是网上说的提前做了预处理,它只是变成了人不能识别的字母形式,其实还是可以通过某种途径反向解析出来。
Building a Content Obscured Format with P-Code
================================================================================
A P-code file behaves the same as the MATLAB source from which it was produced.
The P-code file also runs at the same speed as the source file. P-code files
are purposely obfuscated. They are not encrypted. While the content in a .p
file is difficult to understand, it should not be considered secure. It is
not recommended that you P-code files to protect your intellectual property.
二、逆向工程讨论
matlab的所谓加密文件,看官网回复信件,加密只是把代码进行了字母模糊处理,并非直接转成机器的二进制码,因此,exe文件要比p文件更安全一些。
这里提供一组,加密和逆向之后的文件(下载地址 提取码:7zqr),以便对于逆向感兴趣的研究学习(仅限于研究,请遵照知识产权!)
注意:一般逆向之后的文件,所有的注释都没了,部分语句可能发生格式改变。
为了科研探讨经验!
一点点补充,未完待续。。。
参考网站:
【1】https://blog.csdn.net/stereohomology/article/details/54893271
【3】AES加密机制:https://blog.csdn.net/qq_38289815/article/details/80900813
【4】AES机密过程:
https://blog.csdn.net/qq_38289815/article/details/80900813
https://coolshell.cn//wp-content/uploads/2010/10/rijndael_ingles2004.swf
来源:CSDN
作者:angleboy8
链接:https://blog.csdn.net/qqbb1987/article/details/103487258