代碼保護(hù)軟件VMProtect用戶手冊之內(nèi)置腳本的使用(4)——關(guān)于功能的類
VMProtect是一種很可靠的工具,可以保護(hù)應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護(hù)機(jī)制正確構(gòu)建且沒有可能破壞整個(gè)保護(hù)的嚴(yán)重錯(cuò)誤的情況下,才能實(shí)現(xiàn)最好的效果。
本文繼續(xù)對VMProtect中強(qiáng)大的內(nèi)置腳本的使用進(jìn)行介紹,希望對您有所幫助。
VMProtect具有內(nèi)置的強(qiáng)大腳本語言LUA,極大地增強(qiáng)了VMProtect在每個(gè)保護(hù)階段的默認(rèn)保護(hù)功能。LUA語法非常類似于JavaScript,但與之不同的是,LUA不包含顯式類。不過,腳本語言允許輕松地實(shí)現(xiàn)類、繼承和事件等面向?qū)ο蟮木幊虣C(jī)制。
對于如何使用腳本語言,可以進(jìn)行以下三類的介紹:
- 類
- 內(nèi)置功能
- 事件
第一部分:類
VMProtect中內(nèi)置的腳本語言LUA是面向?qū)ο蟮模核谡Z法,意識(shí)形態(tài)和實(shí)現(xiàn)方面與JavaScript非常相似。腳本語言包括提供基本功能的標(biāo)準(zhǔn)類和提供對應(yīng)用程序保護(hù)功能的訪問的專用類。
▲功能
用于處理函數(shù)列表的類:
class MapFunctions { public: MapFunction item(int index); // 返回具有給定索引的函數(shù) int count(); // 返回列表中的函數(shù)數(shù) MapFunction itemByAddress(uint64 address); //返回給定地址的函數(shù) MapFunction itemByName(string name); //返回具有給定名稱的函數(shù) };
功能類型:
enum ObjectType { Unknown, Code, Data, Export, Marker, APIMarker, Import, String };
使用函數(shù)的類:
class MapFunction { public: uint64 address(); //返回函數(shù)的地址 string name(); // 返回函數(shù)名 ObjectType type(); // 返回函數(shù)的類型 References references(); // 返回引用列表 };
用于處理引用列表的類:
class References { public: Reference item(int index); // 返回具有給定索引的引用 int count(); // 返回列表中引用的數(shù)目 };
使用引用的類:
class Reference { public: uint64 address(); //返回命令的地址 uint64 operandAddress(); //返回引用的地址 };
- 持續(xù)更新中 -
VMProtect正版授權(quán)專享在線訂購特享超低價(jià)格!還不趕緊加入你的訂購清單?>>更多詳情可點(diǎn)擊咨詢購買
掃描關(guān)注“慧聚IT”微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