《计算机病毒分析》PPT课件.ppt_第1页
《计算机病毒分析》PPT课件.ppt_第2页
《计算机病毒分析》PPT课件.ppt_第3页
《计算机病毒分析》PPT课件.ppt_第4页
《计算机病毒分析》PPT课件.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机病毒分析,彭国军 2003.3.29,将要介绍的几种病毒类型,DOS病毒 引导区病毒 文件型病毒 混合型病毒 Windows病毒 VBS脚本病毒 宏病毒 网页病毒 Win32 PE病毒,引导区病毒,什么是主引导记录? 硬盘的主引导记录在硬盘的0磁头0柱面1扇区。主引导记录由三部分组成: 主引导程序; 四个分区表; 主引导记录有效标志字,DOS引导区病毒,引导区病毒 所谓引导区病毒是指一类专门感染软盘引导扇区和硬盘主引导扇区的计算机病毒程序。 如果被感染的磁盘被作为系统启动盘使用,则在启动系统时,病毒程序即被自动装入内存,从而使现行系统感染上病毒。 在系统带毒的情况下,如果进行了磁盘IO操

2、作,则病毒程序就会主动地进行传染,从而使其它的磁盘感染上病毒,DOS的正常启动过程,加电开机后进入系统的检测程序并执行该程序对系统的基本设备进行检测; 检测正常后从系统盘0面0道1扇区即逻辑0扇区读入Boot引导程序到内存的0000: 7C00处; 转入Boot执行之; Boot判断是否为系统盘, 如果不是系统盘则提示: non-system disk or disk error Replace and strike any key when ready 否则, 读入IBM BIO.COM和IBM DOS.COM两个隐含文件,DOS的正常启动过程,执行IBM BIO.COM和IBM DOS.C

3、OM两个隐含文件, 将COMMAND.COM装入内存; 系统正常运行, DOS启动成功。 引导区病毒实际上就是先保存软盘的引导记录或者硬盘的主引导记录,然后用病毒程序替换原来的引导记录,这样,当系统引导时,便先执行病毒程序,然后将控制权转交给正常的引导程序,带毒盘引导的启动过程,将Boot区中病毒代码首先读入内存的0000: 7C00处; 病毒将自身全部代码读入内存的某一安全地区、常驻内存, 监视系统的运行; 修改INT 13H中断服务处理程序的入口地址, 使之指向病毒控制模块并执行之。因为任何一种病毒要感染软盘或者硬盘,都离不开对磁盘的读写操作, 修改INT13H中断服务程序的入口地址是一项

4、少不了的操作; 病毒程序全部被读入内存后才读入正常的Boot内容到内存的0000: 7C00处, 进行正常的启动过程; 病毒程序伺机等待随时准备感染新的系统盘或非系统盘,感染过程,是否在读写软盘? 是,则将目标盘的引导扇区读入内存, 对该盘进行判别是否传染了病毒; 当满足传染条件时, 则将病毒的全部或者一部分写入Boot区, 把正常的磁盘的引导区程序写入磁盘特写位置; 返回正常的INT 13H中断服务处理程序, 完成了对目标盘的传染,感染过程,引导型病毒的主要特点,引导型病毒是在安装操作系统之前进入内存,寄生对象又相对固定,因此该类型病毒基本上不得不采用减少操作系统所掌管的内存容量方法来驻留内

5、存高端。而正常的系统引导过程一般是不减少系统内存的。 引导型病毒需要把病毒传染给软盘,一般是通过修改INT 13H的中断向量,而新INT 13H中断向量段址必定指向内存高端的病毒程序。 引导型病毒感染硬盘时,必定驻留硬盘的主引导扇区或引导扇区,并且只驻留一次,因此引导型病毒一般都是在软盘启动过程中把病毒传染给硬盘的,文件型病毒,什么是文件型病毒? 所有通过操作系统的文件系统进行感染的病毒都称作文件病毒 。 我们将会介绍的两种病毒 COM文件型病毒 EXE文件型病毒,COM文件型病毒,COM文件被载入内存后的格式,COM文件型病毒,病毒要感染COM文件一般采用两种方法: 加在文件尾部,COM文件

