• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經典案例

    聯系方式

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

    您當前的位置:首頁 > 技術中心 > 關于知識產權

    軟件保護技術--時間限制


    (1) 定時器   有些程序的試用版每次運行都有時間限制,例如運行10分鐘或20分鐘就停止工作,必須重新運行該程序才能正常工作。這些程序里面自然有個定時器來統計程序運行的時間。

    1)使用Settimer()

      常用的計數器是函數Settimer(),調用這個函數創建的定時器可以發出消息VM_TIMER,或者在定時期滿時調用一個回調函數。 使用這個函數會使時間延時,精度不高。

    2)使用timeSetEvent()

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

    3)使用VXD

      可以使用VMM的Set_Global_time_Out()服務來迫使回調函數的幾個毫秒再執行,這就創造了一個“只有一次”的定時器。VXD可以在回調中再次調用Set_Global_time_Out()來開始下一個定時器,這樣提供了一個連續運行的定時器了。

    4)其它

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

    (2)時間限制

      一般這類保護的軟件都有時間上的限制,如試用30天等,當過了共享軟件的試用期后,就不予運行,只有向軟件作者付費注冊之后才能得到一個無時間限制的注冊版本。

      這種類型程序很多,讓你有10天、20天、30天等,它們在安裝時,在你的系統某處做上時間標記,每次運行時用當前系統時間和安裝時的時間比較,判斷你還否能使用。
      如最典型的30天限制的一種情況:
      mov ecx,1E ; 把1E (30天 十進制) 放入 ecx
      mov eax,[esp+10] ; 把用過天數放到eax
      cmp eax,ecx ; 在此比較
      jl ...
      如碰到這種情況,只需把"mov eax,[esp+10]"改成"mov eax,1" 。

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

    (3)與時間相關函數

    1、GetSystemTime 得當前系統時間

    說明:
    在一個SYSTEMTIME中載入當前系統時間,這個時間采用的是“協同世界時間”(即UTC,也叫做GMT)格式。
    VOID GetSystemTime(
    LPSYSTEMTIME lpSystemTime // SYSTEMTIME,隨同當前時間載入的結構
    );


    2、GetLocalTime 得當前本地時間

    VOID GetLocalTime(

    LPSYSTEMTIME lpSystemTime // SYSTEMTIME,用于裝載本地時間的結構
    );


    3、SystemTimeToFileTime 根據一個FILETIME結構的內容,載入一個SYSTEMTIME結構

     

    BOOL SystemTimeToFileTime(

    CONST SYSTEMTIME * lpst, // SYSTEMTIME,包含了系統時間信息的一個結構
    LPFILETIME lpft // FILETIME,用于裝載文件時間的一個結構
    );
    返回值 :非零表示成功,零表示失敗。


    4、SetTimer 創建一定時器,在指定時間內暫停

     

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


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

    主站蜘蛛池模板: 制服丝袜怡红院| 国产黄色片在线观看| 四虎影视在线永久免费观看| 久久亚洲精品国产精品黑人| 韩国三级hd中文字幕| 日韩国产一区二区| 国产区视频在线| 久久久久久成人毛片免费看| 阿娇囗交全套高清视频| 日产精品卡一卡2卡三卡乱码工厂 日产精品卡二卡三卡四卡乱码视频 | Aⅴ精品无码无卡在线观看 | 日本护士xxxx视频| 国产午夜亚洲精品不卡| 久久久无码精品午夜| 色欲精品国产一区二区三区AV| 无码精品久久久久久人妻中字| 啊好大好爽视频| 一个人看的www在线高清小说| 男女性接交无遮挡免费看视频| 夜夜精品视频一区二区| 亚洲欧美天堂网| 男女拍拍拍免费视频网站| 晚上一个人看的www| 国产亚洲综合一区二区在线| 中文字幕亚洲日韩无线码| 精品午夜福利1000在线观看| 天天爱天天操天天干| 亚洲欧洲中文日韩久久av乱码| 两个人看的www在线视频| 最近韩国电影免费观看完整版中文| 国产小视频91| 中文国产成人精品久久下载| 男女无遮挡毛片视频播放 | 欧美午夜伦y4480私人影院| 国产成人综合久久久久久| 久久亚洲AV午夜福利精品一区| 精精国产XXXX视频在线| 天天干天天操天天操| 亚洲人成网站999久久久综合| 韩国电影中文字幕在线观看| 成av免费大片黄在线观看|