软硬件结合的多维度的软件知识产权保护方法与流程

文档序号:11475999阅读:1299来源:国知局
软硬件结合的多维度的软件知识产权保护方法与流程

本发明涉及一种多维度的软件知识产权保护方法,属于计算机与信息科学技术领域。



背景技术:

如今人类已经步入了21世纪。科学技术的发展使得人类不断进步,随之而来的是生活空间的不断扩大。计算机伴随着科技革命已经深入到我们生活的方方面面,随之而来的是计算机软件的蓬勃发展。

从20世纪60年代软件产业兴起开始,计算机软件的侵权现象日益明显。与此同时,德国学者针对计算机软件盗版猖獗的现象提出了用法律去保护软件知识产权的方案。目前,对软件的知识产权保护主要分为如下2方面:一方面是通过法律手段进行保护如将软件著作权纳入版权法、采用专利法、商业秘密法等。另一方面是通过技术手段对软件进行保护如代码混淆、加密机、反调试等。

目前行业内认同的软件知识产权保护方法是为自己的软件申请专利和版权。但是,并不是所有开发的软件都符合申请软件版权的标准,而软件的开发消耗了大量的人力和物力。因此,对于无法申请软件专利和版权的软件,业内通常采用技术手段对软件进行知识产权保护。

目前常用的技术手段如下:软件加壳技术、软件反调试策略、加密机等。这些方法都具有一定的软件防破解的能力,但是却无法防止软件被拷贝以及恶意移植,这就导致盗版者购买正版软件并随意散播或恶意获益等现象的发生。



技术实现要素:

本发明的目的:针对目前软件知识产权保护方法无法有效防止恶意拷贝,无法灵活设定授权时间等缺陷,提出一种多维度的软件知识产权保护方法,该方法有效防止用户拷贝破解软件,并保证用户在未插加密锁或未在授权时间范围内不可使用被保护系统。此方法保护措施完备,保护强度大。

本发明的设计原理为:首先将授权时间及授权天数写入授权文件,其次,提取计算机唯一信息(如bios信息、cpu型号、mac地址),并将唯一信息进行融合排序等操作,生成授权证书的加密秘钥。利用加密秘钥对授权文件进行加密,生成授权证书。在待保护软件中内嵌授权证书解密模块,解密并计算得到软件授权的截止时间,并与加密锁中内置时钟进行比对,判断当前时间是否在授权时间范围之内。此外,将软件的动态库与加密锁进行绑定加壳,保证软件与加密锁一一对应。最后,对软件进行代码混淆并加入反调试措施,防止软件被破解。

本发明分为2个过程,软件授权过程和软件运行过程。

其中软件授权过程的技术方案是通过如下步骤实现的:

步骤1,生成授权证书,利用提取的计算机唯一信息生成的加密秘钥加密授权文件并生成授权证书,生成授权证书的具体实现方法为:

步骤1.1,将当前时间和授权天数写入授权文件。

步骤1.2,提取计算机唯一信息并对信息进行混淆操作形成加密秘钥。

步骤1.3,利用加密算法和加密秘钥对授权文件进行加密,生成授权证书。

步骤2,将软件核心函数抽取并封装成动态链接库,将动态链接库进行加密锁加壳绑定,并设置轮询检测加密锁的函数,定时检测加密锁是否存在。

步骤3,加入反调试模块,防止软件被逆向破解。

软件的运行过程技术方案是通过如下步骤实现的:

步骤1,待保护软件内嵌授权文件解密模块,提取计算机唯一信息并形成解密秘钥,解密授权证书,并与加密锁内置时钟对比,判断当前是否处于授权时间范围之内,授权证书解密的具体实现方法为:

步骤1.1,提取计算机唯一信息并对信息进行混淆操作形成解密秘钥。

步骤1.2,解密授权证书,提取授权时间和授权天数,并计算授权截止时间。

