翻譯|使用教程|編輯:李顯亮|2019-10-22 11:28:46.053|閱讀 564 次
概述:在測試模式中,許可系統(它返回的狀態和數據)對提供的序列號的所有反應都在配置文件中描述。該文件名為VMPLicense.ini,應位于應用程序的工作文件夾中。本文將介紹第五步——限制免費升級期限。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VMProtect是一種很可靠的工具,可以保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現最好的效果。
建筑保護總是經歷兩個主要步驟:開發和發布。至于許可,首先創建一個應用程序,將保護集成到其中,然后添加檢查和功能限制。只有經過全面測試,才能將產品提供給用戶并開始第二階段。測試受保護的應用程序是一個復雜的過程,因為需要確保所有檢查和條件跳轉都能正常運行。
許可系統提供“開發者模式”(AKA“測試模式”),在此工作模式下,不對應用程序應用任何保護,并且在配置文件中調整系統對提供的序列號的反應。當應用程序沒有錯誤并且它正確地與許可系統一起使用時,VMProtect將“測試”許可模塊替換為執行實際序列號檢查的真實模塊。
致改變世界的程序員——10月在線購買VMProtect低至801元起,更有現金抵扣紅包邀您來領!更多活動詳情可哦~
測試模式
在測試模式中,許可系統(它返回的狀態和數據)對提供的序列號的所有反應都在配置文件中描述。該文件名為VMPLicense.ini,應位于應用程序的工作文件夾中。在下面提供的10個步驟中,將從創建最簡單的應用程序到在測試模式下全面使用許可系統,具有硬件鎖定和限制免費升級的時間。
▲步驟七:限制程序的運行時間
VMProtect保護應用程序時,它將記錄日期。 許可系統將此日期視為應用程序的生成日期。 您可以在序列號中輸入該序列號可以使用的最大構建日期。 因此,如果將當前日期加上一年作為序列號,它將與一年中要發布的程序的所有版本一起使用。 您一年后一天發布的版本將無法使用該序列號,用戶可以選擇:使用程序的舊版本或購買新密鑰,以使用該程序的最新版本一年。
將格式為MaxBuildDate = YYYYMMDD的行放入ini文件中:
MaxBuildDate=20000101
在測試模式下,許可系統將今天視為構建日期,因此,必須通過此行中指定的日期,這一點很重要。即,最大日期是昨天。修改main()函數的代碼,使其如下所示:
將格式為MaxBuildDate = YYYYMMDD的行放入ini文件中:
int main(int argc, char **argv) { char *serial = "Xserialnumber"; // we set the serial number directly in the code, for simplicity int res = VMProtectSetSerialNumber(serial); print_state(res); if (res) { VMProtectSerialNumberData sd = {0}; VMProtectGetSerialNumberData(&sd, sizeof(sd)); printf("max. build date: y = %d, m = %d, d = %d\n", sd.dtMaxBuild.wYear, sd.dtMaxBuild.bMonth, sd.dtMaxBuild.bDay); printf("please register!\n"); return 0; } printf("I'm registered\n"); return 0; }
然后,在程序運行時,應該看到以下內容:
state = SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED max. build date: y = 2000, m = 1, d = 1 please register!
通過將ini文件中的日期替換為今天或明天,我們得到了“工作”程序:
state = 0 I'm registered
從ini文件中刪除MaxBuildDate =…行,以免影響我們的后續步驟。
-- 未完待續 --
掃描關注“慧聚IT”微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn