《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 基于加解壳技术的防病毒保护壳

基于加解壳技术的防病毒保护壳

2009-05-19
作者:冯 敏,田继东

    摘 要:计算机病毒发展日新月异,而杀毒软件的产生存在滞后性。也就是说,借助现有的杀毒软件检测系统是否感染了新现病毒是件比较棘手的事。本文基于加、解壳原理和病毒运行流程,提出了一种新的判断方法。首先对干净文件加防病毒保护壳,待运行该文件时,文件自动解壳判断是否已感染病毒,并进行相应处理,最后用Delphi编程实现,同时利用该WinHex查看加壳后的结果。实践证明,该保护壳具有可用性
    关键词:加、解壳原理;病毒运行流程;防病毒保护壳;Delphi

 

    自然界中植物用壳来保护种子,动物用壳来保护身体。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权。就像动植物的壳一般都是在身体外面一样理所当然。从功能上看,软件的壳和自然界中的壳相差无几,无非是保护、隐蔽壳内的东西,而从技术的角度出发,壳是一段执行于原始程序前的代码。本设计所涉及的防病毒保护壳,就其本质来看就是一种“良性病毒”,它保护软件,提醒用户“可能感染了某种病毒”。
1 设计思路
    校验法是对正常文件的内容,计算其校验和,将该校验和写入文件中或写入其他文件中保存。在文件使用过程中,定期地或每次使用文件前检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染。但是由于病毒感染,修改了文件的某些信息,可能导致文件不能正常运行。所以,校验法仅能较好地检测病毒,而不能保护正常文件。
    本文设计的防病毒保护“壳”,其基本思想和校验法相似,并在某些方面进行了改进。
    防病毒保护“壳”的本质是一种良性“病毒”。它和病毒在某些方面有点类似,都在宿主程序运行之前获取控制权。但是,它对宿主程序没有破坏性。而病毒感染文件主要表现为文件的文件名、路径名或文件大小(病毒附着在被感染文件上)的改变或其他相关变化。为此,设计了一种防病毒保护壳,它能判断文件相关属性的变化,能完成自动脱“壳”功能。
2 具体实现步骤
    当文件(PE文件)未被感染前,就给它加防病毒保护“壳”。
    设保护壳大小C,加壳标记和感染标记均为4个字节,加壳前文件路径和文件名为A1、大小为A2。
    当运行加壳后的文件(路径和文件名为E1、大小为E2)时,若被病毒体感染,该病毒体剥离出文件(如图1、图2所示),并运行之。剥离出的文件运行时,保护壳首先获得控制权,比较E1与A1,E2与(A2+C+4)是否相等。倘若E1与A1不等,可能是某种病毒对加壳文件进行了移动操作;倘若,E2与(A2+C+4)不等,可能是因为其他的病毒将加壳后的文件进行“包裹”,这时弹出“发现可疑病毒”;若相等,则剥离出原文件,然后创建一个新的进程运行之,运行完毕后自动终止自己。

 

3 具体测试
3.1 防病毒保护壳测试

    对“F:calc.exe”加壳后运行。
    测试中需要使用16进制观察器WinHex.查看加壳后的结果。
    从图3可以得出被加壳的文件名为F:calc.exe,大小为0001C000H(即114 688字节),加壳标记为66666666H。加壳后的文件大小为7CC6BH字节。

 

 

    双击运行加壳后文件的截图如图4所示,若加壳后文件的路径、名字改变,双击运行时会提示“发现可疑病毒”,可能是被某些病毒“搬移”了。为了看到效果,我便人为地改变了加壳后的文件路径,如图5所示。

 

 

 

3.2 UPX压缩文件测试
    选用UPX压缩工具的主要目的是压缩防病毒保护壳(AddShell.exe)。另外,在一定程度上能保护该“壳”,防止被恶意窃取或修改。防病毒保护壳压缩前、后截如图6、图7所示,图8、图9分别为利用压缩后的“壳”处理文件及利用未压缩“壳”处理文件后情况。

 

 

 

 

 

    从图9观察得出,使用未压缩壳处理calc.exe后文件大小为207 KB,而使用压缩壳处理后却变为了155 KB,达到了预期的效果。
    防病毒保护壳的优点为它既可以发现已知病毒又可以发现未知病毒,在一定程度上起到保护软件不被非法修改、提醒用户及时查杀病毒等作用。
    缺点是病毒感染并非文件相关信息(路径名、文件名、大小)改变的惟一的非他性原因,有可能是正常程序引起的,所以,该防病毒保护“壳”会出现误报警的情况。另外,考虑到病毒的多样性,对于出现“可疑病毒”的情况,尚未进行相应处理。
参考文献
[1] 陈健伟,朱梅.计算机病毒与反病毒技术研究[J].电子与电信,2006, 12(34).
[2] 张桂勇,陈芳琼.APIforWindows2000/XP详解[M]. 北京:清华大学出版社,2003.
[3] 杨华民,梁水.Delphi函数参考大全[M]. 北京:人民邮电出版社,2006.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。