翻譯|使用教程|編輯:陳津勇|2019-11-11 15:40:03.257|閱讀 593 次
概述:VMProtect通過在具有非標準架構的虛擬機上執行代碼來保護代碼,這讓分析和破解軟件極為困難。除此之外,VMProtect還會生成并驗證序列號、設置過期時間、限制免費升級等。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VMProtect是一種很可靠的工具,可以保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現最好的效果。
建筑保護總是經歷兩個主要步驟:開發和發布。至于許可,首先創建一個應用程序,將保護集成到其中,然后添加檢查和功能限制。只有經過全面測試,才能將產品提供給用戶并開始第二階段。測試受保護的應用程序是一個復雜的過程,因為需要確保所有檢查和條件跳轉都能正常運行。
許可系統提供“開發者模式”(AKA“測試模式”),在此工作模式下,不對應用程序應用任何保護,并且在配置文件中調整系統對提供的序列號的反應。當應用程序沒有錯誤并且它正確地與許可系統一起使用時,VMProtect將“測試”許可模塊替換為執行實際序列號檢查的真實模塊。
序列號最多可以包含255個字節的任意數據,許可系統將它們原樣傳遞給程序。數據可以包含有關銷售的任何信息、操作完整版所需的數據或其他內容。在正式開始本教程之前,先修改main()函數,讓其從序列號讀取數據并將其顯示在屏幕上:
int main(int argc,char ** argv) { char * serial =“ Xserialnumber”; int res = VMProtectSetSerialNumber(序列); print_state(res); 如果(res)返回0; VMProtectSerialNumberData sd = {0}; VMProtectGetSerialNumberData(&sd,sizeof(sd)); printf(“序列號具有%d個數據字節\ n”,sd.nUserDataLength); 對于(int i = 0; i <sd.nUserDataLength; i ++) printf(“%02X”,sd.bUserData [i]); printf(“ \ n”); 返回0; }
將Ini文件縮小為:
[TestLicense] AcceptedSerialNumber = Xserialnumber
現在,我們運行該程序并確保序列號運行良好,但其中不包含任何數據:
狀態= 0 序列號有0個字節的數據
要將新的用戶數據添加到序列號中,需要在ini文件中創建UserData變量,并以HEX格式為其分配數據。符號必須成對出現,也就是說,線的長度必須是2的倍數。像這樣:
UserData = 010203A0B0C0D0E0
在這種情況下,如果運行程序將收到以下結果:
狀態= 0 序列號有8個字節的數據 01 02 03 A0 B0 C0 D0 E0
-- 未完待續 --
慧都16周年·技術服務月,軟件商城優惠券不限量免費領取,購VMProtect享折上折!點此查看詳情>>>
掃描關注“慧聚IT”微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: