常用Matlab的同學(xué)應(yīng)該了解Matlab的三種加密方式:
方式一:P文件
.p 文件是一種使用 MATLAB 的預(yù)編譯版本,其后綴為 .p,與同名的 .m 文件對(duì)應(yīng)。.p 文件意味著預(yù)解析(preparsed version),因?yàn)樗菍?duì) .m 文件中的代碼進(jìn)行預(yù)解析生成的。當(dāng)再次調(diào)用同名文件時(shí),實(shí)際上優(yōu)先調(diào)用的是 .p 文件。
為什么要使用 .p 文件呢?
在實(shí)際應(yīng)用中,第一次執(zhí)行 .m 文件時(shí),MATLAB 需要將其解析一次,這會(huì)增加執(zhí)行時(shí)間。因此,我們可以預(yù)先解析代碼并生成 .p 文件,以提升后續(xù)調(diào)用該文件的速度。值得注意的是,如果同一目錄下存在同名的 .p 和 .m 文件,優(yōu)先調(diào)用的是 .p 文件。
另一個(gè)用途是用 .p 文件進(jìn)行代碼加密。如果我們希望他人使用我們的程序,但又不希望他們看到源代碼,我們可以只發(fā)送對(duì)應(yīng)的 .p 文件。當(dāng)他們獲得 .p 文件后,可以使用命令“help 文件名”查看可以調(diào)用的方法列表。
然而,使用 .p 文件會(huì)帶來一個(gè)問題,即無法像 .m 文件那樣直接打開查看源碼,從而無法學(xué)習(xí)或修改代碼。此外,通過將 .p 文件轉(zhuǎn)換回 .m 文件時(shí),源代碼中的注釋也不會(huì)保留,導(dǎo)致代碼的可理解性相對(duì)較差。
而且P文件加密并非牢不可破,只要知道加密的秘鑰,就可以通過反向編譯將P文件破解。
方式二:Mex文件
.mexw64文件或.mexw32文件,MEX文件的后綴名按32位/64位分別為 .mexw32/.mexw64。
MEX文件是由C或Fortran語言編寫的源代碼,經(jīng)matlab編譯器處理而生成的二進(jìn)制文件。說白了就是編譯器編譯生成的二進(jìn)制文件。一種接口文件。目標(biāo)是.C文件轉(zhuǎn)化成為.mexwXX文件。
MEX文件其實(shí)是其它語言與MATLAB的接口,通過MEX文件可以在MATLAB中像調(diào)用內(nèi)嵌函數(shù)一樣調(diào)用使用C語言和Fortran等語言編寫的函數(shù),實(shí)現(xiàn)了代碼重用,同時(shí)也能提高M(jìn)ATLAB環(huán)境中數(shù)據(jù)處理的效率。
方式三:dll文件
.dll文件,眾所周知Matlab的強(qiáng)大運(yùn)算能力讓各種工程軟件望而卻步,而VC程序的友好界面又讓人愛不釋手,如果能夠讓兩者的優(yōu)勢結(jié)合起來的話,勢必能讓程序員歡欣鼓舞。還好MathWorks已經(jīng)為我們想到了,基本上現(xiàn)在市面上主流的Matlab版本都可以支持VC和Matlab的混合編程。。
通過指令mcc -W cpplib:庫名 -T link:lib 文件名 -c(指令格式:mcc -W cpplib:
反編譯技術(shù):
那么如何通過反編譯技術(shù)將p文件,mex文件或者dll文件反向編譯生成m文件或者c文件呢?
首先我們要了解正向的加密編譯技術(shù)的原理;
如下圖:
反編譯技術(shù)原理:
也就是說,如果我們知道了加密原理,反編譯其實(shí)就是一件很簡單的事。
編輯:黃飛
-
matlab
+關(guān)注
關(guān)注
186文章
2981瀏覽量
231062 -
反編譯
+關(guān)注
關(guān)注
1文章
14瀏覽量
8555
原文標(biāo)題:如何理解Matlab反編譯技術(shù)
文章出處:【微信號(hào):新能源入門客,微信公眾號(hào):新能源入門客】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論