老文章档案 · 2003 年

常见软件保护技术之时间限制

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-13 · 作者:看雪 人气: · 出处:嬴政天下整理收藏)

3、时间限制

(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 // 处理定时过程的程序入口地址

);

(出处:嬴政天下整理收藏)

相关文章:

·5StarZip 2001 破解--初学者破解入门

相关软件:

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史