原創(chuàng)|使用教程|編輯:何躍|2021-08-23 15:13:38.930|閱讀 522 次
概述:你可以限制程序從啟動的那一刻開始運(yùn)行。這對演示來說很有用:你向用戶提供一個真實(shí)的序列號,但程序的工作時間不超過5分鐘。許可系統(tǒng)并不強(qiáng)迫這樣的程序關(guān)閉,而只是設(shè)置狀態(tài)標(biāo)志。因此,讓我們設(shè)定最大工作時間為一分鐘,在ini-file中添加以下一行。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
VMProtect腳本模式試過嗎?本篇你將用上!
你可以限制程序從啟動的那一刻開始運(yùn)行。這對演示來說很有用:你向用戶提供一個真實(shí)的序列號,但程序的工作時間不超過5分鐘。許可系統(tǒng)并不強(qiáng)迫這樣的程序關(guān)閉,而只是設(shè)置狀態(tài)標(biāo)志。因此,讓我們設(shè)定最大工作時間為一分鐘TimeLimit=1 ,在ini-file中添加以下一行。
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; }程序在啟動時打印出序列號的狀態(tài),然后計算出最大的操作時間,并等待它過期。然后再次打印序列號的狀態(tài)。在最大操作時間設(shè)定為一分鐘的情況下,我們應(yīng)該收到以下結(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)該定期分析一個序列號的狀態(tài),如果標(biāo)志被設(shè)置,就關(guān)閉。許可系統(tǒng)不會自動這樣做,因為程序可能需要釋放內(nèi)存,將數(shù)據(jù)保存到文件中等等。另外,你可能希望程序在運(yùn)行時間過后不停止,而是切換到一個更受限制的模式。許可系統(tǒng)將這一點(diǎn)留給開發(fā)者。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn