《毕业论文:Windows下病毒原理研究》.doc
文本预览下载声明
Windows下病毒原理研究
第一章 概述
1.引言
随着计算机技术的发展,计算机病毒也越来越多,并且所使用的技术也各不相同。并且由于现在盗版风行,使得病毒的传染范围也越来越广,我敢肯定每一个计算机用户都有过感染病毒的经历。虽然我们都对病毒深恶痛绝,但知道病毒破坏、传染原理的人却并不多。
本文就以Windows下最常见的感染PE(Portable Executable)格式文件的病毒为研究对象,来探索病毒的原理,以提高大家对病毒的认识。
本文的目的并不是要教会大家如何编写病毒,而是要通过介绍病毒的原理,为大家对反病毒研究提供一个切入点。并且病毒的编写一般都利用了一些比较高级的编程原理,我们也能从中学到很多知识。因此,病毒原理研究也是一个很有很有意义的课题。这也正是我们大学所学知识和综合能力接受考验的时候,我们将尽我们的最大努力,运用所学的基础知识做好这个课题。
2.研究方法
计算机科学是一门实践性很强的科学,因此,我们就以编写一个“类病毒“程序来检验我们的研究成果,根据程序功能的要求,编程语言可以采用汇编或Vc等高级语言。但因为程序涉及较多的低层操作,使用高级语言会带来很多不便。所以程序采用32位的全386保护模式汇编代码,具有较高的执行效率和十分灵活的使用机制。
由于汇编语言的限制,设计界面和较复杂的程序并不是它的强项。所以本程序除了必要的提示和指示以外,没有较为漂亮和友好的界面。但程序的效率较高,速度很快,生成的执行代码量也很小,发挥了汇编语言在低层操作中的优势。
程序使用的是Microsoft公司的Masm宏汇编编译器和连结器。生成的是Windows的可执行文件,程序能在Windows 98/2000下使用。
3.期望研究成果
所生成的程序应该有基本的病毒原理,能够较好的演示病毒的发作效果,当然,我们这里只是研究原理,所以程序应该没有任何破坏性。
PE文件格式一览及预备知识
PE 的意思就是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行体文件格式。它的一些特性继承自 Unix的 Coff (common object file format)文件格式。portable executable(可移植的执行体)意味着此文件格式是跨win32平台的 : 即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。当然,移植到不同的CPU上PE执行体必然得有一些改变。所有 win32执行体 (除了VxD和16位的Dll)都使用PE文件格式,包括NT的内核模式驱动程序(kernel mode drivers)。PE格式将在所有基于Win32的系统中扮演重要的角色。如果你用过Win32或Windows NT和Windows 95,你就已经在使用PE文件了。因而研究PE文件格式给了我们洞悉Windows结构和病毒原理的良机。操作系统的可执行文件的格式从多种意义上讲是操作系统本身执行机制的反映。虽然研究可执行文件格式并非是一个程序员的首要任务,但这种工作能积累大量的知识。而且PE非常普遍,应该引起大家的重视。我们现在应该好好研究就这种新的文件格式及在操作系统中的作用
众所周知,Windows NT继承了VAX、VMS及UNIX的某些思想,因为许多Windows NT的创始者在来Microsoft之前都设计并编写过上述平台。但设计Windows NT时,他们借助了以前编写的并经过测试的工具以减少项目设计的启动时间,这是很自然的。他们的这些工具所产生或使用的可执行文件和目标文件格式称为COFF(Common Object File Format)。COFF格式本身是一个很好的起点,但需要予以充分的扩充以适应现代操作系统(Windows NT、Windows 95)的需要。其结果就产生了PE格式。之所以称为“Portable”,是因为Windows NT在各种平台(X86、MIPS、Alpha等等)上都是用同样的执行格式。当然,在CPU指令的二进制译码等方面会存在差异,但最重要的是系统的装载器和编程工具无需对任何一种新出现的CPU进行重写。
Microsoft为了将精力集中在Windows NT上,使之最快速的发展起来,放弃了现存的32位工具及文件格式。比如,在Windows NT出现之前,16位Windows的虚拟设备驱动程序使用的是32位的文件格式—LE格式。更重要的是OBJ格式的改变:在Windows NT的C编译器之前,所有的Microsoft编译器使用的都是Intel的OMF(Object Module Format)规范。在前面讲过,基于Win32的Microsoft编译器生成的是COFF格式的目标文件。一些Microsof
显示全部