end。或者VB 读写注册表,添写限制时间,具体代码可以搜索百度谷歌一下。
设置软件的使用期限方法如下:程序开头,
可以 GetFileTime 函数获得 文件 建立的时间,或最后一次进入时间,或最后一次写的时间为准。同 当前时间 作对比,算出时间差。
决定退出程序 或 跑程序。
GetFileTime 函数原型:
BOOL WINAPI GetFileTime( _In_ HANDLE hFile, _Out_opt_ LPFILETIME lpCreationTime, //文件建立的时间
_Out_opt_ LPFILETIME lpLastAccessTime, //最后一次进入时间 _Out_opt_ LPFILETIME lpLastWriteTime // 最后一次写的时间
)
================
函数获得 文件 的时间, 还有简单办法: 调 DOS 命令,
DIR /TC 程序名 或
DIR /TA 程序名 或
DIR /TW 程序名
来获取 要的 3 个时间 之一。
用转向到文件 的方法 system( "DIR /TC yuci.exe >abc.tmp")
再打开 abc.tmp 读得 月日年时分 时间
11/06/2013 09:15 AM 34,521 yuci.exe
====
其它办法很多,例如写注册表,写文件。无非是记录时间。
====
如果规定好使用日期,直接取当前时间 now = time (NULL)
比较 规定的 截止日期就可以了。
智能解除共享软件的时间限制刚刚我的留言回答没有显示,直接给你消息,下个软件就行了
RevTime(智能解除共享软件的时间限制)v2.50 绿色版
地址:http://www.orsoon.com/soft/2417.html
另外补充:
彻底解决共享软件的时间限制的方法
大家都知道:许多共享软件都会有使用时间上的限制(也有部分软件是使用次数上的限制,其机理是差不多的)。在第一次使用该软件时,它会告诉您这是一个Shareware(共享软件)或是Trial Version(试用版),您有 XX 天的试用时间(一般为30天左右)。在试用期间内,您可以享受部分和全部的功能。当然,这期间内它也会经常不厌其烦地提示您,请您购买正式版本,或请掏钱注册。30天的试用期一满,要不只是保留部分的基本功能,或者干脆就是您什么也用不了,想继续使用,Money!
对于许多国产共享软件来说,我们还好办,区区十元的注册费用,不就是一包烟钱吗?小意思!少抽一包烟就能享受了正版待遇,而且还有更多的技术支持。这我们何乐而不为呢?更何况,我等打心里也愿意(至少我是这么想的)。不过,对于那些国外的软件来说,我们却有些为难了。动不动就是个二三十美元。我等穷光蛋又没这个visa,那个Master卡的。就算想注册,也没那条件。真有那么多钱,那您还不如捐给希望工程了!所以我们只能另做打算了。
要解决软件的使用时间问题,除了去网上找一些现成的注册码外,我们还可自己动手去解决,毕竟要找到最新版本的注册码也不太容易。手工解决时间的办法,常用的一种就是修改系统日期,让时光倒流到软件试用的30天内。虽然这种方法对相当一部分软件来说还是有点儿作用,但蔽端是显而易见的。经常修改系统日期难免会造成一些混乱,今天为了这个软件改了一下日期,明天又得为另外一个软件改一下日期。结果到最后弄得一团糟,要不是您能用这个就不能用那个,能用那个就用不这个了。而且您的朋友也会惊奇地发现收到了您1900年的一声问候!2010年的一份稿件!再者,这种改时间的方法也不是万能的,现在的软件大多都已注意到了这个问题,所以采取了更高一层次的加密,不会就这样轻意地让您随便改改日期。否刚,算了吧,您就别再用它了,即使您重新安装软件,也无济于事(除非你重装整个系统)。
所以,我向您介绍另一种方法。既然它不让您改时间,那它肯定是已经记下了这个时间,去掉这个记录那不就行了吗? 下面我就来具体谈一下它的工作原理。
一般说来,在软件的第一次安装时(或是在第一次运行时),它会以当前的日期时间作为基准,作为试用期的开始,记录在案。以后的每一次运行都会在启动前先取出这个记录,再和当前的时间作一比较,如果在试用期内,那还好,您可以继续使用;反之,那便罢也,软件过期了。要继续使用,Money!所以前面所提到的修改系统时间的方法,在这里只是治标不治本。要解决这个问题,关键还是从根源抓起。
那么如何修改这个时间记录呢?您可别急。要改还不太简单,首先您得要先找到它吧。这也是本文的关键之所在,您可要看仔细了。
动动脑筋,想一想这个记录会放在哪儿呢?在Windows下,软件配置信息放在什么地方?对!就在注册表里(Registry),这个注册表是一个庞大而又很复杂的数据库,所以对于一般用户来说很神秘,不敢越雷池一步。这正好为一些软件加密提供了藏身之处,许多软件在第一次使用时,都会将当前的时间放在注册表里的某一个位置。以后的每次运行先从这儿取出时间,再和当前的作比较,从而判断出是否过期。而且这个记录在软件卸载后也不会自动清除掉,这就是为什么我们在软件过期后重装一遍时它还会说过期的原因。 既然知道了这个记录就在注册表里,那我们怎么去找到它呢?
有人会问,我怎么用注册表编辑器(RegEdit)的搜索功能找不到这个时间呢?
笨蛋!有这么玩捉迷藏的吗?既然是藏,难道能那样随随便便就让您给找到的?这个时间记录它都是以加密后的数据存放的,您看到的一般都是诸如A4ECFA57-D0A3-9FF3-8481-A492EB945058之类的古怪而无实际意义的字符串。想用Regedit去查找诸如2000-1-1之类的日期格式,白费心机。所以在注册表中您看到一串古怪的数据,如果它越古怪就越值得怀疑。
其实想在注册表中找到它们也不难。方法有两种:一是在软件还未安装前(第一次安装),先备份一下整个注册表,然后再装。将安装前后的两份注册表作一比较,找出新增加或改动了的地方,缩小可疑范围,然后再进一步判断。这儿我们可以借助Regsnap来完成此项工作。不过这种方法有很大缺点那就是工作量较大,而且一旦事先已安装过该软件了,此法便无效了。所以在这种情况下只能借助于第二种方法了。借助于一些相关的工具来监视软件对注册表的 *** 作,如大名鼎鼎的RegMon(注册表监视器)。利用regmon,监视到软件启动时从注册表读取这个记录的事件,从而找到它的藏身之地。
具体 *** 作方法下面我以Paint Shop Pro 6.0 为例来说明:
修改之前您得先安装好Paint Shop Pro(废话) 。准备好之后,那我们开始出发。打开Regmon,在过滤设置中填上psp(Paint Shop Pro 的执行文件名),表示只对PSP文件进行监视。设好过滤之后,开始监视。打开PSP,在出现启动画面和显示已使用时间的时候停止监视。想想在这一段时间里,PSP会从注册表中读取哪些信息呢?然后仔细分析一下监视到的结果(重点在后一部分,想一想这是为什么?)。由于软件把这个时间是以加密的形式存放在注册表中,所以regmon监视到的数据中有一串很奇怪的字符便是这时间了。虽然我们并不知道它具体的加密算法,但最简单的一个方法——删除不就解决问题了吗?双击监视到的这个数据,直接让RegMon打开RegEdit,定位到HKEY_CLASSES_ROOT\CLSID\{ADBB2D80-5DFD-11D2-A00C-00104B65AAF5}\MS,将右窗口中的iPID60u值删掉。重启PSP,这时您便会发现它又从第一天开始计时了。
怎么样?改起来并不难吧?其实要手工去除一些软件的时间限制就是这么简单,关键就是在于首先要找到这个时间记录的藏身之处,之后的步骤就是轻轻的一个Del 键。搞定!
当然也并非所有的软件都是这么简单就可以解决的,它们自身也似乎明白了这一点,光只在注册表中藏上一个值,是很容易被别人发现了。所以它们便再加上了一层保护。单独的一个记录也许您会瞎猫碰到死耗子,歪打正着地让您给撞上了。两个记录您还有那么好的运气吗?不过这也难不倒RegMon,只要是程序要读写注册表,那一切都逃不过它的监视。您只要仔细一点,多试试,N个记录也能给找出来!哈哈…….。要想人不知,除非已莫为。你做的任何每当都会留点儿蛛丝马迹的。嘿嘿…….。像藏有两个记录的软件有Turbo Browser98,它的两个记录分别藏在:
[HKEY_LOCAL_MACHINE\Security]
"Tool1."=hex:e0,59,9b,87,fd,d5,be,01
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\]
"Q. Status"=hex:e0,59,9b,87,fd,d5,be,01。
不过,难道它们仅仅只会在注册表里捉迷藏吗?硬盘空间那么大,哪儿不好躲?所以还有相当一部分软件的加密方法并不仅仅局限于注册表里,在硬盘上某个位置往往还有几条漏网之鱼。
经过一番苦战,我终于找到了如何将这群在逃分子揖拿归案的绝佳秘计,您可听好了,此法乃我精心研究数十载,取众家之所长,独成一派,传子不传女的修改大法。在做法之前,我还得再请个助手。而且这位兄台也正是前面所提到的 Regmon 娘家 Sysinternal 公司的又一同胞兄弟——Filemon。一听大名,便知其是如何了得。果不其然,任何软件对文件的各种 *** 作(无论是读,写,修改)都一一逃不过它那双火眼眼睛。
比如对Zipmagic2000,采用Regmon和Fiemon珠壁联合、共同合作的方式进行监视。通过RegMon可知Zipmagic2000启动时从注册表中读出了 [HKEY_CLASSES_ROOT\CLSID\{187b1580-324b-11d0-9398-0020aff0e034}] @="GYSupport"
"Data28"="BIPJBPIGFSLHGKDULONNMOMPJNIUMLDM" 的值,而FileMon发现了启动时也动了一下C:\windows\control.ini 文件,仔细分析一下Winini文件中的内容,发现有一段可疑字符串:
[screens data]
screens28=CJQKCQJHGTMIHLEVMPOONPNQKOJVNMEN
估计启动时就是要从这儿读取一个记录,然后再同上面注册表中的另一个记录进行一番互相校验,从而得出第一次安装的时间,再判断软件是否过期。
所以,为了验证一下我们推测是否正确,我们先调整系统时间,使之超出30天的试用期限。然后删除注册表中该键值和中这段字符。启动一下,这时,它便告之您,软件的试用时间记录已经遭到破坏,请重新安装。重新安装之后便又可使用了。哈哈,上述推断正确,加10分!
结束之前,我想也该稍做总结。
软件试用的加密常用的一种,就是比较简单的在注册表中的某一个位置藏上第一次使用的时间记录,以后的每次运行就是先取出这个记录,再同当前时间作一比较。从而判断是否过期。 注1、何时藏入这个记录各个软件不相同。有的是在您第一次安装时,安装程序取当前日期写进注册表。所以有时直接删除这个记录不管用,您还需重新安装一遍。而有的软件是在程序第一次运行时加入的,这也就是说在安装时它并没有写入时间。这些软件在运行前先要在注册表中查询这个记录,如果没有的话便以为这是第一次安装,自作聪明地再取当时时间写入注册表。所以对于这一类软件,我们只需删除这些记录就行了。 注2、不一定是只有一个记录,有的软件会在注册表中写入两个位置,互为校验。一旦其中一个被破坏,那么便会出错,无法继续使用。所以这一类软件,您要打扫彻底了,将所有的时间记录都清干净了。
另一种就是采取文件加密的方法。软件将时间记录写入一个文件(或者多个文件)中,并且这些文件藏得都是很隐蔽。一般是在初始文件中或者是以二进制文件的方式存放,藏在Windows 子目录或Windows\system 等不易被人发现的目录下,同时文件也具有隐藏或只读属性。总之一句话,就是不能让您轻易地就发现。不过这个我们也不怕,只要它启动时要读出这个记录,那就能把它揪出来。
当然还有些软件同时采用这两种方法,注册里藏几个值,系统目录里藏几个文件,它们之间互为校验,缺一不可。只要其中一个破坏,便会出错,所以这类软件您一定一定要弄干净了。如Quick View Plus 5.0,像它竟然一下子在注册表藏了两个值 HKEY_LOCAL_MACHINE\Software\CLASSES\.wav\{A4ECFA57-D0A3-9FF3-8481-A492EB945058} 和 HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{D60EB4AA-B69E-BA5C-88FE-CEFE4F8EECC7} 系统目录下有2个文件 c:\os067271.bin 、C:\WINDOWS\SYSTEM\ws476828.ocx 和一个目录 C:\WINDOWS\SYSTEM\Viewers! 可谓是层层加密,绞尽脑汁。不过它最终还是让我给解决了,嘻嘻……
不知一下说了这么多,您能明白了多少。“授人以鱼,不如授之以渔”,希望本文能对您起个抛砖引玉的作用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)