怎樣用VC限制軟體的試用次數 (轉)
怎樣用VC限制軟體的試用次數 (轉)[@more@]試用次數的限制有很多種方法,其關鍵是把次數這個值在哪 裡。這裡介紹一種方法,透過改變 的時間來儲存試用次數,從而限制軟 件的試用。 一、透過改變檔案時間來限制軟體的試用次數 在MS-DOS中,檔案的時間是 透過一個16位的值來儲存的,位 15~11用來儲存小時數,位10~5用 來儲存分鐘數,位4~0用來儲存秒鐘 數。這個16位的值正好可以被我們用 來儲存試用次數。例如,在下面的示例 中,筆者就使用了儲存分鐘數的 位來儲存試用次數。執行一下示例程 序,我們可以看到,只是檔案時間的分 鍾數加了1,一般人很難察覺,這種方 法有比較好的隱蔽性。 二、示例程式中所涉及的中斷 1.中斷21H的功能3DH 用途:開啟檔案用於讀。寫或補 充。 暫存器:AH=3DH,AL=00H,DS:DX=檔名; 返回暫存器:CF 復位--成功,AX=檔案把柄。 CF 置位--出錯,AX=錯誤程式碼。 2.中斷21H的功能3EH 用途:強迫清除所有緩衝區,目錄,使檔案把 柄無效。 呼叫暫存器:AH=3EH,BX=檔案把柄; 返回暫存器:CF 復位--成功,AX被破壞, CF 置位--出錯,AX=錯誤程式碼。 3.中斷21H的功能57H、子功能00H 用途:讀出檔案被最後修改的日期和時間。 呼叫暫存器:AX=5700H,BX=檔案把柄; 返回暫存器:CF 復位--成功,CX=檔案時間, DX=檔案日期, CF 置位--出錯,AX=錯誤程式碼。 4.中斷21H的功能57H、子功能01H 用途:將檔案最後被修改過的日期和時間資訊變 成指定值。 呼叫暫存器:AX=5701H,BX=檔案把柄,CX= 新時間,DX=新日期; 返回暫存器:CF 復位--成功, CF 置位--出錯,AX=錯誤程式碼。 三、示例程式 #include #include #include int count( ) { union REGS inregs,outregs; strut SREGS segs; unsigned handle; unsigned times; / * 開啟檔案 * / inregs.h.ah =0x3d; inregs.h.al =0; scgread(& segs); inregs.x.dx ="test.exe"; intdosx(& inregs, & outregs, & segs); if(outregs.x.cflag) return(0); else { / * 讀取檔案日期時間 * / handle = Outregs.x.ax; inregs.x.ax = 0x5700; inregs.x.bx = handle; intdosx(& inregs, & outregs, &segs); times = (outregs.x.cx &0x7e0)> > 5; if(times <40)/ * 試用次數可以透過改變此處的'40'來實現 * / { inregs.x.ax = 0x5701; inregs.x.bx = handle; inregs.x.cx = outregs.x.cx + 0x20; / * 試用次數計數 * / inregs.x.dx = outregs.x.dx; intdosx(& inregs, & outregs, & segs); / * 重置日期時間 * / return(2); } else return(1); / * 關閉檔案 * / inregs.h.ah = 0x3e; inregs.x.bx = handle; intdosx(& inregs, & outregs, & segs); } } main() { int flag; flag = count(); if(flag==0) printf("此軟體為試用版,請勿任意修改! n"); if(flag==1) printf("此軟體為試用版,您的試用次數已滿!n"); if(flag==2) printf("此軟體為試用版,歡迎試用!n");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990720/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體試用期及試用次數控制(附部分關鍵程式碼)! (轉)
- VC中文FAQ寶庫之5:怎樣載入其他的應用程式 (轉)
- 軟體測試自學怎麼樣
- C# 登錄檔法-限制軟體使用次數C#
- 軟體怎樣做到支援二次開發
- 軟體測試培訓分享:軟體測試就業前景怎麼樣就業
- 軟體測試工程師的待遇怎麼樣工程師
- 第三方軟體測試機構主要做什麼?費用怎麼樣?
- 怎樣用程式取得CPU資訊 (轉)
- 26歲零基礎轉行做軟體測試怎麼樣?
- 學習軟體測試的發展前景怎麼樣?
- 怎樣優雅的限制瞬時goruntine的個數Go
- 有關軟體複用問題(蓋上一次的文章) (轉)
- 如何讓軟體開發從功能測試轉入應用測試?
- 用VC++ 6.0製作網路自動測試程式 (轉)C++
- 關於軟體複用的思考 (轉)
- 軟體測試人員怎樣才能成為大牛?
- vnc遠端控制軟體怎麼用,vnc遠端控制軟體怎麼用,使用教程VNC
- 想試用Linux,這樣開始(轉)Linux
- 怎樣培養國際化軟體人才 (轉)
- 怎樣做好軟體專案風險計劃(轉)
- SNMP用VC++6.0實現的方法 (轉)C++
- 用VC++編寫CGI程式 (轉)C++
- VC開發應用程式答疑 (轉)
- 中軟Linux3.0試用 (轉)Linux
- 請問怎麼限制軟體的使用期限?
- 請教怎樣測試工具類的 windows 應用程式?Windows
- 員工喜歡用什麼樣的CRM軟體?
- 《Spelunky 2》怎樣用AI來測試關卡?AI
- 軟體測試用例設計方法
- PR效能測試軟體適用於哪些測試
- 怎樣成為優秀的軟體模型設計者 [轉]模型
- win10軟體限制策略怎麼解除_win10如何解除軟體限制策略Win10
- 財務軟體的審計功能怎麼用
- POST 怎麼樣用
- VC實現動畫應用兩則 (轉)動畫
- xp下軟體限制策略限制軟體以及破解方法
- 軟體測試中的5個實用原則