翻譯|使用教程|編輯:郎婷|2023-04-24 13:27:42.527|閱讀 166 次
概述:VMProtect是新一代軟件保護(hù)實(shí)用程序。本文分享VMProtect入門使用教程準(zhǔn)備項(xiàng)目之使用標(biāo)記,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
VMProtect是新一代軟件保護(hù)實(shí)用程序。VMProtect支持德爾菲、Borland C Builder、Visual C/C++、Visual Basic(本機(jī))、Virtual Pascal和XCode編譯器。
同時(shí),VMProtect有一個(gè)內(nèi)置的反匯編程序,可以與Windows和Mac OS X可執(zhí)行文件一起使用,并且還可以鏈接編譯器創(chuàng)建的MAP文件,以快速選擇要保護(hù)的代碼片段。
為了輕松實(shí)現(xiàn)應(yīng)用程序保護(hù)任務(wù)的自動(dòng)化,VMProtect實(shí)現(xiàn)了內(nèi)置腳本語言。VMProtect完全支持Windows系列的32/64位操作系統(tǒng)(從Windows 2000開始)和Mac OSX(從版本10.6開始)。重要的是,無論目標(biāo)平臺(tái)如何,VMProtect都支持所有范圍的可執(zhí)行文件,即Windows版本可以處理Mac OS X版本的文件,反之亦然。
VMProtect 是保護(hù)應(yīng)用程序代碼免遭分析和破解的可靠工具,但只有在正確構(gòu)建應(yīng)用程序內(nèi)保護(hù)機(jī)制并且沒有可能破壞整個(gè)保護(hù)的典型錯(cuò)誤的情況下才能最有效地使用。
為了保護(hù)代碼的各個(gè)片段和字符串常量,您可以在應(yīng)用程序的源代碼中插入特殊標(biāo)記。標(biāo)記是對(duì)從外部庫導(dǎo)入的函數(shù)的調(diào)用(32 位應(yīng)用程序使用 VMProtectSDK32.dll,64 位應(yīng)用程序使用VMProtectSDK64.dll;驅(qū)動(dòng)程序分別使用 VMProtectDDK32.sys 和 VMProtectDDK64.sys)——進(jìn)一步稱為 VMProtectSDK。VMProtectSDK 中的過程和函數(shù)不執(zhí)行任何操作,這個(gè)特殊標(biāo)記只是VMProtect用于確定受保護(hù)代碼邊界的標(biāo)簽。受保護(hù)塊的開始和結(jié)束標(biāo)記如下:
uses VMProtectSDK; VMProtectBegin(MARKER_TITLE); ... VMProtectEnd; C/C++ #include "VMProtectSDK.h" VMProtectBegin(MARKER_TITLE); ... VMProtectEnd();
include VMProtectSDK.inc invoke VMProtectBegin,SADD(MARKER_TITLE) ... invoke VMProtectEnd Visual Basic VMProtectBegin (StrPtr(MARKER_TITLE)) ... VMProtectEnd
此外,您可以使用具有預(yù)定義的標(biāo)記來代替 VMProtectBegin :
當(dāng)VMProtect分析受保護(hù)應(yīng)用程序的代碼時(shí),它會(huì)定位對(duì)VMProtectSDK過程和函數(shù)的所有調(diào)用。要保護(hù)的塊的邊界由標(biāo)記對(duì)VMProtectBegin / VMProtectBeginVirtualization / VMProtectBeginMutation / VMProtectBeginUltra 和 VMProtectEnd定義。 然后,當(dāng)VMProtect處理受保護(hù)應(yīng)用程序的代碼時(shí),它會(huì)刪除標(biāo)記和對(duì)VMProtectSDK的任何調(diào)用信息,所以這些庫沒有必要包含在你的安裝程序包中。標(biāo)記無論是否包含在編譯中,都會(huì)被刪除。使用命名標(biāo)記時(shí),也會(huì)刪除其名稱。
如果指定了標(biāo)記的標(biāo)題,則會(huì)為其分配名稱,如“VMProtectMarker MARKER_TITLE”。如果未指定標(biāo)記的標(biāo)題,則為其分配一個(gè)唯一名稱:“VMProtectMarker”+標(biāo)記序列號(hào)。然而,使用非命名標(biāo)記有一個(gè)明顯的缺點(diǎn):如果一個(gè)新的標(biāo)記將被插入到程序的代碼中,所有非命名標(biāo)記的編號(hào)都會(huì)改變。所以我們建議始終使用命名標(biāo)記。
使用標(biāo)記時(shí)要考慮的一個(gè)特別重要的事情是,您不應(yīng)允許從標(biāo)記內(nèi)的非保護(hù)區(qū)域跳躍。例如,如果您將循環(huán)的一部分包含在標(biāo)記中,就會(huì)發(fā)生這種情況。如果使用標(biāo)記的應(yīng)用程序在保護(hù)后變得無法運(yùn)行,您可以通過啟用“調(diào)試模式”選項(xiàng)來檢測來自非保護(hù)區(qū)域和地址的跳轉(zhuǎn)。在這種模式下,當(dāng)受保護(hù)的應(yīng)用程序在調(diào)試器下工作時(shí),如果檢測到從非保護(hù)區(qū)跳轉(zhuǎn)到受保護(hù)的調(diào)試器,后者將中斷程序的執(zhí)行。找到所有此類跳轉(zhuǎn)后,您應(yīng)該更改標(biāo)記的位置,如果不方便,請(qǐng)使用VMProtect的GUI版本將這些地址標(biāo)記為外部。
以上便是本篇文章的分享,如果您有任何疑問或者想獲取更多產(chǎn)品試用/授權(quán)/價(jià)格信息,請(qǐng)點(diǎn)擊VMProtect了解。
加密解密技術(shù)QQ群:766135708
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn