• <menu id="w2i4a"></menu>
  • logo VMProtect用戶手冊

    文檔首頁>>VMProtect用戶手冊>>軟件保護工具VMProtect將許可系統(tǒng)集成到應(yīng)用程序(6)——限制免費升級期限

    軟件保護工具VMProtect將許可系統(tǒng)集成到應(yīng)用程序(6)——限制免費升級期限


    VMProtect是一種很可靠的工具,可以保護應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護機制正確構(gòu)建且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實現(xiàn)最好的效果。

    【下載VMProtect最新試用版】

    建筑保護總是經(jīng)歷兩個主要步驟:開發(fā)和發(fā)布。至于許可,首先創(chuàng)建一個應(yīng)用程序,將保護集成到其中,然后添加檢查和功能限制。只有經(jīng)過全面測試,才能將產(chǎn)品提供給用戶并開始第二階段。測試受保護的應(yīng)用程序是一個復(fù)雜的過程,因為需要確保所有檢查和條件跳轉(zhuǎn)都能正常運行。

    許可系統(tǒng)提供“開發(fā)者模式”(AKA“測試模式”),在此工作模式下,不對應(yīng)用程序應(yīng)用任何保護,并且在配置文件中調(diào)整系統(tǒng)對提供的序列號的反應(yīng)。當(dāng)應(yīng)用程序沒有錯誤并且它正確地與許可系統(tǒng)一起使用時,VMProtect將“測試”許可模塊替換為執(zhí)行實際序列號檢查的真實模塊。

    致改變世界的程序員——10月在線購買VMProtect低至801元起,更有現(xiàn)金抵扣紅包邀您來領(lǐng)!更多活動詳情可咨詢在線客服哦~


    測試模式

    在測試模式中,許可系統(tǒng)(它返回的狀態(tài)和數(shù)據(jù))對提供的序列號的所有反應(yīng)都在配置文件中描述。該文件名為VMPLicense.ini,應(yīng)位于應(yīng)用程序的工作文件夾中。在下面提供的10個步驟中,將從創(chuàng)建最簡單的應(yīng)用程序到在測試模式下全面使用許可系統(tǒng),具有硬件鎖定和限制免費升級的時間。

    ▲步驟七:限制程序的運行時間

    VMProtect保護應(yīng)用程序時,它將記錄日期。 許可系統(tǒng)將此日期視為應(yīng)用程序的生成日期。 您可以在序列號中輸入該序列號可以使用的最大構(gòu)建日期。 因此,如果將當(dāng)前日期加上一年作為序列號,它將與一年中要發(fā)布的程序的所有版本一起使用。 您一年后一天發(fā)布的版本將無法使用該序列號,用戶可以選擇:使用程序的舊版本或購買新密鑰,以使用該程序的最新版本一年。

    將格式為MaxBuildDate = YYYYMMDD的行放入ini文件中:

    MaxBuildDate=20000101

    在測試模式下,許可系統(tǒng)將今天視為構(gòu)建日期,因此,必須通過此行中指定的日期,這一點很重要。即,最大日期是昨天。修改main()函數(shù)的代碼,使其如下所示:

    將格式為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;
    }

    然后,在程序運行時,應(yīng)該看到以下內(nèi)容:

    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 =…行,以免影響我們的后續(xù)步驟。

    -- 未完待續(xù) --


    掃描關(guān)注“慧聚IT”微信公眾號,及時獲取最新動態(tài)及最新資訊

    1562572142.jpg



    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();