6、型病毒,加在文件头部,EXE文件型病毒,MZ文件头格式 偏移 大 小 描述 00 2bytes .EXE文件类型标记:4d5ah 02 2bytes 文件的最后一个扇区的字节数 04 2bytes 文件的总扇区数 文件大小=(总扇区数-1)*512+最后一页字节数 06 2bytes 重定位项的个数 08 2bytesexe文件头的大小 (16bytes*thisvalue) 0a2bytes最小分配数(16bytes*thisvalue) 0c2bytes最大分配数(16bytes*thisvalue) 0e2bytes堆栈初始段址(SS) 102bytes堆栈初始指针(SP) 122byt

7、es补码校验和 142bytes初始代码段指针(IP) 162bytes初始代码段段址(CS) 182bytes定位表的偏移地址 1a2bytes覆盖号Theoverlaynumbermakebylink,EXE文件型病毒的感染,头寄生,EXE文件型病毒的感染,尾寄生,EXE文件型病毒的感染,插入寄生,EXE文件型病毒的感染,伴随型,EXE文件型病毒的感染,病毒感染的方式还有很多,譬如DIRII属于一种链接型的病毒,还有无入口点的病毒,没有任何美感的覆盖型病毒等。 病毒如何感染,一直是病毒研究的话题,这并不存在非常固定的模式。病毒作者完全可以任意发挥自己的想象,混合型病毒,什么是混合型病毒?

8、所谓混合型病毒,就是指既可以感染引导区又可以感染文件的病毒。 但是这种病毒绝对不是引导区病毒和文件型病毒的简单相加。 文件型病毒大多采用INT 21H,但是引导型病毒是在引导阶段进行感染驻留,这时DOS系统还没有启动,因此混合型病毒此时无法采用21号中断。如何解决这个问题,VBS脚本病毒如何感染,VBS脚本病毒是直接通过自我复制来感染文件的病毒中的绝大部分代码都可以直接附加在其他同类程序的中间. 新欢乐时光病毒可以将自己的代码附加在.htm文件的尾部,并在顶部加入一条调用病毒代码的语句. 爱虫病毒则是直接生成一个文件的副本,将病毒代码拷入其中,并以原文件名作为病毒文件名的前缀,vbs作为后缀,

9、VBS脚本病毒如何感染,文件感染的部分关键代码 set fso=createobject(“scripting.filesystemobject”) 创建一个文件系统对象 set self=fso.opentextfile(wscript.scriptfullname,1) 读打开当前文件(即病毒本身) vbscopy=self.readall 读取病毒全部代码到字符串变量vbscopy set ap=fso.opentextfile(目标文件.path,2,true) 写打开目标文件,准备写入病毒代码 ap.write vbscopy 将病毒代码覆盖目标文件 ap.close set cop

