论计算机软件保护方法
计算机软件是程序开发人员的工作成果,本身就具有很高的价值,而且其强大的功能能够为人们的工作生活带来很大便利,已经成为人们日常生活和工作的重要组成部分,用户很多重要的数据和信息都存储在计算机中,并通过计算机软件进行处理。因此,保护计算机软件安全是非常重要的,必须采取有效措施,保护计算机软件的正常运行,避免被人跟踪和干扰。
1 计算机软件保护
1.1 作用
随着信息技术的普及应用,计算机软件在工业、农业、科研、军事等各个领域都得到了广泛的应用。在工业生产中,作业器械能够在计算机软件的控制下重复地完成大量生产任务;在交通领域中,火车、地铁、飞机乃至汽车都可以在计算机软件的控制下自行行驶,而无需驾驶员的时刻操作;在科研领域,大量的实验模拟、数据计算都能够通过计算机软件快速完成,科学技术的快速发展离不开计算机软件;在军事领域,巡航导弹可以在计算机软件的控制下,自动调整方向,精确打击目标。除此之外,上到国家的航空航天、下到人们的游戏娱乐,计算机软件都能够发挥巨大的作用,已经成为人们日常生活和工作的一个重要组成部分。在经济领域,计算机软件部分占据了信息产业相当大的比例,并且以很高的速度持续增长,计算机软件产业已经成为市场经济的重要组成部分,对经济的发展有着重大的意义。
1.2 保护内容
计算机软件为人们的工作和生活带来了极大的便利,相关产业对经济的发展也起着重要的推动作用。因此,对于计算机软件的保护也必须到位,人们必须重视计算机软件安全问题,保证计算机软件的正常运行,让计算机软件在人们的日常工作和生活中能够持续发挥良好作用。一方面,计算机软件是软件开发人员的工作成果,是他们的知识财产,可以以商品的形式出售,而不能被人们随便传播,只有在经过允许后才能进行使用,法院也确立了相关的法律用于计算机软件的保护。然而就目前的情况来看,由于软件是由计算机代码构成的,相比于实际的商品,更容易被复制,软件盗版现象层出不穷,破解软件的大量出现给正版软件的出售造成了巨大影响,严重影响软件产业的经济效益。另一方面,人们工作和生活中的重要资料大多存于计算机中,然后通过计算机软件进行处理,攻击者可以通过对软件的破解和跟踪,窃ツ取软件源代码,破坏用户的计算机软件系统,从中盗取用户资料,甚至删除资料,给用户带来更大的损失。因此,对于计算机软件的保护十分重要,直接关系到用户和开发者的财产安全以及生活工作的状态。
2 保护方法
2.1 注册码
在计算机软件的保护中,防止计算机软件的非法传播是一个重要方面,注册码保护的方法就是一个有效的方法,已经得到了非常广泛的应用。注册码保护是针对计算机软件的应用特点设计的,大多数计算机软件都是在单独的一台计算机中运行,而每一台计算机是由各种硬件构成的,有些硬件在生产过程中,会被赋予唯一的编号,计算机软件可以通过计算机硬盘或CPU的编号生成相应的机器码,当计算机软件在一台计算机上安装运行时,就需要用户输入注册码,而注册码则是由软件开发人员通过对机器码的运算得出的一段特定序列,用户需要通过购买或者其他方式向软件开发人员获取注册码。注册码保护的方法主☼要依赖于计算机硬件独一无二的特点,从理论上看,只要硬件编码确定,对应的注册码就是确定的,不会出现两台计算机注册码相同的情况,也就能够有效防止计算机软件的非法传播。然而实际并不是这样,硬件编码虽然是固定且独一无二的,但计算机软件获取硬件编码是通过两个简单的函数进行的,破解者也能够通过类似的方式获取硬件编号,进而对软件进行破解。因此,为了保证使用注册码的效果,还需要对软件进行加密。
2.2 加密保护
计算机软件加密分为两种,软件加密。软件开发者通过使用特定的算法对软件进行加密,不需要考虑应用软件相关的硬件产品。软件加密的效果很好, 破解过程十分复杂,完成破解的可能性很低,而且在各类软件中都适用,加密成本也非常低廉,因此得到了广泛的应用。目前,包括Windows操作系统在内的很多计算机软件都应用了软件加密的保护方法。常用的软件加密方法一般有钥匙盘法、计算机硬件校验法以及纯密码法等。通常情况下,软件加密并不是一次性的,而是在每次运行软件产品时都能够发挥作用,在用户打开计算机软件时,软件会自动跳转到加密板块,必须运行解密程序完成解密才能使用。使用软件加密的方法,相当于为软件添加一层外壳,必须解密外壳才能使用内部的软件,有些计算机软件的软件加密十分复杂,将多层加密外壳叠加起来,从而大大提高软件安全性,增大解密难度。硬件加密。硬件加密需要应用一定的硬件,一般将这类硬件称为加密锁或加密狗。硬件加密的可靠性非常高,几乎不可能破解,由于需要使用一定的硬件,所以硬件加密的成本也比较高,适用于一些高档软件的保护,并没有得到很广泛的应用。加密锁中固化了加密程序,有些更高级的加密锁中还设置了单片机,只要程序写入就无法被读出,从而保证了加密锁的可靠性,在加密程序无法读取的情况下,破解者不可能进行有效的软件破解。除了软件加密和硬件加密外,还有一种比较少用的加密方法,一些比较低级的软件会使用第三方软件进行加密,例如对软件进行压缩加密,这种解密方法的效果并不好,基本很容易被破解。
2.3 反跟踪技术
在计算机软件安全问题中,有些人跟踪计算机中正在运行的计½算机软件,通过研究相关的指令代码,破解软件源程序,进而破坏计算机系统的安全防护,窃取计算机中存储的数据信息。软件跟踪是通过特定的跟踪软件进行的,现有的跟踪软件大多是通过计算机软件系统的中断程序进行跟踪的,跟踪的类型分为动态跟踪和静态跟踪。动态跟踪是通过调试程序让软件单步运行,然后跟踪分析程序代码,静态跟踪则是使用的反编译工具对软件进行反汇编,进而对得到的源代码进行数据分析。针对软件跟踪,可以应用反跟踪的方法,通过特定的反跟踪软件,实时监测计算机软件的运行状况,识别调试和反汇编工具,避免计算机软件被跟踪。反跟踪技术的适用性很强,在很多加密软件中都得到了应用,如果没有反跟踪技术,计算机软件就无法对跟踪者的行动做出反应,只能让跟踪者逐步完成跟踪,进而破解软件,对计算机软件安全和用户信息安全造成严重影响。
反跟踪技术的具体实现方法有以下几种。封锁键盘输入。跟踪者使用跟踪软件对正在运行的计算机软件进行跟踪时,需要通过键盘进行调控,反跟踪技术可以利用这一点,在计算机软件系统不需要从键盘ก接收信息时,可以屏蔽来自键盘的数据,或者直接关闭键盘。检测跟踪。在跟踪软件运行时,会导致被跟踪软件的运行出现异常,具体会体现在软件的运行环境、中断入口以及运行时间等方面。应用反跟踪技术,可以检测软件运行的状态,判断软件各方面参数是否与正常运行时一致,如果存在软件跟踪的可能性,则继续检查加密系统的关键程序状态,如果同样存在异常,则说明加密系统已经遭到损坏,必须采取针对性措施进行补救。检测跟踪的方法可以进行叠加,在软件加密系统的各个部分都应用反跟踪技术, 每一环互相关联, 全面提高软件的安全性。 设置ต堆栈指针。跟踪软件在运行过程中,会出现堆栈操作,应用反跟踪技术,可以针对堆栈指针采取措施,例如,巧妙设计堆栈指针的值,使其变得难以修改,从而抑制跟踪软件的进一步运行。除了以上3种方法外,应用反跟踪技术,还能通过加密程序分块,以及逆指令流的方法,前者是将加密程序分块载入内存,在译码执行后进行清除,让解密程序不可能完整存在,能够有效应对动态跟踪;后者是让CPU逆向执行指令,实现难度较大,但如果投入应用,就能起到很好的效果。
3 发展应用
信息技术在不断发展,软件也在不断地更新,然而计算机软件安全问题依然无法完全消除,计算机软件保护措施必须得到持续的执行和不断的完善,让防护效果达到最大。对于注册码及软件加密技术,最好将两者结合应用,同时软件开发者要关注已经发生的软件安全问题,从问题中找出原因,对软件进行针对性的修改,提高软件加密的效果。在反跟踪技术中,逆指令流的方法的应用条件比较苛刻,对CPU 的性能要求较高,对于有些应用于高性能计算机或者具有特定用途的高级软件,可以尝试适用这种方法,并在实际的软件应用过程中,不断累积经验,优化加密保护程序,提高软件保护效果。在实际应用计算机安全保护措施时,有关专业人员必须进行针对性设计,不能盲目使用。计算机软件的缺陷很难完全消除,有关专业人员应当做好计算机软件缺陷分析,将计算机软件缺陷与计算机安全保护结合起来,针对软件的安全缺陷,采取有效的软件保护措施,最大程度上发挥保护软件的作用。计算机软件的保护措施不是固定的,在设计过程中,需要与实际的软件结合起来,针对软件缺陷进行建模,使其可以对指定软件起到最佳的保护效果。在软件的使用过程中,使用普适型软件保护方法不仅能够解决发生的软件安全问题,还能生成相关的处理信息,从而通过实际的运行发现软件的安全缺陷,供软件的开发人员参考,在未来软件版本的更新中消除存在的缺陷。
4 结语
计算机软件在人们生活和工作中的重要性变得越来越大,有关专业人员必须重视软件安全问题,维持软件的更新,修补软件存在的漏洞,在不断的实践应用中,优化软件保护措施,保证计算机软件的安全运行。