常用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文件呢?
首先我們要了解正向的加密編譯技術的原理;
如下圖:
反編譯技術原理:
也就是說,如果我們知道了加密原理,反編譯其實就是一件很簡單的事。
編輯:黃飛
-
matlab
+關注
關注
182文章
2963瀏覽量
230195 -
反編譯
+關注
關注
1文章
14瀏覽量
8513
原文標題:如何理解Matlab反編譯技術
文章出處:【微信號:新能源入門客,微信公眾號:新能源入門客】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論