一种实用的软件加密方法

时间:2022-09-24 09:16:45

一种实用的软件加密方法

摘要:通过提取硬盘、CPU 序列号及网卡MAC地址等硬件参数,产生机器码,对机器码进行加密变换生成注册码,提供给合法用户注册软件。实际应用结果表明,该方法简洁有效,能防止非法拷贝,可用于小型软件的保护。

关键词:软件加密;注册;PC

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)30-7206-02

随着计算机性能的不断提升,以及互联网应用的不断扩展,计算机软件业得到了迅猛发展。软件是一种特殊的产品,为了防止软件的非法复制、盗版,保护软件开发者的利益,就必须对软件进行加密保护[1,2]。理论上,没有破解不了的软件,仅靠技术对软件进行保护是不够的,最终还要靠人们知识产权意识和法制观念的进步。软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,列入开发计划和开发成本中,并在保护强度、成本和易用性之间进行折衷考虑,选择合适的平衡点[3,4]。

本文提供了一种实用的软件加密方法,通过读取计算机硬盘序列号、CPU序列号及网卡MAC地址,以这些参数为基础产生机器码,用户把机器码通过电子邮件(E-mail)、电话或邮寄等方法告知软件开发者,由开发者通过注册机(软件)生成该软件的注册码回传给用户,供用户注册后使用软件。注册码与计算机的硬件参数息息相关,并通过特定文件进行保存,只能由进行注册的计算机使用,从而可有效防止软件的非法复制。

1 基本原理

硬盘序列号、CPU序列号及网卡MAC地址是生产厂家为区别出厂硬盘、CPU及网卡而设置的生产标识,不同的厂家硬盘序列号、CPU序列号及网卡MAC地址编码不同,但其标识是唯一且只读的,因此可使用这些参数作为计算机标识,在软件开发时作为加密标志,使软件运行时必须与计算机进行一一对应的认证,从而保证软件合法运行。

该方法工作原理流程如图1所示,软件运行时,首先读取计算机的硬盘序列号、CPU序列号及网卡MAC地址,根据这些参数合成一个编码,对该编码进行相关变换,生成计算机唯一的机器码告知用户,同时通过加密变换等手段(注册码生成模块)生成注册码,等待与用户输入的注册码进行比对。用户将机器码告知软件开发者。开发者通过加密变换等手段(注册机)进行处理,生成软件的注册码返回给用户,用户将注册码输入软件。软件将用户输入的注册码与自身计算得到的注册码进行比对,一旦结果正确即完成了软件注册,并将注册码保存到指定的注册文件中,以便软件今后运行时直接读取注册码,不必重复进行注册。

2 程序的实现

2.1计算机硬件参数读取

2.1.1 硬盘序列号读取

读取硬盘序列号程序使用了第三方开发的DiskID32.dll动态链接库,关键代码如下:

2.1.2 CPU序列号读取

CPU的序列号只能采用对CPU控制器直接操作的方式进行读取,即只能采用CPU的I/O指令操作控制器, 对于CPU序列号的读取采用了汇编语句读取,其关键代码如下:

2.1.3 MAC地址读取

通过调用NetBIOS函数获得网卡MAC地址,关键代码如下:

2.2 机器码与注册码生成

根据读取的硬盘序列号、CPU序列号及MAC地址,各抽取一定的字节组合生成新的计算机编码,对该编码进行相关变换,生成机器码。若在读取硬盘序列号、CPU序列号及MAC地址时出现异常,则根据预置的硬盘序列号、CPU序列号及MAC地址进行相应的替换,以保证机器码的顺利生成。

通过对机器码进行移位、异或、加密等变换处理,形成与机器码唯一对应的注册码,这个过程中的移位、异或、加密等变换处理由软件开发者根据加密强度的需要进行自主设定。

2.3 注册文件读写

使用Windows API函数进行注册文件的读写,关键代码如下:

3 结束语

本文提出的方法,借助计算机硬件参数信息进行软件加密注册,确保了软件注册的唯一性,可有效防止非法拷贝,保护了软件的产权。经过在VC++6.0环境中编程应用,结果表明该方法简洁有效,可用于小型软件的保护。然而,软件保护领域中没有绝对安全的保护技术,开发者只能在发现问题并不断解决问题中积累经验,以达到更高级别的软件安全[5]。

参考文献:

[1] 孙敬先,李长星,郑敏.基于硬盘序列号和RSA算法的软件加密方法[J].电脑知识与技术,2010,26(6):7267-7269.

[2] 段善荣.软件保护技术的分析及实现[J].武汉理工大学学报(信息与管理工程版),2009,31(6): 906-908.

[3] 李光辉,李琼仙.VFP环境下读取硬盘序列号实现应用程序加密的研究[J].昆明冶金高等专科学校学报,2011,27(1): 9-12.

[4] 王春来.基于计算机硬件序列号进行软件加密的技术[J].辽宁科技学院学报,2008,10(2):21-22.

[5] 段钢.加密与解密[M].北京:电子工业出版社,2008:168-190.

上一篇:小米已走上苹果的轨迹 下一篇:教学网络平台的设计与实现