步骤1.3,提取加密锁中内置时钟并判断当前时间是否在授权时间范围内,若在授权时间范围内,软件继续运行,若不在授权范围内,软件停止运行。

步骤2,当软件调用加密锁加壳后的动态链接库时,会判断加密锁是否存在。若加密锁存在,软件继续运行,若加密锁不存在,软件停止运行。

步骤3,如果软件被调试运行,软件会检测相关调试器或调试标志位,并停止软件的运行。

有益效果

相比于目前应用的软件知识产权保护的技术手段,本发明结合了软件层面和硬件层面的多维度知识产权保护。通过软件层面加密授权时间和硬件层面校验授权时间,有效防止软件被随意拷贝和恶意移植。在此基础上,加入反调试措施,增加软件的破解难度,因此具有更强的保护强度和广泛的适用性。

附图说明

图1为本发明提出的多维度软件知识产权保护框架图;

图2为本发明提出的授权证书生成流程图;

图3为本发明提出的授权证书解析流程图;

图4为本发明提出的加密锁加壳流程图;

图5为本发明提出的反调试流程图。

具体实施方式

为了更好的说明本发明的目的和优点,下面结合附图和实施用例对本发明方法的实施方式做进一步详细说明。在此,本发明的示意性实施用例及其中说明用于解释本发明,但并不作为对本发明的限定。

实施用例中包括1台服务器,服务器采用linuxubuntu操作系统,加密锁型号为safenetldk。

第一环节

本环节的目的是生成授权证书。具体实施步骤如下:

步骤1.1,在服务器上提取计算机唯一信息包括cpu序列号、mac地址、bios序列号3个唯一信息,并将这3个序列号进行倒叙拼接移位,生成加密秘钥,如附图2所示。

步骤1.2,将授权起始时间(当前时间)和授权天数写入待加密的授权文件中,如附图2所示。

步骤1.3,用步骤1.1生成的加密秘钥对步骤1.2生成的待加密的授权文件进行des64位加密,生成最终的授权证书,如附图2所示。

步骤1.4,将授权证书拷贝到软件运行的对应目录下,保证软件运行时可以找到授权证书,如附图2所示。

第二环节

本环节的目的是在软件运行前和运行期间调用授权证书解密模块对授权证书进行解密,判断当前时间是否在授权范围内。具体实施步骤如下:

步骤2.1,在当前计算机上提取计算机唯一信息,生成解密秘钥,由于采用des对称性加密算法,因此加密秘钥和解密秘钥必须相同,即解密秘钥必须与步骤1.1的加密秘钥相同,如附图3所示。

步骤2.2,利用步骤2.1生成的解密秘钥解密授权证书,得到授权起始时间和授权天数,并计算得出授权截止时间,如附图3所示。

步骤2.3,根据safenetldk的内置时钟提取加密锁内置时间,并与授权截止时间进行对比,若软件在授权时间范围内,软件继续运行,若软件不在授权范围内,软件停止运行,如附图3所示。

第三环节

本环节的目的是将软件与加密锁加壳绑定,保证一款软件对应唯一一个加密锁。具体实施步骤如下:

步骤3.1,利用safenetldk加密锁的加壳特性将软件的动态链接库加壳绑定,如附图4所示。

步骤3.2,在软件中增加safenetldk加密锁轮询检测模块,间隔10min检测加密锁是否存在,并以此为依据决定软件是否继续运行,如附图4所示。

第四环节

本环节的目的是在软件中加入反调试措施,增加软件的破解难度同时也保护授权证书解密模块和加密锁循环校验模块不被破解和绕过。具体实施步骤如下:

步骤4.1,检测当前进程的父进程是否是调试器进程,如附图5所示。

步骤4.2,检测当前进程的调试标志位是否开启,如附图5所示。

步骤4.3,检测ptrace函数是否存在,如附图5所示。

步骤4.4,对进程当前的状态进行判断,如果以上步骤任意一点满足,则视为软件正在被调试,结束软件运行进程,如附图5所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1