电子说
常用Matlab的同学应该了解Matlab的三种加密方式:
方式一:P文件
.p 文件是一种使用 MATLAB 的预编译版本,其后缀为 .p,与同名的 .m 文件对应。.p 文件意味着预解析(preparsed version),因为它是对 .m 文件中的代码进行预解析生成的。当再次调用同名文件时,实际上优先调用的是 .p 文件。
为什么要使用 .p 文件呢?
在实际应用中,第一次执行 .m 文件时,MATLAB 需要将其解析一次,这会增加执行时间。因此,我们可以预先解析代码并生成 .p 文件,以提升后续调用该文件的速度。值得注意的是,如果同一目录下存在同名的 .p 和 .m 文件,优先调用的是 .p 文件。
另一个用途是用 .p 文件进行代码加密。如果我们希望他人使用我们的程序,但又不希望他们看到源代码,我们可以只发送对应的 .p 文件。当他们获得 .p 文件后,可以使用命令“help 文件名”查看可以调用的方法列表。
然而,使用 .p 文件会带来一个问题,即无法像 .m 文件那样直接打开查看源码,从而无法学习或修改代码。此外,通过将 .p 文件转换回 .m 文件时,源代码中的注释也不会保留,导致代码的可理解性相对较差。
而且P文件加密并非牢不可破,只要知道加密的秘钥,就可以通过反向编译将P文件破解。
方式二:Mex文件
.mexw64文件或.mexw32文件,MEX文件的后缀名按32位/64位分别为 .mexw32/.mexw64。
MEX文件是由C或Fortran语言编写的源代码,经matlab编译器处理而生成的二进制文件。说白了就是编译器编译生成的二进制文件。一种接口文件。目标是.C文件转化成为.mexwXX文件。
MEX文件其实是其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
方式三:dll文件
.dll文件,众所周知Matlab的强大运算能力让各种工程软件望而却步,而VC程序的友好界面又让人爱不释手,如果能够让两者的优势结合起来的话,势必能让程序员欢欣鼓舞。还好MathWorks已经为我们想到了,基本上现在市面上主流的Matlab版本都可以支持VC和Matlab的混合编程。。
通过指令mcc -W cpplib:库名 -T link:lib 文件名 -c(指令格式:mcc -W cpplib:
反编译技术:
那么如何通过反编译技术将p文件,mex文件或者dll文件反向编译生成m文件或者c文件呢?
首先我们要了解正向的加密编译技术的原理;
如下图:
反编译技术原理:
也就是说,如果我们知道了加密原理,反编译其实就是一件很简单的事。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !