• <menu id="w2i4a"></menu>
  • logo VMPsoft中文文檔

    文檔首頁(yè)>>VMPsoft中文文檔>>步驟1.6:限制程序的運(yùn)行時(shí)間

    步驟1.6:限制程序的運(yùn)行時(shí)間


    VMProtect 是保護(hù)應(yīng)用程序代碼免遭分析和破解的可靠工具,但只有在正確構(gòu)建應(yīng)用程序內(nèi)保護(hù)機(jī)制并且沒(méi)有可能破壞整個(gè)保護(hù)的典型錯(cuò)誤的情況下才能最有效地使用。

    VMProtect最新版下載

    VMProtect 是保護(hù)應(yīng)用程序代碼免遭分析和破解的可靠工具,但只有在正確構(gòu)建應(yīng)用程序內(nèi)保護(hù)機(jī)制并且沒(méi)有可能破壞整個(gè)保護(hù)的典型錯(cuò)誤的情況下才能最有效地使用。

    您可以限制程序從啟動(dòng)的那一刻開(kāi)始運(yùn)行。這對(duì)于演示目的很有用:您向用戶提供了一個(gè)真實(shí)的序列號(hào),但該程序的運(yùn)行時(shí)間不超過(guò) 5 分鐘。許可系統(tǒng)不會(huì)強(qiáng)制關(guān)閉此類程序,而只是設(shè)置狀態(tài)標(biāo)志。因此,讓我們通過(guò)將以下行添加到 ini 文件來(lái)將最長(zhǎng)工作時(shí)間設(shè)置為一分鐘:

    TimeLimit=1

    并修改程序如下:

    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) return 0;
    VMProtectSerialNumberData sd = {0};
    VMProtectGetSerialNumberData(&sd, sizeof(sd));
    printf("I will run for %d minute(s)\n", sd.bRunningTime);
    print_state(VMProtectGetSerialNumberState());
    Sleep(60 * 1000 * sd.bRunningTime);
    printf("After %d minute(s):\n", sd.bRunningTime);
    print_state(VMProtectGetSerialNumberState());
    return 0;
    }

    該程序在啟動(dòng)時(shí)打印序列號(hào)的狀態(tài),然后計(jì)算最長(zhǎng)運(yùn)行時(shí)間并等待其到期。然后再次打印序列號(hào)狀態(tài)。將最大操作時(shí)間設(shè)置為一分鐘后,我們應(yīng)該會(huì)收到以下結(jié)果:

    state = 0
    I will run for 1 minute(s)
    state = 0
    After 1 minute(s):
    state = SERIAL_STATE_FLAG_RUNNING_TIME_OVER	

    受保護(hù)程序應(yīng)定期分析序列號(hào)的狀態(tài),并在設(shè)置標(biāo)志時(shí)關(guān)閉。許可系統(tǒng)不會(huì)自動(dòng)執(zhí)行此操作,因?yàn)槌绦蚩赡苄枰尫艃?nèi)存、將數(shù)據(jù)保存到文件等。此外,您可能希望程序在操作時(shí)間到期后不要停止,而是切換到更受限制的模式。許可系統(tǒng)將此留給開(kāi)發(fā)人員。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();