文檔金喜正規買球>>VMPsoft中文文檔>>步驟1.6:限制程序的運行時間
步驟1.6:限制程序的運行時間
VMProtect 是保護應用程序代碼免遭分析和破解的可靠工具,但只有在正確構建應用程序內保護機制并且沒有可能破壞整個保護的典型錯誤的情況下才能最有效地使用。
VMProtect 是保護應用程序代碼免遭分析和破解的可靠工具,但只有在正確構建應用程序內保護機制并且沒有可能破壞整個保護的典型錯誤的情況下才能最有效地使用。
您可以限制程序從啟動的那一刻開始運行。這對于演示目的很有用:您向用戶提供了一個真實的序列號,但該程序的運行時間不超過 5 分鐘。許可系統不會強制關閉此類程序,而只是設置狀態標志。因此,讓我們通過將以下行添加到 ini 文件來將最長工作時間設置為一分鐘:
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; }
該程序在啟動時打印序列號的狀態,然后計算最長運行時間并等待其到期。然后再次打印序列號狀態。將最大操作時間設置為一分鐘后,我們應該會收到以下結果:
state = 0 I will run for 1 minute(s) state = 0 After 1 minute(s): state = SERIAL_STATE_FLAG_RUNNING_TIME_OVER
受保護程序應定期分析序列號的狀態,并在設置標志時關閉。許可系統不會自動執行此操作,因為程序可能需要釋放內存、將數據保存到文件等。此外,您可能希望程序在操作時間到期后不要停止,而是切換到更受限制的模式。許可系統將此留給開發人員。