代碼保護(hù)軟件VMProtect用戶手冊(cè)之內(nèi)置腳本的使用(1)
VMProtect是一種很可靠的工具,可以保護(hù)應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護(hù)機(jī)制正確構(gòu)建且沒有可能破壞整個(gè)保護(hù)的嚴(yán)重錯(cuò)誤的情況下,才能實(shí)現(xiàn)最好的效果。
之前對(duì)主窗口進(jìn)行了介紹,接下來我們將對(duì)VMProtect中強(qiáng)大的內(nèi)置腳本的使用進(jìn)行介紹,希望對(duì)您有所幫助。
VMProtect具有內(nèi)置的強(qiáng)大腳本語(yǔ)言LUA,極大地增強(qiáng)了VMProtect在每個(gè)保護(hù)階段的默認(rèn)保護(hù)功能。LUA語(yǔ)法非常類似于JavaScript,但與之不同的是,LUA不包含顯式類。不過,腳本語(yǔ)言允許輕松地實(shí)現(xiàn)類、繼承和事件等面向?qū)ο蟮木幊虣C(jī)制。
對(duì)于如何使用腳本語(yǔ)言,可以進(jìn)行以下三類的介紹:
- 類
- 內(nèi)置功能
- 事件
第一部分:類
VMProtect中內(nèi)置的腳本語(yǔ)言LUA是面向?qū)ο蟮模核谡Z(yǔ)法,意識(shí)形態(tài)和實(shí)現(xiàn)方面與JavaScript非常相似。腳本語(yǔ)言包括提供基本功能的標(biāo)準(zhǔn)類和提供對(duì)應(yīng)用程序保護(hù)功能的訪問的專用類。
▲核心
項(xiàng)目選擇:
enum ProjectOption { None, Pack, ImportProtection, MemoryProtection, ResourceProtection, CheckDebugger, CheckKernelDebugger, CheckVirtualMachine, StripFixups, StripDebugInfo, DebugMode }
使用VMProtect核心的類:
class Core { public: string projectFileName();//返回項(xiàng)目的名稱 void saveProject(); //保存項(xiàng)目 string inputFileName(); //返回當(dāng)前項(xiàng)目的源文件的名稱 string outputFileName(); //返回當(dāng)前項(xiàng)目的輸出文件的名稱 void setOutputFileName(string name); //設(shè)置當(dāng)前項(xiàng)目的輸出文件的名稱 string watermarkName(); //返回當(dāng)前項(xiàng)目水印的名稱 void setWatermarkName(string name); //設(shè)置當(dāng)前項(xiàng)目的水印名稱 int options(); //返回當(dāng)前項(xiàng)目的選項(xiàng) void setOptions(int options); //設(shè)置當(dāng)前項(xiàng)目的選項(xiàng) string vmSectionName(); //返回當(dāng)前項(xiàng)目的VM段名稱 void setVMSectionName(); //設(shè)置當(dāng)前項(xiàng)目的VM段名稱 Licenses licenses(); //返回當(dāng)前項(xiàng)目的許可證列表 Files files(); //返回當(dāng)前項(xiàng)目的文件列表 Watermarks watermarks(); //返回水印列表 PEFile/MacFile inputFile(); //返回源文件 PEFile/MacFile outputFile();//返回輸出文件 PEArchitecture/MacArchitecture inputArchitecture(); //返回源架構(gòu) PEArchitecture/MacArchitecture outputArchitecture();//返回輸出架構(gòu) };
▲水印
用于處理水印列表的類:
class Watermarks { public: Watermark item(int index); //返回帶有給定索引的水印 int count(); //返回列表中的一些水印 Watermark itemByName(string name);//返回帶有給定名稱的水印 }
使用水印的類:
class Watermark {public: string name(); //返回水印的名稱 string value();//返回水印的值 bool blocked();//返回“Blocked”屬性 void setBlocked(bool value); //設(shè)置“Blocked”屬性}
▲許可證
用于處理許可證列表的類:
class Licenses { public: int keyLength(); //返回鍵的長(zhǎng)度 string publicExp(); //返回公共指數(shù) string privateExp(); //返回私有指數(shù) string modulus(); //返回模量 License item(int index); // 返回具有給定索引的許可證 int count(); //返回列表中的許可證數(shù)量 }
使用許可證的類:
class License { public: string date(string format = "%c"); //返回許可證的日期 string customerName(); //返回許可證所有者的名稱 string customerEmail(); //返回許可證所有者的電子郵件 string orderRef();//返回購(gòu)買許可證的訂單id string comments();//返回許可的注釋 string serialNumber(); //返回許可證的序列號(hào) bool blocked(); //返回“Blocked”屬性 void setBlocked(bool value); //設(shè)置“Blocked”屬性 }
▲文件
用于處理文件列表的類:
class Files { public: File item(int index); // 返回具有給定索引的文件 int count(); //返回列表中的文件數(shù)量 }
使用文件的類:
class File { public: string name(); //返回文件的名稱 string fileName(); //返回文件名 int options(); //返回選項(xiàng) void setName(string name);//設(shè)置文件的名稱 void setFileName(string name);//設(shè)置文件的文件名 void setOptions();//設(shè)置選項(xiàng) }
- 持續(xù)更新中 -
VMProtect正版授權(quán)專享在線訂購(gòu)特享超低價(jià)格!還不趕緊加入你的訂購(gòu)清單?>>更多詳情可點(diǎn)擊咨詢購(gòu)買
掃描關(guān)注“慧聚IT”微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