[发明专利]计算机软件保护方法无效
申请号: | 96112824.0 | 申请日: | 1996-09-08 |
公开(公告)号: | CN1155700A | 公开(公告)日: | 1997-07-30 |
发明(设计)人: | 杨筑平;周跃平 | 申请(专利权)人: | 周跃平 |
主分类号: | G06F17/00 | 分类号: | G06F17/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 511700 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算机软件 保护 方法 | ||
一种计算机软件保护方法,涉及计算机安全,具体涉及软件开发与保护的技术领域。
计算机病毒的传播为害,是计算机软件保护面临的一个严峻问题。已有的保护方法大多是以某种保护机制作为运行环境,对软件进行监控诊断,如发明专利“存储信息保护机构”(中国专利号:90101742.6),这类方法因系统环境的多样化和不断更新而难以普遍实施;或者是用某个专用的扫毒软件对其他软件的代码文件进行扫描,根据已知病毒的特征识别和清除病毒,如Microsoft公司的DOS6.20中的程序MSAV.EXE,这类方法因其固有的局限及病毒的诡异多变,往往错检或漏检病毒。另一类方法是建立自我保护机制,如已公开的发明“微机病毒防治的软件自保护方法”(公开号:CN1068205A)。该发明提出,以附着在原软件上的程序段作保护性外壳,记录文件长度和运行入口特征参数于其中,该程序段先于软件原文运行,根据记录的与现时的特征参数之差异而检测出病毒并进行消除。但是,该发明存在明显的缺陷:其一,在软件广泛流通及盗版猖獗的现实背景下,软件之“原”是值得怀疑的,故附加外壳带有风险;其二,该发明所明确提出的特征参数——文件长度和运行入口并不能充分反映文件的特征,也就动摇了该发明的实用基础,因为,完全能够设计出这样的病毒,它无需改变文件长度和运行入口却仍然可以寄生于文件之中;其三,该发明清除文件病毒的措施实际上基于这样的假设,即病毒总是附加在文件的末尾,然而遗憾的是,这一假设并不成立。
软件保护的更一般性的问题,是防止软件被篡改。除了病毒的篡改之外,还有诸如偷换版权申明、改变语言文字、修改程序代码等人为的篡改,甚至因存储体的随机故障或物理损坏造成意外的篡改,都是违背版权人意愿而需加以阻止的。
本发明的目的,是为阻止计算机软件被篡改,提供一种普遍行之有效的保护方法。
计算机软件的实体是存储文件,因此,保护软件实质上就是保护其文件。一个软件的组成至少包括一个程序文件,可能还包括一个以上数据文件。保护软件的关键是保护程序文件和重要数据文件。
首先,本发明引入软件指纹的概念。软件指纹具体而言就是其文件指纹,是以称之为特征值的简单数值或小数据块,来完整地代表或反映文件内容作为连续的字节数据序列所固有的静态特征。就指纹特征而言,软件的程序文件和数据文件并无区别,改变文件的任意字节都将导致文件指纹特征的改变。显然,指纹特征乃统计特征,系按照一定的算法计算获得。算法可以是多种多样的,只不过不同的算法之间实用效果或有差别。对文件的字节数据作累加计算便是一种简单的算法,其累加和又称为检查和,可作为一种文件指纹(尽管还比较粗糙)的特征值。本发明的实施例还将给出一个高效而实用的算法。
其次,本发明引入软件纯正的概念。一个软件是纯正的,如果其程序文件和重要数据文件是纯正的。一个文件是纯正的,如果其内容与本来的内容完全一致。纯正的文件未被篡改,被篡改的文件则不纯正。保证文件纯正的彻底办法是将现时的文件与原来的文本在内容上逐个字节加以比较,但这种原始的办法并不实用。本发明采用量化的办法,通过检测并比较文件现时的指纹特征与原先的指纹特征来鉴别文件是否纯正:特征值相同则是,特征值不同则否。保护软件的纯正即保障了软件的完整性和正确性。
基于软件指纹和软件纯正的概念与思路,能够得出结论:软件被篡改之必要条件,是其现时的指纹特征与原先的指纹特征不同;软件未被篡改之充分条件,是其现时的指纹特征与原先的指纹特征相同。这正是本发明的基础。
软件被篡改并不可怕,因为有办法加以恢复;可怕的是软件在被篡改之后盲目继续运行,因为由此可能造成的损失是难以估量的。本发明的目标效果,不是试图保证软件不会被篡改,而是力图保证软件本身在被篡改之后能够及时地自行发现并且阻止篡改行为的扩散。
本发明的方法包括以下两个基本步骤:
第一步,在软件中加入保护代码序列。具体加在程序文件中。保护代码序列在执行时将完成下列四项功能:
1、识别本文件和其他所保护对象文件的确切目录路径;
2、按照预定的算法计算文件指纹的当前(即运行时的)特征值;
3、将同一文件指纹的当前特征值与原已提取并记录的特征值进行比较鉴别;
4、若发现文件指纹的特征值已改变,即判断文件已被篡改,则按照既定拒绝策略处理。
保护代码序列的基本用途,是监护其所处的程序文件,此外,也可以监护其他文件尤其是重要的数据文件。识别文件路径是必要的,是为检测文件指纹做准备。拒绝策略是容易理解和制定的,如以声音或文字示警、自动退出或由操作员选择决定,等等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于周跃平,未经周跃平许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/96112824.0/2.html,转载请声明来源钻瓜专利网。