CN103577727B - 一种软件期限验证的方法及装置 - Google Patents

一种软件期限验证的方法及装置 Download PDF

Info

Publication number
CN103577727B
CN103577727B CN201310566983.0A CN201310566983A CN103577727B CN 103577727 B CN103577727 B CN 103577727B CN 201310566983 A CN201310566983 A CN 201310566983A CN 103577727 B CN103577727 B CN 103577727B
Authority
CN
China
Prior art keywords
software
moment
described software
mark
last time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310566983.0A
Other languages
English (en)
Other versions
CN103577727A (zh
Inventor
严冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Skyworth Qunxin Security Technology Co Ltd
Original Assignee
Shenzhen Skyworth Qunxin Security Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Skyworth Qunxin Security Technology Co Ltd filed Critical Shenzhen Skyworth Qunxin Security Technology Co Ltd
Priority to CN201310566983.0A priority Critical patent/CN103577727B/zh
Publication of CN103577727A publication Critical patent/CN103577727A/zh
Application granted granted Critical
Publication of CN103577727B publication Critical patent/CN103577727B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1073Conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软件期限验证的方法及装置,属于软件加密领域。所述方法包括:在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表;判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻;如果是,则运行所述软件;如果否,则提示用户注册。本发明通过所述软件期限验证的方法及装置,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题。

Description

一种软件期限验证的方法及装置
技术领域
本发明涉及软件加密领域,特别涉及一种软件期限验证的方法及装置。
背景技术
随着信息社会的发展,如何保护自己的软件版权,始终困扰着每一个程序员。在各种软件开发以及软件知识产权领域,利用灵活、便捷和经济的软件注册方法是相当有必要的,不仅对软件版权的保护有很大作用而且对于企业来说,成本的下降和应得利益的回收有实际的意义。
如图1所示,描述出了实现注册功能的流程。程序在启动之后,将进行注册验证和期限验证,注册验证的输出结果为假时,进行期限验证,根据期限验证的结果决定是否需要注册。
目前,期限验证通常采用以下方式:获取当前时刻和软件使用期限时间,当当前时刻早于软件使用期限时间时,通过期限验证。但是当前时刻根据系统时间获得,用户可能自行修改系统时间以延长软件使用时间,使得期限验证无效。
发明内容
本发明实施例提供了一种软件期限验证的方法及装置,解决了用户自行修改系统时间以期延长软件使用时间的问题。
一方面,本发明实施例提供了一种软件期限验证的方法,所述方法包括:
在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表;
判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻;
如果是,则运行所述软件;
如果否,则提示用户注册。
第二方面,本发明实施例提供了一种软件期限验证的装置,所述装置包括:
获取模块,用于在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表;
第一判断模块,用于判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻;
运行模块,用于如果判断模块判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则运行所述软件;
提示模块,用于如果判断模块判断不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则提示用户注册。
本发明提供的技术方案带来的有益效果是:
从上述本发明实施例可知,由于对首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻进行比较,识别出用户对系统时间的更改,因此,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为软件注册功能的流程图;
图2为本发明一种软件期限验证方法的第一实施例流程图;
图3为本发明一种软件期限验证的方法第二实施例流程图;
图4为本发明一种软件期限验证的装置第一实施例结构示意图;
图5为本发明一种软件期限验证的装置第二实施例结构示意图;
图6为注册表中时间的数据格式示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明一种软件期限验证的方法第一实施例流程,参见图2,所述方法包括:
101:在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表。
所述首次使用所述软件的时刻和所述上次使用所述软件的时刻记录在注册表中,开启软件时,从注册表中获取首次使用所述软件的时刻和上次使用所述软件的时刻,根据系统时间获取当前时刻。
在软件的算法设计中,采用三个变量来对时间信息进行存储并写入到注册表文件中,这里设置为StartTime、NowTime以及PrevTime。StartTime表示首次使用所述软件的时刻,NowTime表示当前时刻,PrevTime表示上次使用所述软件的时刻。当软件不是第一次运行时,读取注册表中写入的StartTime以及PrevTime值,并根据系统时间为NowTime赋值。
注册表中写入的时间虽然是首次启动和上次启动所述软件时获取的本机的系统时间,但是在写入到注册表时,进行了移位操作,也就是一定的算法加密,而且注册表中有自己特有的数据格式,如图6所示,所以用户无法自行对注册表中写入的时间进行修改。
102:判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻。
103a:如果是,则运行所述软件。
如果首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户是正常使用,没有对系统时间进行修改,此时,运行所述软件。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则说明用户是正常使用,没有对系统时间进行修改,此时,运行所述软件。
103b:如果否,则提示用户注册。
如果不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户对系统时间进行了自行修改,此时,提示用户注册,如果用户不进行注册,软件将直接关闭。
例如,当首次使用所述软件的时刻为2013年6月7日,上次使用所述软件的时刻为2013年9月5日,当前时刻为2013年8月13日,则说明用户对系统时间进行了自行修改,此时,提示用户注册,如果用户不进行注册,软件将直接关闭。
其中,步骤103a和步骤103b只执行其中一个。
本实施例通过对首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻进行比较,识别出用户对系统时间的更改,因此,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题。
本发明一种软件期限验证的方法第二实施例流程,如图3所示,所述方法流程包括:
201:根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册,如果否,执行步骤202;如果是,执行步骤204a。
有必要对软件是否注册进行算法运算,需要分别在软件和注册表中创建标识对软件的注册信息进行记录,通过对软件和注册表中标识的判断,做出相对应的处理。具体实施中,可以将所述软件和注册表中标识的值设置为布尔型,并在程序初始化时将软件中的第二标识置为FALSE和在写入注册表时将注册表中的第一标识写为假。软件在注册之后,将注册表中的第一标识和软件中的第二标识置为真。软件在验证注册时先对注册表中第一标识进行真假验证,为假的话表明软件没有注册,为真则再验证软件中的第二标识,软件中的第二标识为真则表明软件已经注册,为假则说明用户对注册表中的该值进行过修改。这样做就避免了注册表被恶意篡改而造成的漏洞。
202:在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表。
在软件的算法设计中,采用三个变量来对时间信息进行存储并写入到注册表文件中,这里设置为StartTime、NowTime以及PrevTime。StartTime表示首次使用所述软件的时刻,NowTime表示当前时刻,PrevTime表示上次使用所述软件的时刻。当软件不是第一次运行时,读取注册表中写入的StartTime以及PrevTime值,并根据系统时间为NowTime赋值。
注册表中写入的时间虽然是首次启动和上次启动所述软件时获取的本机的系统时间,但是在写入到注册表时,进行了移位操作,也就是一定的算法加密,而且注册表中有自己特有的数据格式,如图6所示,所以用户无法自行对注册表中写入的时间进行修改。
203:判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则判断判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻。
204a:如果是,则运行所述软件。
如果首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户是正常使用,没有对系统时间进行修改,此时,运行所述软件。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则说明用户是正常使用,没有对系统时间进行修改,此时,运行所述软件。
205a:将当前时刻赋值于上次使用所述软件的时刻。
将NowTime的值赋给PrevTime,并将其写入到注册表中。
204b:如果否,则提示用户注册。
如果不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户对系统时间进行了自行修改,此时,提示用户注册,如果用户不进行注册,软件将直接关闭。
例如,当首次使用所述软件的时刻为2013年6月7日,上次使用所述软件的时刻为2013年9月5日,当前时刻为2013年8月13日,则说明用户对系统时间进行了自行修改,此时,提示用户注册,如果用户不进行注册,软件将直接关闭。
205b:利用全局唯一标识符生成软件序列号,根据软件序列号采用MD5算法计算出和序列号唯一匹配的注册码,判断注册码和软件中预设的序号是否匹配,如果匹配则注册成功,并将所述第一标识和所述第二标识设为相同的逻辑值。
软件序列号的生成采用全局唯一标识符,序列号生成器内部经过一定算法,产生一串32个长度的十六进制的序列码,实质上是一个128位长度的二进制整数,在理论上可以产生2128(3.4×1038)个,生成两个相同的全局唯一标识符的可能性非常小,在程序发布时,将生成的软件序列号随程序一起发布,以此对软件进行唯一标识。当软件判断需要进行注册时,用户则将使用软件的序列号返还给开发商,开发商再将该序列号提供给注册机。注册机利用序列号生成器生成的序列号(即用户返还的序列号),经过MD5算法运算,生成一组32位长度的十六进制字符串,即为注册码,并提供给用户软件进行注册。通过判断注册码和软件中预设的序号是否匹配,判断注册是否成功;如果注册成功,将所述第一标识和所述第二标识设为相同的逻辑值,所述第一标识和所述第二标识的数据类型为布尔型。
全局唯一标识符,简称GUID,是一种由算法生成的唯一标识。主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的全局唯一标识符。随机生成两个相同全局唯一标识符的可能性是非常小的,但并不为0。所以,用于生成全局唯一标识符的算法通常都加入了非随机的参数,如时间,以保证这种重复的情况不会发生。
MD5(Message-Digest Algorithm5,消息摘要算法第五版),是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一,又译哈希算法、摘要算法等,是在1991年被Rivest开发出的技术上更为趋近成熟的,它在MD4的基础上增加了"安全-带子"的概念。虽然MD5比MD4复杂度大一些,但却更为安全。
其中,步骤204a、205a和步骤204b、205b只执行其中一个分支。
本实施例通过对首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻进行比较,识别出用户对系统时间的更改,因此,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题,并在软件中设置标识记录是否注册,避免了注册表被恶意篡改而造成的漏洞。
与本发明一种软件期限验证的方法的实施例相对应,本发明还提供一种软件期限验证的装置的实施例。
本发明一种软件期限验证的装置的第一实施例结构示意图如图4所示,所述装置40包括:获取模块410、第一判断模块420、运行模块430和提示模块440。
获取模块410,用于在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表。
所述首次使用所述软件的时刻和所述上次使用所述软件的时刻记录在注册表中,开启软件时,获取模块410从注册表中获取首次使用所述软件的时刻和上次使用所述软件的时刻,根据系统时间获取当前时刻。
在软件的算法设计中,采用三个变量来对时间信息进行存储并写入到注册表文件中,这里设置为StartTime、NowTime以及PrevTime。StartTime表示首次使用所述软件的时刻,NowTime表示当前时刻,PrevTime表示上次使用所述软件的时刻。当软件不是第一次运行时,获取模块410读取注册表中写入的StartTime以及PrevTime值,并根据系统时间为NowTime赋值。
注册表中写入的时间虽然是首次启动和上次启动所述软件时获取的本机的系统时间,但是在写入到注册表时,进行了移位操作,也就是一定的算法加密,而且注册表中有自己特有的数据格式,如图6所示,所以用户无法自行对注册表中写入的时间进行修改。
第一判断模块420,用于判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则第一判断模块420判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻。
运行模块430,用于如果判断模块420判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则运行所述软件。
如果判断模块420判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户是正常使用,没有对系统时间进行修改,此时,运行模块430运行所述软件。
例如,当首次使用所述软件的时刻为2013年4月5日,上次使用所述软件的时刻为2013年6月5日,当前时刻为2013年8月13日,则说明用户是正常使用,没有对系统时间进行修改,此时,运行模块430运行所述软件。
提示模块440,用于如果判断模块420判断不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则提示用户注册。
如果判断模块420判断不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则说明用户对系统时间进行了自行修改,此时,提示模块440提示用户注册,如果用户不进行注册,软件将直接关闭。
例如,当首次使用所述软件的时刻为2013年6月7日,上次使用所述软件的时刻为2013年9月5日,当前时刻为2013年8月13日,则说明用户对系统时间进行了自行修改,此时,提示模块440提示用户注册,如果用户不进行注册,软件将直接关闭。
其中,运行模块430和提示模块440只执行其中一个。
本实施例通过对首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻进行比较,识别出用户对系统时间的更改,因此,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题。
本发明一种软件期限验证的装置的第二实施例结构示意图如图5所示,所述装置50包括获取模块410、第一判断模块420、运行模块430、提示模块440、第二判断模块450、注册模块460和赋值模块470。其中获取模块410、第一判断模块420、运行模块430和提示模块440和一种软件期限验证的装置的第一实施例中相同,此处不再赘述。
第二判断模块450,用于根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册。
若第二判断模块450判断所述软件没有注册,则触发获取模块410,若判断所述软件已经注册,则触发运行模块430。
有必要对软件是否注册进行算法运算,需要分别在软件和注册表中创建标识对软件的注册信息进行记录,通过对软件和注册表中标识的判断,做出相对应的处理。具体实施中,可以将所述软件和注册表中标识的值设置为布尔型,并在程序初始化时将软件中的第二标识置为FALSE和在写入注册表时将注册表中的第一标识写为假。软件在注册之后,将注册表中的第一标识和软件中的第二标识置为真。第二判断模块450在验证注册时先对注册表中第一标识进行真假验证,为假的话表明软件没有注册,为真则再验证软件中的第二标识,软件中的第二标识为真则表明软件已经注册,为假则说明用户对注册表中的该值进行过修改。这样做就避免了注册表被恶意篡改而造成的漏洞。
注册模块460,用于利用全局唯一标识符生成软件序列号,根据软件序列号采用MD5算法计算出和序列号唯一匹配的注册码,判断注册码和软件中预设的序号是否匹配,如果匹配则注册成功,并将所述第一标识和所述第二标识设为相同的逻辑值。
软件序列号的生成采用全局唯一标识符,序列号生成器内部经过一定算法,产生一串32个长度的十六进制的序列码,实质上是一个128位长度的二进制整数,在理论上可以产生2128(3.4×1038)个,生成两个相同的全局唯一标识符的可能性非常小,在程序发布时,将生成的软件序列号随程序一起发布,以此对软件进行唯一标识。当软件判断需要进行注册时,用户则将使用软件的序列号返还给开发商,开发商再将该序列号提供给注册机。注册机利用序列号生成器生成的序列号(即用户返还的序列号),经过MD5算法运算,生成一组32位长度的十六进制字符串,即为注册码,并提供给用户软件进行注册。注册模块460通过判断注册码和软件中预设的序号是否匹配,判断注册是否成功;如果注册成功,将所述第一标识和所述第二标识设为相同的逻辑值,所述第一标识和所述第二标识的数据类型为布尔型。
全局唯一标识符,简称GUID,是一种由算法生成的唯一标识。主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的全局唯一标识符。随机生成两个相同全局唯一标识符的可能性是非常小的,但并不为0。所以,用于生成全局唯一标识符的算法通常都加入了非随机的参数,如时间,以保证这种重复的情况不会发生。
MD5(Message-Digest Algorithm5,消息摘要算法第五版),是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一,又译哈希算法、摘要算法等,是在1991年被Rivest开发出的技术上更为趋近成熟的,它在MD4的基础上增加了"安全-带子"的概念。虽然MD5比MD4复杂度大一些,但却更为安全。
赋值模块470,用于将当前时刻赋值于上次使用所述软件的时刻。
将NowTime的值赋给PrevTime,并将其写入到注册表中。
其中,所述首次使用所述软件的时刻和所述上次使用所述软件的时刻记录在注册表中,所述获取模块410具体用于开启软件时,从注册表中获取首次使用所述软件的时刻和上次使用所述软件的时刻,根据系统时间获取当前时刻。
其中,运行模块430、赋值模块470和提示模块440、注册模块460只执行其中一个分支。
本实施例通过对首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻进行比较,识别出用户对系统时间的更改,因此,实现了对软件期限的有效验证,解决了用户自行修改系统时间以期延长软件使用时间的问题,并在软件中设置标识记录是否注册,避免了注册表被恶意篡改而造成的漏洞。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种软件期限验证的方法,其特征在于,所述方法包括:
在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表;
判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻;
如果是,则运行所述软件;
如果否,则提示用户注册;
获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻之前还包括:
根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册;
若判断所述软件没有注册,则执行在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻步骤,若判断所述软件已经注册,则执行运行所述软件步骤;
所述根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册具体为:
将所述软件和注册表中标识的值设置为布尔型,并在程序初始化时将所述软件中的第二标识置为FALSE和在写入所述注册表时将所述注册表中的第一标识写为假;所述软件在注册之后,将所述注册表中的第一标识和所述软件中的第二标识置为真。
2.根据权利要求1所述的方法,其特征在于,所述在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻具体为:
开启所述软件时,从注册表中获取首次使用所述软件的时刻和上次使用所述软件的时刻,根据系统时间获取当前时刻。
3.根据权利要求1所述的方法,其特征在于,所述第一标识和所述第二标识的数据类型为布尔型,所述提示用户注册之后还包括:
利用全局唯一标识符生成软件序列号,根据软件序列号采用MD5算法计算出和序列号唯一匹配的注册码,判断注册码和软件中预设的序号是否匹配,如果匹配则注册成功,并将所述第一标识和所述第二标识设为相同的逻辑值。
4.根据权利要求1所述的方法,其特征在于,所述运行所述软件之后还包括:
将当前时刻赋值于上次使用所述软件的时刻。
5.一种软件期限验证的装置,其特征在于,所述装置包括:
获取模块,用于在开启软件时,获取首次使用所述软件的时刻、上次使用所述软件的时刻和当前时刻,所述首次使用所述软件的时刻和上次使用所述软件的时刻分别在首次启动和上次启动所述软件时写入注册表;
第一判断模块,用于判断首次使用所述软件的时刻是否早于上次使用所述软件的时刻,和上次使用所述软件的时刻是否早于当前时刻;
运行模块,用于如果判断模块判断首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则运行所述软件;
提示模块,用于如果判断模块判断不满足首次使用所述软件的时刻早于上次使用所述软件的时刻,和上次使用所述软件的时刻早于当前时刻,则提示用户注册;
所述装置还包括:
第二判断模块,用于根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册;
若第二判断模块判断所述软件没有注册,则触发获取模块,若判断所述软件已经注册,则触发运行模块;
所述根据注册表中的第一标识和软件中的第二标识的值判断所述软件是否已经注册具体为:
将所述软件和注册表中标识的值设置为布尔型,并在程序初始化时将所述软件中的第二标识置为FALSE和在写入所述注册表时将所述注册表中的第一标识写为假;所述软件在注册之后,将所述注册表中的第一标识和所述软件中的第二标识置为真。
6.根据权利要求5所述的装置,其特征在于,所述获取模块具体用于开启所述软件时,从注册表中获取首次使用所述软件的时刻和上次使用所述软件的时刻,根据系统时间获取当前时刻。
7.根据权利要求5所述的装置,其特征在于,还包括:
注册模块,用于利用全局唯一标识符生成软件序列号,根据软件序列号采用MD5算法计算出和序列号唯一匹配的注册码,判断注册码和软件中预设的序号是否匹配,如果匹配则注册成功,并将所述第一标识和所述第二标识设为相同的逻辑值。
8.根据权利要求5所述的装置,其特征在于,还包括:
赋值模块,用于将当前时刻赋值于上次使用所述软件的时刻。
CN201310566983.0A 2013-11-13 2013-11-13 一种软件期限验证的方法及装置 Expired - Fee Related CN103577727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310566983.0A CN103577727B (zh) 2013-11-13 2013-11-13 一种软件期限验证的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310566983.0A CN103577727B (zh) 2013-11-13 2013-11-13 一种软件期限验证的方法及装置

Publications (2)

Publication Number Publication Date
CN103577727A CN103577727A (zh) 2014-02-12
CN103577727B true CN103577727B (zh) 2016-10-19

Family

ID=50049491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310566983.0A Expired - Fee Related CN103577727B (zh) 2013-11-13 2013-11-13 一种软件期限验证的方法及装置

Country Status (1)

Country Link
CN (1) CN103577727B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138900B (zh) * 2015-07-30 2018-09-25 珠海格力电器股份有限公司 单机版软件有效期的控制方法和系统
CN105653902B (zh) * 2016-02-01 2018-11-13 深圳市新产业生物医学工程股份有限公司 软件注册方法和装置,注册码生成方法和装置
CN105808980B (zh) * 2016-03-07 2019-06-11 深圳市新产业生物医学工程股份有限公司 非法使用软件的检测方法和装置
CN108280619A (zh) * 2017-01-06 2018-07-13 腾讯科技(深圳)有限公司 期限识别方法和装置及智能硬件设备
CN107545637A (zh) * 2017-09-13 2018-01-05 广东亚太天能科技股份有限公司 一种电子锁的激活方法及服务器
CN111191194B (zh) * 2019-12-20 2022-05-13 北京时代民芯科技有限公司 一种多核处理器软件集成开发环境离线使用许可系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968834A (zh) * 2009-07-28 2011-02-09 上海移为通信技术有限公司 电子产品的防抄板加密方法和装置
CN102208003A (zh) * 2010-03-31 2011-10-05 鸿富锦精密工业(深圳)有限公司 软件程序保护系统及方法
CN103164642A (zh) * 2011-12-19 2013-06-19 比亚迪股份有限公司 一种防止软件盗版的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074323A1 (en) * 2001-10-02 2003-04-17 Koninklijke Philips Electronics N.V. Business model for downloadable video games

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968834A (zh) * 2009-07-28 2011-02-09 上海移为通信技术有限公司 电子产品的防抄板加密方法和装置
CN102208003A (zh) * 2010-03-31 2011-10-05 鸿富锦精密工业(深圳)有限公司 软件程序保护系统及方法
CN103164642A (zh) * 2011-12-19 2013-06-19 比亚迪股份有限公司 一种防止软件盗版的方法及系统

Also Published As

Publication number Publication date
CN103577727A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
CN103577727B (zh) 一种软件期限验证的方法及装置
CN111898360B (zh) 基于区块链的文本相似性检测方法及装置、电子设备
US20190303932A1 (en) Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts
CN110998629A (zh) 区块链中的随机数生成
US9721120B2 (en) Preventing unauthorized calls to a protected function
CN110263088B (zh) 结合代码标注与事件类型的有条件的收据存储方法和节点
CN110750329B (zh) 基于fpga实现虚拟机运算的方法及装置
CN110266644A (zh) 结合代码标注与交易类型的收据存储方法和节点
Clark et al. Non-interference for deterministic interactive programs
CN110245503A (zh) 结合代码标注与判断条件的收据存储方法和节点
CN109815289A (zh) 用于区块链网络的区块生成方法、计算设备、存储介质
CN110750488B (zh) 在fpga中实现外部调用的方法及装置
Tribastone Behavioral relations in a process algebra for variants
CN110363010A (zh) 一种基于MPSoC芯片的系统安全启动方法
CN109977702A (zh) 一种基于ds2432芯片的fpga设备加密认证系统和方法
CN110738567B (zh) 基于fpga的安全智能合约处理器的交易处理方法及装置
CN109933957A (zh) 一种软件期限验证的方法及装置
US20170061106A1 (en) Anti-reverse engineering unified process
CN112927077B (zh) 基于fpga实现合约调用的方法及装置
KR20190112959A (ko) 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치
Bickford et al. Automated Proof of Authentication Protocols in a Logic of Events.
CN103093144B (zh) 一种密码模块api安全性检测方法与系统
CN112187909B (zh) 一种基于区块链融资信息生成系统及方法
CN109302442A (zh) 一种数据存储证明方法及相关设备
Braghin et al. Towards ASM-based automated formal verification of security protocols

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Baolong Baolong Industrial City six road in Longgang District of Shenzhen City, Guangdong Province, No. 1 518000

Applicant after: SHENZHEN SKYWORTH QUNXIN SECURITY TECHNOLOGY Co.,Ltd.

Address before: 518000 Guangdong city of Shenzhen province Futian District Huaqiang North window of a modern block A 08G

Applicant before: SHENZHEN SKYWORTH QUNXIN SECURITY TECHNOLOGY CO.,LTD.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161019

Termination date: 20211113

CF01 Termination of patent right due to non-payment of annual fee