(二)文件型病毒
文件型病毒主要是感染可执行文件(PE文件)的病毒,如EXE,COM。病毒对宿主文件进行修改,把自身代码添加到宿主文件上。执行宿主程序时,将会先执行病毒程序再执行宿主程序
1.感染COM文件:
对于COM文件,系统加载时在经过一系列处理之后将全部文件读入内存,并把控制权交给该文件的第一条指令。如果该指令恰为病毒指令则病毒就会获得控制权。COM后缀带毒文件有两种结构:
? 病毒主体在原文件之后。病毒通过修改原文件头代之以一段程序(或简单
地用一条跳转指令)指向后面病毒体,以后再恢复该处原指令。 ? 病毒整体在原文件之前。加载时病毒体直接获得控制权,不破坏原程序任
何部分。
2.感染EXE文件:
EXE后缀文件与COM后缀文件不同,有一特殊的“文件头”结构,其中加载了文件重定位信息等,而非可执行指令。
系统加载EXE后缀文件时根据文件头信息定位文件并设置入口处的堆栈指针和代码指针等。病毒在传染EXE后缀文件时一般将文件头的代码指针使之指向病毒入口,当系统加载时病毒首先获得控制权。
病毒要把自身复制到EXE文件中,需要做的修改主要有: ? 写入一个新节(病毒的程序体)
? 在节表中新加一个节头
? 修改PE文件头的文件表头中的相应字段(如NumberOfSections) ? 修改程序入口点地址
其中修改程序入口点地址是十分关键的,它保证系统运行宿主文件时先执行病毒程序。
(三)python文件
python的源代码py文件在运行时都会被先编译成字节码,并把编译的结果保存到PyCodeObject中&#