在计算机的安全保护领域中,计算机软件的安全保护是一个随着计算机技术的发展而发展的重要的研究领域。如何有效防止软件被破解,保障开发者的合法权益,提高软件的安全性是一个放在所有开发者面前的问题。本文主
要分析了常见的一些软件保护措施,在比较各种软件保护措施的优缺点的基础上,着重介绍了软件加壳技术原理和其在软件保护中的应用。
为了满足现代社会信息化大发展的需要,软件发人员开发出了各种各样的软件。这些软件虽然界面、功能都可能不一样,但有一点可以肯定,即都必定是开发者耗费了大量的人力和物力研发出来的。为了保障自己的劳动果实和合法权益,防止辛苦开发的软件被不法分子破解并非法使用,开发人员想尽办法。
怎样对软件进行有效保护,是所有软件开发者需要面对并亟需解决的难题。任何软件只要破解者愿意花费足够的物力和人力,几乎都能够被破解和修改。经过长期的发展,软件保护技术已经成为一个相对独立的重要研究领域。软件保护技术,虽然实现方法各不相同,但从总体上看,主要可以分为两大类别,即硬件加密技术和软件加密技术。
一、硬件加密技术与软件加密技术概述
1.1 硬件加密技术
硬件加密技术就是将特殊的、具有加密功能的硬件设备添加到计算机主机的各种接口或插槽上,从而实现对软件的保护。这种硬件加密技术,虽然能较好的保护软件,但是由于各种额外添加的硬件加密设备成本较高,而且这些硬件的具体安装也不够灵活。另外,硬件加密技术中用到的硬件,还存在升级、维护比较困难等缺点。这些都制约了硬件加密技术的广泛应用。
1.2 软件加密技术
与硬件加密技术相对应的就是软件加密技术。顾名思义,就是通过在需要被保护的软件中添加特殊程序的方法来实现对该软件的保护。软件的保护技术和破解技术是此消彼长的,两种技术近年来都得到了长足发展。软件加密技术,相对于硬件加密技术,在有效增加软件的破解难度的同时,手段相对灵活,增加成本有限,从而在现在的软件保护技术中得到广泛应用。
2. 软件加壳技术
在软件加密技术中,软件加壳技术是一种比较好的实现方法。所谓软件加壳技术,就是指对需要被保护软件的可执行文件进行加密或者压缩,并在这个基础上添加一些特殊代码。计算机在加载该软件程序时,操作系统的控制权将优先交给这些特殊代码,再由这些特殊代码去控制原程序的执行,从而实现与软件被加壳前的完全一样的功能。
2.1 软件破解
要想较好地实现软件保护,必须首先了解软件是怎样被破解的。所谓软件破解,实际上就是逆向分析程序运行,从该程序编译后的二进制形式的可执行文件中,分析出程序的具体框架结构和控制流。这种程序逆向分析主要有两种方式:静态的和动态的。所谓静态逆向分析,就是指在不运行该软件的前提下,分析二进制可执行文件;所谓动态逆向分析,就是指通过运行该软件,在运行中分析二进制代码,从而获得自己感兴趣的信息。
2.2 软件加壳技术
软件加壳技术就是伴随着软件破解技术的发展而诞生的。经过多年的发展,如今的软件加壳技术,主要可以分为三种途径:压缩类、加密类和虚拟机类。这三类方法都可以通过一些现有的软件加壳工具来实现。
………………
浅议软件加壳技术的应用 PDF 完整版下载(文字可复制):
https://www.aliyundrive.com/s/vV6Jcsh9MwW 提取码: 61kt