CN101241531A - 一种控制软件授权使用时间的方法 - Google Patents
一种控制软件授权使用时间的方法 Download PDFInfo
- Publication number
- CN101241531A CN101241531A CNA2007101196688A CN200710119668A CN101241531A CN 101241531 A CN101241531 A CN 101241531A CN A2007101196688 A CNA2007101196688 A CN A2007101196688A CN 200710119668 A CN200710119668 A CN 200710119668A CN 101241531 A CN101241531 A CN 101241531A
- Authority
- CN
- China
- Prior art keywords
- code
- software
- hardware
- time
- user function
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及软件版权保护技术领域,本发明提供的控制软件授权使用时间的方法由硬件提供读取实时时钟接口,硬件端可执行代码读取实时时钟,并与存放在硬件中的授权起止时间进行比对,比对结果并不输出到PC端,而是直接在硬件内传输给已移植在硬件内部的软件功能代码,由此部分代码对其进行判断操作,确定使用者是否拥有合法的软件使用授权。本发明的方法结合代码移植技术,完全在硬件内部完成对软件使用许可时间的控制,使用者无法通过修改PC系统时钟或软件预存授权使用时间等手段来获得额外的软件使用时间,从而有效地控制了软件使用许可时间,保证了软件版权安全。
Description
技术领域
本发明涉及软件版权保护技术领域,尤其涉及一种控制软件授权使用时间特别是软件授权使用的有效起止日期的方法。
背景技术
首先对本发明中涉及的部分技术术语作如下说明:
独立实时时钟:是指拥有独立的供电系统,可不间断的运行,从而给系统提供即时可靠的系统时间。
硬件端用户功能代码:是指从用户软件中提取出来转换成硬件可以识别的格式、放在硬件中、由硬件负责执行的用户功能代码。
硬件端授权判断代码:是指运行在硬件端,可对授权起止时间进行判断操作的代码,其主要功能为读取硬件的实时时钟,与预存在硬件端的授权起止时间进行比对从而判断使用者是否拥有合法的软件使用授权,并根据比对结果选择是否继续执行已移植在硬件内部的硬件端用户功能代码。
PC端可执行代码:是指运行在PC端、不包含被提取到硬件端部分的用户软件代码。
代码移植:软件保护技术的一种方式,是把软件的一部分代码从软件中提取出来,放到一个安全的硬件设备中,由硬件负责执行。把原来的调用这部分代码的地方换成对硬件设备的调用。通常情况下,被提取出来的代码一般都是软件的核心算法,所以缺少硬件就缺少了核心代码。虽然PC端可执行代码可以很容易拷贝,但硬件本身没有办法被复制,硬件端用户功能代码也不能被读出。所以该方法可以很好的保护软件,使之不被盗版和非法拷贝并使用。
目前现有的对软件授权使用时间的控制方法有如下几种:
1.PC端直接读取PC系统时间,与预存于PC端的授权起止时间进行比对,如果超出授权时间的起止范围,则认为软件不再拥有使用许可授权并禁止使用。
2.使用连接在计算机接口上的带有独立实时时钟功能的硬件,由PC端发送命令读取硬件实时时钟的时间,与预存于PC端的授权起止时间进行比对,如果超出授权时间的起止范围,则认为软件不再拥有使用许可授权并禁止使用。
3.使用连接在计算机接口上的带有独立实时时钟功能的硬件,由硬件端读取实时时钟,与预存于硬件端的授权起止时间进行比对,并将比对结果输出给PC端,由PC端对输出结果进行判断是否软件拥有使用许可授权。
这三种方法可以独立或者结合使用。但是在实际使用过程中,上述控制方法均存在较为严重的可靠性问题。
对于上述第一种控制方法,使用者可以通过篡改PC系统的时钟,获得额外的软件非法使用时间。
对于上述第二种控制方法,可以避免使用者通过修改PC系统时钟获得额外使用时间,但使用者仍可以通过修改软件中预存的授权起止时间,或者通过监听PC端读取硬件的实时时钟的通讯过程,并修改通讯结果的方法,获得额外的软件非法使用时间。
对于上述第三种控制方法,可以避免使用者通过修改PC系统时钟获得额外使用时间,而且由于没有预存授权起止时间在PC端,从而也可以避免使用者通过修改软件中预存的授权起止时间获得额外的软件非法使用时间,但是使用者仍然可以通过监听并修改硬件端输出给PC端的比对结果从而达到获得额外的软件非法使用时间的目的。
发明内容
本发明的目的是解决上述几种软件使用时间控制方法中存在的可靠性问题,提供一种安全的针对软件使用许可时间授权的控制方法。
本发明采用的技术方案是:一种利用独立硬件装置对软件使用时间进行控制的方法,其中所述独立硬件装置包括独立实时时钟电路和存储器,该存储器存储着软件授权判断代码、用户功能代码和授权起止时间,所述软件的可执行代码运行于PC端,所述用户功能代码是利用软件移植技术从软件中提取的代码,PC端可执行代码正常执行时必须调用该用户功能代码,所述授权判断代码被执行时自动读取实时时钟电路的当前时间和授权起止时间,并对二者进行对比判断,判断方式是对比时钟电路的当前时间是否落在授权起止时间范围内,并输出相应判断结果;其中,上述用户功能代码被执行前或执行后输出执行结果前,独立硬件装置先执行授权判断代码获得判断结果或直接读取授权判断代码被独立硬件装置预先执行、输出并存储在独立硬件装置存储器中的判断结果来决定是否执行用户功能代码和输出执行结果给PC端可执行代码,若判断结果为正常,则执行用户功能代码并输出执行结果给PC端可执行代码或直接输出执行结果给PC端可执行代码,否则不执行用户功能代码或执行后不输出执行结果给PC端可执行软件。
其中,所述授权判断代码被独立硬件装置预先执行的方式是:在独立硬件装置上电后自动被执行或者定期被执行。。
发明的有益效果:本发明的方法既不依赖于PC系统的时钟,也不需要通过软件来比对独立时钟硬件的时间,更没有硬件端可执行代码对授权时间控制的结果在PC端的输出,而是结合代码移植技术,完全在硬件内部完成对软件使用许可时间的控制,使用者无法通过上述的手段来获得额外的软件使用时间,从而有效地控制了软件使用许可时间,保证了软件版权安全。
附图说明
图1、图2、图3为本发明方法的流程图;
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明中的独立时钟功能硬件设备提供读取实时时钟接口并支持代码移植技术,用于软件保护或身份认证。例如,精锐系列时钟锁,采用智能卡芯片。时钟芯片则由于读取时钟接口所支持的通信协议实施例的不同可选择不同的芯片。
如图1所示,在软件发行之前,为了保护版权,有效控制软件的授权使用时间,首先需要开发硬件端可执行代码;然后将编译好的硬件端可执行代码程序下载到时钟硬件;软件运行时,首先执行PC端可执行代码,然后在硬件端进行授权起止时间的判断操作,并根据判断操作的结果来选择执行硬件端可执行代码;硬件端可执行代码执行结束后,PC端可执行代码根据硬件输出标识确定软件执行结果是否正确,从而判定使用者是否拥有合法的使用授权。
下面参考图2,结合具体实施例,对本发明做进一步阐述。以下两个实施例中的硬件端用户功能代码均为对输入数据进行冒泡排序操作,此处“对输入数据进行冒泡排序操作”的功能仅为阐述实施例而用,实际应用过程中可根据加密方案任意选择硬件端用户功能代码的功能应用。
实施例一
在本实施例中采用精锐IV时钟锁作为独立实时时钟硬件。实施步骤如下:
1、在软件发布之前,首先为该软件开发硬件端授权判断代码和硬件端用户功能代码,功能包括:
a)硬件端授权判断代码:判断使用者是否拥有合法的软件授权;
b)硬件端用户功能代码:对输入数据进行冒泡排序。
将编译好的代码程序移植到精锐IV时钟锁内部。
2、软件发行后,用户运行软件时,首先执行PC端可执行代码,然后将欲进行排序的数据传入至硬件端,并开始执行硬件端授权判断代码,此过程中:
c)通过调用读取实时时钟接口读取硬件实时时钟;
d)将读取的实时时钟与预存在硬件中的授权起止时间进行比对从而判断使用者是否拥有合法的软件授权。。
e)如果使用者拥有合法授权,则继续执行已移植在硬件内部的硬件端用户功能代码,即对输入数据进行冒泡排序操作;反之,如果使用者不拥有合法授权,则不执行硬件端用户功能代码,程序终止执行,并将错误标识输出至PC端。
PC端可执行代码可根据硬件输出标识来确定软件执行结果是否正确。
在本实施例一中,使用硬件提供的独立时钟功能,开发硬件端授权判断代码,将软件授权使用时间的控制过程完全放置于硬件内部进行,并结合代码移植技术,有效地控制了软件使用许可时间,保证了软件版权安全。
实施例二
在本实施例中,采用精锐III时钟锁作为独立实时时钟硬件,该硬件具有固化的授权控制功能,此功能可自动获取硬件实时时钟,并与预设的软件授权信息进行比较判断控制。实施步骤如下:
实施步骤:
1、利用硬件提供的授权控制功能接口,在硬件端设置软件授权信息。
2、开发硬件端用户功能代码。代码功能为,对输入数据进行冒泡排序,并将编译好的代码程序移植到精锐III时钟锁内部。
3、软件运行时,首先执行PC端可执行代码,然后将欲进行排序的数据传入至硬件端,此时:
a)硬件首先会通过固化的授权控制功能自动判断处理预先设置在硬件端的软件授权信息,判断使用者是否拥有合法的软件授权。
b)如果使用者拥有合法授权,则继续执行已移植在硬件内部的硬件端用户功能代码,即对输入数据进行冒泡排序操作;反之,如果使用者不拥有合法授权,则不执行硬件端用户功能代码,程序终止执行,并将错误标识输出至PC端。
PC端可执行代码可根据硬件输出标识来确定软件执行结果是否正确。
与实施例一相比,本实施例二同样是将软件授权使用时间的控制过程完全放置于硬件内部进行,并结合代码移植技术,有效地控制软件使用许可时间。所不同的是,相对于实施例一所使用的硬件,本实施例使用的硬件具有固化在硬件内部的授权控制功能,软件的授权信息可以利用该功能接口预先设置在硬件中,在程序执行时,固化的授权控制功能会自动对预设的授权信息进行判断处理,从而在保证软件版权安全的同时,提高了易用性。
虽然本发明是具体结合两个优选实施例示出和说明的,但熟悉该技术领域的人员可以理解,其中无论在形式上还是在细节上都可以作出各种改变,这并不背离本发明的精神实质和专利保护范围。
Claims (2)
1. 一种利用独立硬件装置对软件使用时间进行控制的方法,其中所述独立硬件装置包括独立实时时钟电路和存储器,该存储器存储着软件授权判断代码、用户功能代码和授权起止时间,所述软件的可执行代码运行于PC端,所述用户功能代码是利用软件移植技术从软件中提取的代码,PC端可执行代码正常执行时必须调用该用户功能代码,所述授权判断代码被执行时自动读取实时时钟电路的当前时间和授权起止时间,并对二者进行对比判断,判断方式是对比时钟电路的当前时间是否落在授权起止时间范围内,并输出相应判断结果,其特征在于:
用户功能代码被执行前或执行后输出执行结果前,独立硬件装置先执行授权判断代码获得判断结果或直接读取授权判断代码被独立硬件装置预先执行、输出并存储在独立硬件装置存储器中的判断结果来决定是否执行用户功能代码和输出执行结果给PC端可执行代码,若判断结果为正常,则执行用户功能代码并输出执行结果给PC端可执行代码或直接输出执行结果给PC端可执行代码,否则不执行用户功能代码或执行后不输出执行结果给PC端可执行软件。
2. 根据权利要求1所述的方法,其特征在于所述授权判断代码被独立硬件装置预先执行的方式是:在独立硬件装置上电后自动被执行或者定期被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101196688A CN101241531A (zh) | 2007-07-27 | 2007-07-27 | 一种控制软件授权使用时间的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101196688A CN101241531A (zh) | 2007-07-27 | 2007-07-27 | 一种控制软件授权使用时间的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101241531A true CN101241531A (zh) | 2008-08-13 |
Family
ID=39933058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101196688A Pending CN101241531A (zh) | 2007-07-27 | 2007-07-27 | 一种控制软件授权使用时间的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101241531A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847188A (zh) * | 2010-04-28 | 2010-09-29 | 北京飞天诚信科技有限公司 | 一种基于时钟的安全装置的软件保护方法及安全装置 |
WO2011000281A1 (zh) * | 2009-07-02 | 2011-01-06 | 北京飞天诚信科技有限公司 | 保护软件的方法、装置和系统 |
CN102402656A (zh) * | 2010-09-19 | 2012-04-04 | 邹芬 | 一种使用实时独立于主机时钟的双电源系统装置实现软件授权的方法 |
CN102779247A (zh) * | 2012-06-25 | 2012-11-14 | 苏州阔地网络科技有限公司 | 一种软件认证方法及系统 |
CN102779258A (zh) * | 2012-07-06 | 2012-11-14 | 苏州阔地网络科技有限公司 | 一种软件有效期控制方法及系统 |
CN103312513A (zh) * | 2013-06-19 | 2013-09-18 | 北京华胜天成科技股份有限公司 | 分布式环境下验证使用授权的方法及系统 |
-
2007
- 2007-07-27 CN CNA2007101196688A patent/CN101241531A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000281A1 (zh) * | 2009-07-02 | 2011-01-06 | 北京飞天诚信科技有限公司 | 保护软件的方法、装置和系统 |
US20110119766A1 (en) * | 2009-07-02 | 2011-05-19 | Zhou Lu | Method, device and system for protecting software |
US8701207B2 (en) * | 2009-07-02 | 2014-04-15 | Feitian Technologies Co., Ltd. | Method, device and system for protecting software |
CN101847188A (zh) * | 2010-04-28 | 2010-09-29 | 北京飞天诚信科技有限公司 | 一种基于时钟的安全装置的软件保护方法及安全装置 |
CN102402656A (zh) * | 2010-09-19 | 2012-04-04 | 邹芬 | 一种使用实时独立于主机时钟的双电源系统装置实现软件授权的方法 |
CN102779247A (zh) * | 2012-06-25 | 2012-11-14 | 苏州阔地网络科技有限公司 | 一种软件认证方法及系统 |
CN102779258A (zh) * | 2012-07-06 | 2012-11-14 | 苏州阔地网络科技有限公司 | 一种软件有效期控制方法及系统 |
CN103312513A (zh) * | 2013-06-19 | 2013-09-18 | 北京华胜天成科技股份有限公司 | 分布式环境下验证使用授权的方法及系统 |
CN103312513B (zh) * | 2013-06-19 | 2016-03-02 | 北京华胜天成科技股份有限公司 | 分布式环境下验证使用授权的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101241531A (zh) | 一种控制软件授权使用时间的方法 | |
CN102521548B (zh) | 一种管理功能使用权限的方法及移动终端 | |
CN107341368B (zh) | 许可证有效时间校验方法及装置 | |
CN110866226B (zh) | 一种基于加密技术的java应用软件版权保护方法 | |
CN101866404B (zh) | 软件系统模块独立授权控制方法和装置 | |
CN103544451B (zh) | 基于分期维护的plc加密方法及系统 | |
CN102136048B (zh) | 基于手机蓝牙的计算机环绕智能防护装置及方法 | |
CN103425909B (zh) | 控制系统、控制装置及程序执行控制方法 | |
CN106972926B (zh) | 一种无线汽车钥匙的加密解密方法、装置及系统 | |
WO2005099340A3 (en) | On-line centralized and local authorization of executable files | |
CN103020495B (zh) | 一种嵌入式软件防盗版加密方法 | |
CN106133739A (zh) | 数据到安全元件的非易失性存储器中的加载的安全保护 | |
CN104144411B (zh) | 加密、解密终端及应用于终端的加密和解密方法 | |
CN103414570A (zh) | 一种远程密码管控的方法 | |
US20070204328A1 (en) | Production security control apparatus for software products and control method thereof | |
CN106874714A (zh) | 一种软件授权方法 | |
CN112965726B (zh) | 芯片的嵌入式程序烧录方法及系统 | |
CN108628242A (zh) | 一种基于plc控制平台的机床设备加解密与授权方法 | |
CN105184119B (zh) | 一种软件的安全保护方法 | |
CN100531299C (zh) | 一种应用于直播和点播环境下的终端机顶盒安全控制方法 | |
CN111209543B (zh) | 一种加密、验证发电机组控制器的方法及加密系统 | |
CN104462932A (zh) | 嵌入式设备维护密码的生成及其验证方法 | |
JP5283432B2 (ja) | 認証装置、移動端末、電気鍵システムおよび認証制御方法 | |
CN111641873A (zh) | 一种解锁电视开发者模式的方法、系统及可读存储介质 | |
CN201965704U (zh) | 自动管理pos终端升级的终端管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080813 |