请输入您要查询的百科知识:

 

词条 外壳保护技术
释义

概念

所谓“外壳”就是给可执行的文件加上一个外壳。用户执行的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解开压缩,并把控制权交还给解开后的真正的程序,由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,并且对执行速度没有什么影响。如果在外壳程序中加入对软件锁或钥匙盘的验证部分,它就是我们所说的外壳保护了。

壳的发展

在软件领域,壳的出现是比较早的。在加密与解密发展初期,由于资料的相对匮乏,为使软件开发者从保护软件的牢笼中解脱出来,于是就有了专门研究软件的保护技术,也就新生了一种新的软件——机密软件。壳的出现也正是伴随着加密软件的出现而出现了。

有了可保护后,软件代码变的不再易读,在分析过程中如果不能将外层壳去掉,也就很难洞察壳内的世界。因而使程序员可以从设计复杂的算法中解脱出来,也就从另一角度增强了软件的抗破解能力,甚至,对软件加壳比研究一个更好更优秀的加密验证算法更有效,这也使得壳保护技术能够蓬勃发展,并随着技术的发展产生了不同类型的壳。

壳的作用

软件加壳后,加壳工具在可执行文件的基础上,创建并添加自己的代码,有的壳甚至在加壳过程中对原可执行代码进行压缩或加密。运行加壳后的可执行文件时,windows加载器会首先加载附加在可执行程序上的外壳代码,外壳代码获取控制权后,将源程序代码重新解压缩或解密到内存中,所有工作完成后,外壳代码再将控制权移交给源程序代码,此时程序中才会出现原来的代码,并且代码仅存在与内存中,在磁盘上看到得是加密后的代码,也就有效防止了暴力破解的发生。

外壳代码甚至可以检测系统的调试状态等,在检测到非法活动后可以直接停止外壳解密或解压缩行为,从另一角度这也增加了软件调试的难度。

壳的分类

在中文中的壳一般包含两种类型:压缩壳和加密壳。但在英文中确实两个不同的概念,与这两种类型对应的英文名词为:Packer和Protector。

压缩壳

对源程序代码进行压缩后,重新封装并生成可执行文件的一种壳。压缩壳的压缩算法一般采用已经较成熟的引擎,如aPLib、JCALG1等。

对于一些比较流行的压缩引擎后压缩壳,杀毒软件会针对这些壳专门开发与之对应的解压缩引擎,对加壳后的软件解压缩后进行杀毒,因而通常情况下使用压缩壳难以达到免杀目的。

不同加壳软件特性也不同,可以根据稳定性和压缩比来选择合适的压缩软件。如果稳定性得不到保证,程序可能频繁崩溃,如果解压缩速度太慢又会牺牲程序运行速率。

加密壳

加密壳相比压缩壳的功能要复杂的多,加密壳侧重在软件保护上,压缩重新体积不是其主要任务,通常加密壳会将程序代码混淆加密,已达到防破解的目的,一些功能强大的加密壳可以给程序添加一些额外功能,包括限制软件使用时间,给软件添加注册功能等。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 14:30:27