浅谈软件保护技术

浅谈软件保护技术

[摘要]随着计算机的广泛应用和网络的日益普及,作为计算机应用主要载体软件也随着计算机和网络的日益普及而得到飞速的发展。软件是一种知识密集的特殊劳动产品,研制一个软件产品需要耗费大量的人力、物力,难度大,成本高。但是,软件的复制却很容易的事。这就导致了非法复制、盗版软件之风的泛滥。在这种形势下,为了防止软件的非法复制、盗版,保护软件开发商的利益,软件的研制者和销售商如何对自己的软件进行保护和数据加密,就显得十分必要了。下面通过分析软件的常用保护方式和破解方法来谈谈软件的保护及数据加密技术以及怎样加密自己的软件来防破解。

[关键词]加密破解反编译密码学

一、软件加解密的发展历史

要了解软件的加密的发展历史概况,我们就必须从操作系统的发展历史上去了解,在这里,我们以微软公司的操作系统为例来说明软件加密的发展历史概况。

(一)DOS时代。由于DOS操作系统的脆弱性,在其中运行的普通应用程序几乎可以访问系统中的任何资源,如直接访问任何物理内存、直接读写任何磁盘扇区、直接读写任何I/O端口等,这给软件保护者提供了极大的自由度,使其可以设计出一些至今仍为人称道的保护技术。例如:软盘指纹防拷贝技术就是在这时候发展起来的。

(二)早期WINDOWS95时代。这个时代共享软件渐渐地盛行起来,采用序列号保护的共享软件越来越多。由于当时许多程序员对刚刚出现的Windows95不了解,编制的软件在加密部分都比较脆弱。所以这个时代所谓地解密通常是找到软件中序列号的明码比对或者简单的算法比对。这个时代是软件保护的最脆弱时代。

(三)Windows95末期。也就是Windows95和Windows98共存的时代。在这个时期,程序员已经对Windows9x这个系统了如指掌,一些很需要编程技巧、与系统核心等底层联系紧密的软件纷纷出笼。这个时期共享软件大多还是采用序列号加密方式,但其序列号通常是经过复杂的计算,很难象早期的软件一样,随随便便就可以解密了。

(四)Windows2000时代。这段时期就是Windows9x和Windows2000共存时期,各种软件的加密外壳泛滥,特别是各种专门的加密软件的出现大大地提高了软件的保护质量;此时解密技术也不断提高,各种新式的解密工具随即出现。此时的序列号加密越来越多地采用密码学中不可逆的加密算法,使得解密的过程越来越象再做一个高等数学的题目。软件解密者要想得到正确的序列号就必须对各种成熟加密算法有很深的了解,或者是找到软件加密算法的漏洞(象WinRAR、

相关文档
最新文档