亚洲AV无码AV制服丝袜在线,亚洲综合无码日韩,国产爆乳无码视频在线观看,亚洲成年AV天堂动漫网站

經(jīng)典案例

聯(lián)系方式

公司名稱(chēng):昆山華航電子有限公司
公司電話:0512-50139595
公司郵箱:eric@kshuahang.com
公司地址:江蘇省昆山市善浦西路

您當(dāng)前的位置:首頁(yè) > 技術(shù)中心 > 關(guān)于知識(shí)產(chǎn)權(quán)

軟件保護(hù)技術(shù)--時(shí)間限制


(1) 定時(shí)器   有些程序的試用版每次運(yùn)行都有時(shí)間限制,例如運(yùn)行10分鐘或20分鐘就停止工作,必須重新運(yùn)行該程序才能正常工作。這些程序里面自然有個(gè)定時(shí)器來(lái)統(tǒng)計(jì)程序運(yùn)行的時(shí)間。

1)使用Settimer()

  常用的計(jì)數(shù)器是函數(shù)Settimer(),調(diào)用這個(gè)函數(shù)創(chuàng)建的定時(shí)器可以發(fā)出消息VM_TIMER,或者在定時(shí)期滿(mǎn)時(shí)調(diào)用一個(gè)回調(diào)函數(shù)。 使用這個(gè)函數(shù)會(huì)使時(shí)間延時(shí),精度不高。

2)使用timeSetEvent()

  給Windows驅(qū)動(dòng)程序最精確的周期性通知是由Windows的多媒體服務(wù)timeSetEvent()提供的。它的時(shí)間可以精確到1毫秒。

3)使用VXD

  可以使用VMM的Set_Global_time_Out()服務(wù)來(lái)迫使回調(diào)函數(shù)的幾個(gè)毫秒再執(zhí)行,這就創(chuàng)造了一個(gè)“只有一次”的定時(shí)器。VXD可以在回調(diào)中再次調(diào)用Set_Global_time_Out()來(lái)開(kāi)始下一個(gè)定時(shí)器,這樣提供了一個(gè)連續(xù)運(yùn)行的定時(shí)器了。

4)其它

  GetTickCount():精度不高;
  timeGetTime(): 可以以毫秒級(jí)返回windows開(kāi)始后的時(shí)間。

(2)時(shí)間限制

  一般這類(lèi)保護(hù)的軟件都有時(shí)間上的限制,如試用30天等,當(dāng)過(guò)了共享軟件的試用期后,就不予運(yùn)行,只有向軟件作者付費(fèi)注冊(cè)之后才能得到一個(gè)無(wú)時(shí)間限制的注冊(cè)版本。

  這種類(lèi)型程序很多,讓你有10天、20天、30天等,它們?cè)诎惭b時(shí),在你的系統(tǒng)某處做上時(shí)間標(biāo)記,每次運(yùn)行時(shí)用當(dāng)前系統(tǒng)時(shí)間和安裝時(shí)的時(shí)間比較,判斷你還否能使用。
  如最典型的30天限制的一種情況:
  mov ecx,1E ; 把1E (30天 十進(jìn)制) 放入 ecx
  mov eax,[esp+10] ; 把用過(guò)天數(shù)放到eax
  cmp eax,ecx ; 在此比較
  jl ...
  如碰到這種情況,只需把"mov eax,[esp+10]"改成"mov eax,1" 。

  要記住當(dāng)前年份、月份的十六進(jìn)制的一些表示方法,如:2000年的十六進(jìn)制是07D0,然后用W32DASM反匯編你的程序,用查找字符串的方法找D007(在機(jī)器碼中位置顛倒了一下)或其它類(lèi)似時(shí)間的數(shù)字,有可能會(huì)找到有價(jià)值的線索。你別小看這種方法,對(duì)那些沒(méi)怎么防范的程序,此招很有效。
  如:一程序限定在2000年使用,可能有如下一代碼:
  :00037805 817C2404D0070000 cmp dword ptr [esp+04], 000007D0 比較是否在2000年。

(3)與時(shí)間相關(guān)函數(shù)

1、GetSystemTime 得當(dāng)前系統(tǒng)時(shí)間

說(shuō)明:
在一個(gè)SYSTEMTIME中載入當(dāng)前系統(tǒng)時(shí)間,這個(gè)時(shí)間采用的是“協(xié)同世界時(shí)間”(即UTC,也叫做GMT)格式。
VOID GetSystemTime(
LPSYSTEMTIME lpSystemTime // SYSTEMTIME,隨同當(dāng)前時(shí)間載入的結(jié)構(gòu)
);


2、GetLocalTime 得當(dāng)前本地時(shí)間

VOID GetLocalTime(

LPSYSTEMTIME lpSystemTime // SYSTEMTIME,用于裝載本地時(shí)間的結(jié)構(gòu)
);


3、SystemTimeToFileTime 根據(jù)一個(gè)FILETIME結(jié)構(gòu)的內(nèi)容,載入一個(gè)SYSTEMTIME結(jié)構(gòu)

 

BOOL SystemTimeToFileTime(

CONST SYSTEMTIME * lpst, // SYSTEMTIME,包含了系統(tǒng)時(shí)間信息的一個(gè)結(jié)構(gòu)
LPFILETIME lpft // FILETIME,用于裝載文件時(shí)間的一個(gè)結(jié)構(gòu)
);
返回值 :非零表示成功,零表示失敗。


4、SetTimer 創(chuàng)建一定時(shí)器,在指定時(shí)間內(nèi)暫停

 

UINT SetTimer(
HWND hwnd, // 時(shí)間信息句柄
UINT idtimer, // 定時(shí)器ID 標(biāo)識(shí)符
UINT uTimeout, // 暫停時(shí)間
TIMERPROC tmprc // 處理定時(shí)過(guò)程的程序入口地址
);


上一篇:軟件保護(hù)技術(shù)--警告(NAG)窗口
下一篇軟件保護(hù)技術(shù)--Key File保護(hù)
溫馨提示:
凡在本公司進(jìn)行電路板克隆業(yè)務(wù)的客戶(hù),必須有合法的PCB設(shè)計(jì)版權(quán)來(lái)源聲明,以保護(hù)原創(chuàng)PCB設(shè)計(jì)版權(quán)所有者的合法權(quán)益;
【 字體: 】【打印此頁(yè)】 【返回】【頂部】【關(guān)閉

[軟件保護(hù)技術(shù)--時(shí)間限制]^相關(guān)文章