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