10、=fso.getfile(目标文件.path) 得到目标文件路径 cop.copy(目标文件.path a.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD58A0B);a.createInstance();wsh=a.GetObject();wsh.Run(cmd.exe);/改为wsh.Run(cmd.exe,false,1);则程序在后台隐藏运行setTimeout(runcmd(),10,网页病毒主要症状,在用户IE浏览器的标题栏打广告 修改IE的默认网址,并且不可以修改 锁定用户的注册表编辑程序 禁止使用“运行”选项 有时候也可能对硬盘进行格式化,在用

11、户机器上创建一些文件,Win32 PE病毒,什么是PE病毒? PE病毒是指所有感染Windows下PE文件格式文件的病毒。 PE病毒大多数采用Win32汇编编写。 PE病毒对于一个热衷于病毒技术的人来说,是必须掌握的。 只有在PE病毒中,我们才能真正感受到高超的病毒技术,编写Win32病毒的几个关键,Api函数的获取 不能直接引用动态链接库 需要自己寻找api函数的地址,然后直接调用该地址 一点背景:在PE Loader装入我们的程序启动后堆栈顶的地址是是程序的返回地址,肯定在Kernel中! 因此我们可以得到这个地址,然后向低地址缩减验证一直到找到模块的起始地址,验证条件为PE头不能大于40

12、96bytes,PE header的ImageBase值应该和当前指针相等. 病毒没有.data段,变量和数据全部放在.code段,编写Win32病毒的几个关键,偏移地址的重定位 Call delta delta: pop ebp sub ebp,offset delta 那么变量var1的真正偏移地址为:var1+ebp 对PE文件格式的了解,编写Win32病毒的几个关键,病毒如何感染其他文件 在文件中添加一个新节 该新节中添加病毒代码和病毒执行后的返回Host程序的代吗 修改文件头中代码开始执行位置(AddressOfEntryPoint)指向新添加的节,以便程序运行后先执行病毒代码。 P

13、E病毒感染其他文件的方法还有很多,譬如PE病毒还可以将自己分散插入到每个节的空隙中等等,这里不在一一叙述,PE文件格式一览,PE header,Pe header 由三部分组成 字串 “PE00”(Signature) 映像文件头(FileHeader) 可选映像头(OptionalHeader,字串 “PE00,Signature 一dword类型,值为50h, 45h, 00h, 00h(PE00)。 本域为PE标记,我们可以此识别给定文件是否为有效PE文件。 这个字串在文件中的位置(e_lfanew),可以在DOS程序头中找到它的指针,它占用四个字节,位于文件开始偏移3CH字节中,映像文

14、件头,该结构域包含了关于PE文件物理分布的信息, 比如节数目、文件执行机器等。 它实际上是结构IMAGE_FILE_HEADER的简称,映像文件头结构,IMAGE_FILE_HEADER STRUCT Machine WORD ? NumberOfSections WORD ? TimeDateStamp dd ? PointerToSymbolTable dd ? NumberOfSymbols dd ? SizeOfOptionalHeader WORD ? Characteristics WORD ? IMAGE_FILE_HEADER ENDS,映像文件头的基本信息,可选映像头,opt

15、ional header 结构是 IMAGE_NT_HEADERS 中的最后成员。包含了PE文件的逻辑分布信息。该结构共有31个域,一些是很关键,另一些不太常用。这里只介绍那些真正有用的域。 这儿有个关于PE文件格式的常用术语: RVA RVA 代表相对虚拟地址。它是相对虚拟空间里的一个地址 。 举例说明,如果PE文件装入虚拟地址(VA)空间的400000h处,且进程从虚址401000h开始执行,我们可以说进程执行起始地址在RVA 1000h。每个RVA都是相对于模块的起始VA的,可选映像头,可选映像头,DataDirectory数据目录,一个IMAGE_DATA_DIRECTORY数组,里面

16、放的是这个可执行文件的一些重要部分的RVA和尺寸,目的是使可执行文件的装入更快,数组的项数由上一个域给出。IMAGE_DATA_DIRECTORY包含有两个域,如下: IMAGE_DATA_DIRECTORY VitualAddress DD? Size DD? IMAGE_DATA_DIRECTORY ENDS,节表,节表其实就是紧挨着 PE header 的一结构数组。该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 NumberOfSections 域的域值来决定。节表结构又命名为 IMAGE_SECTION_HEADER。 结构中放的是一个节的

17、信息,如名字、地址、长度、属性等,IMAGE_SECTION_HEADER,IMAGE_SECTION_HEADER,节,节(Section)”跟在节表之后,一般PE文件都有几个“节”。比较常见的有: 代码节 已初始化的数据节 未初始化的数据节 资源节 引入函数节 引出函数节,代码节,代码节一般名为.text或CODE,该节含有程序的可执行代码。 每个PE文件都有代码节 在代码节中,还有一些特别的数据,是作为调用映入函数之用。如: Call MessageBoxA的调用,反汇编后该指令被换为call 0040101A,而地址0040101A仍在.text中,它放有一个跳转指令jmp dword

18、 ptr0040304c,即这条跳转指令的目的地址处于.idata节中的0040304C处,其中放的才是MessageBoxA的真正地址,如下图,已初始化的数据节,这个节一般取名为.data或DATA 已初始化的数据节中放的是在编译时刻就已确定的数据。如Hello World 中的字符串“Hello World,未初始化的数据节,这个节的名称一般叫.bbs。 这个节里放有未初始化的全局变量和静态变量,资源节,资源节一般名为.rsrc 这个节放有如图标、对话框等程序要用到的资源。 资源节是树形结构的,它有一个主目录,主目录下又有子目录,子目录下可以是子目录或数据。 都是一个IMAGE_RESOURCE_DIRECTORY结构。结构如下,IMAGE_RESOURCE_DIRECTORY 结构,引入函数节,一个引入函数是被某模块调用的但又不在调用者模块中的函数 这个节一般名为.idata,也叫引入表。 它包含从其它(系统或第三方写的)DLL中引入的函数,例如user32.dll、gdi32.dll等。 它的开始是一个IMAGE_IMPORT_DESCRIPTOR数组。这个数组的长度不定,但他的最后一项是全0,可以以此判断数组的结束,引出函数节,什么是引出函数节? 引出函数节是用来向系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论