日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

软件时间限制的原理[转]

發(fā)布時間:2023/12/24 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 软件时间限制的原理[转] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這類軟件一般都有時間段的限制,例如試用30天等。當(dāng)過了共享軟件的試用期后,就不予運行。只有向軟件作者付費注冊之后才能得到一個無時間限制的注冊版本。這種保護的實現(xiàn)方式大致如下。

首先在安裝軟件的時候由安裝程序取得當(dāng)前系統(tǒng)日期,或者主程序在第一次運行的時候獲得系統(tǒng)日期,并且將其記錄在系統(tǒng)中的某個地方;可能記錄在注冊表的某個不顯眼的位置,也可能記錄在某個文件或扇區(qū)中。這個時間統(tǒng)稱為軟件的安裝日期。

程序在每次運行的時候都要取得當(dāng)前系統(tǒng)日期,且將其與記錄下來的那個安裝日期進行比較,當(dāng)其差值超過允許的天數(shù)(比如30天)時就停止運行。

可見,這種日期限制的機理很簡單。但是在實現(xiàn)的時候,如果對各種情況處理得不夠周全,就很容易被繞過,比如在過期之后簡單地把機器時間調(diào)回去,軟件又可以正常使用了。

如果考慮得比較周全,軟件最少要保存兩個時間值,一個就是上面所說的安裝時間,這個時間可由安裝程序在安裝軟件的時候記錄,也可以在軟件第一次運行的時候記錄(即軟件發(fā)現(xiàn)該值不存在時就將當(dāng)前日期作為其值記錄下來)。為了增加解密難度,最好把這個時間在不同的地方多存放幾份,否則解密者可以通過RegMon、FileMon等監(jiān)視工具輕易地找到存放該值的地方,然后刪除該鍵值,這樣又可以正常使用軟件了。

另外一個時間值就是軟件最近一次運行的日期,這是防止用戶將機器日期改回去而設(shè)的。軟件每次退出的時候都要將該日期取出來與當(dāng)前日期相比較,如果當(dāng)前日期大于該日期,則用當(dāng)前日期替換掉該值,否則保持該值不變。同時,軟件每次啟動的時候要把該值讀出來與當(dāng)前日期進行比較,如果該值大于當(dāng)前系統(tǒng)日期,則說明用戶把機器時間改回去了,可以拒絕運行。

取得時間的API函數(shù)一般有GetSystemTime、GetLocalTime和GetFileTime。軟件作者可能不直接使用上面的函數(shù)來獲得系統(tǒng)時間,比如采用高級語言中封裝好的類來操作系統(tǒng)時間等。這些封裝好的類實際上也是調(diào)用上面的函數(shù)。解密者在采用動態(tài)跟蹤方法破解這種日期限制時,最常用的斷點也是這個。

還用一種比較方便地獲得當(dāng)前系統(tǒng)日期的方法,就是讀取需要頻繁修改的系統(tǒng)文件(比如Windows注冊表文件user.dat、system.dat等)的最后修改日期,利用FileTimeToSystemTime()將其轉(zhuǎn)換為系統(tǒng)日期格式,從而得到當(dāng)前系統(tǒng)日期。

需要指出的是,采用日期限制的軟件必須能防RegMon、FileMon之類的監(jiān)視軟件,否則很容易被找到日期的存放位置。

總結(jié)

以上是生活随笔為你收集整理的软件时间限制的原理[转]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。