《5-2-1杀毒软件案例剖析课件.ppt》由会员分享,可在线阅读,更多相关《5-2-1杀毒软件案例剖析课件.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Virus计算机病毒与防治计算机病毒与防治重庆电子工程职业学院重庆电子工程职业学院计算机病毒与防治课程小组教学单元5-2杀毒软件案例剖析杀毒参数自动分析程序ANYCOM分析KV300杀毒软件的构成分析杀毒软件的构成分析全自动杀毒实用程序AUTOKV剖析 第一讲 杀毒软件案例剖析计算机病毒与防治课程小组6.5杀毒软件案例剖析 所有的反病毒软件都有一个主运行文件,这个文件至少要包含搜索文件局部和匹配病毒特征串局部以及常见多发性病毒的杀毒局部。早期的反病毒软件甚至来个五合一,在一个主运行文件中就包含了搜索文件局部、匹配病毒特征串局部、杀毒局部、病毒特征串库、杀毒关键性参数库这五个局部。后来由于新病毒
2、层出不穷,为加快软件升级速度,加强软件开放性,很多软件将病毒特征串库、杀毒关键性参数库单独做成文件,这种文件有的做得相当简易开放,用户可以直接向其中添加内容,增加自己软件的查毒或杀毒数量。杀毒软件KV300的构成KV300的主要文件和主要功能如下:KV300.EXE:主运行文件。它具有搜索文件局部、匹配病毒特征串局部和杀毒局部,对常见多发性病毒来说,它是五合一的。VIRUS.DAT:新病毒的特征串库文件。它就是病毒特征串库,用户可按KV300的病毒特征串标准向其中添加新病毒特征串,从而使查病毒数量不断增加。KILL2658.VVV:KV300里还有几个这样扩展名为VVV的杀毒代码文件,如KIL
3、LBOOT.VVV、K-VTECH.VVV。这些文件是根据新发现病毒的杀毒关键性参数,利用KV300的编程接口编写的,在一定程度上,这些扩展名为VVV的文件集合可以理解为是杀毒局部与杀毒关键性参数库的结合体。杀毒参数自动分析程序ANYCOM分析 普通文件型病毒的分析是有规律可循的,我们完全可以编写出杀毒关键性参数自动分析程序,免除每遇到一种新病毒,都要手工分析的麻烦。下面的Turbo C2.0程序ANYCOM,可以自动分析后附式COM文件型病毒的杀毒关键性参数,并将它们存入VIRINFO.DAT文件中后附式病毒是指病毒代码附加到宿主程序最后,并修改宿主程序的第一条指令为跳转或调用指令,使程序的
4、首指令仍然为病毒的第一条指令,可以供下文的全自动杀毒程序AUTOKV使用。在此举例起到抛砖引玉的作用,读懂了这个程序,就不难编写出其它类文件型病毒的自动分析程序。计算机病毒与防治课程小组杀毒参数自动分析程序ANYCOM分析v使用ANYCOM时,用未染毒的诱饵文件作为它的第一个参数文件名1,用染毒诱饵文件作为它的第二个参数文件名2,同时应保证染毒诱饵文件的长度不超过32K假设超过,请将程序中COM_LEN值相应增大。为确保分析结果,应保证在执行ANYCOM时,内存是无毒的,以免被病毒欺骗。/*Program ANYCOM.C功能:全自动分析后附式COM文件型病毒杀毒关键性参数执行格式:ANYCO
5、M*/#define COM_LEN 0 x8000 /*本程序所分析染毒文件的最大长度*/#define COMHEAD 50 /*病毒可能隐藏代码的最大长度*/#define VCODE_LEN 10 /*病毒特征串长度*/杀毒参数自动分析程序ANYCOM分析comVIR.vir_len=fp2_len-fp1_len;i=fseek(fp2,fp1_len,SEEK_SET);i=ftell(fp2);i=fread(comVIR.vcode,VCODE_LEN,1,fp2);for(i=COMHEAD-1;i0;i-)for(j=0;jcomVIR.mov_len;j+)if(vcom
6、i+j!=nvcomj)break;if(j=comVIR.mov_len)break;if(i)comVIR.mov_off=fp2_len-i-j+3;elseprintf(“Anylize failed!);exit(0);fp3=fopen(“VIRINFO.DAT,wb);杀毒参数自动分析程序ANYCOM分析fwrite(&comVIR,sizeof(comvir),1,fp3);printf(“病毒长度:病毒长度:%d字节字节n,comVIR.vir_len);printf(“病毒特征串病毒特征串);for(i=0;i10;i+)printf(“%xH,comVIR.vcodei)
7、;printf(“n 病毒隐藏原病毒隐藏原COM文件头代码文件头代码:%d字节字节n,comVIR.mov_len);printf(“被隐藏病毒代码相对于染毒文件末尾偏移值被隐藏病毒代码相对于染毒文件末尾偏移值:%d字节字节n,comVIR.mov_off);printf(“所有杀毒关键性参数已存入所有杀毒关键性参数已存入VIRINFO.DAT文件中!文件中!);计算机病毒与防治课程小组分组讨论并总结分组讨论ANYCOM程序,答复如下问题:通读程序,解释这两条语句。1.fp1=fopen(argv1,rb+);i=fread(nvcom,COMHEAD,1,fp1);2.fp3=fopen(“
8、VIRINFO.DAT,wb);fwrite(&comVIR,sizeof(comvir),1,fp3);全自动杀毒实用程序案例AUTOKV剖析计算机病毒与防治课程小组 下面再举一个全自动杀毒实用程序案例AUTOKV,每当您的COM文件被后附式文件型病毒感染时,您就可以用AUTOKV来去除,前面ANYCOM生成的VIRINFO.DAT的文件。注意在使用AUTOKV时,必须保证VIRINFO.DAT与它处于同一目录中。同时,在使用它们时,必须保证内存中无病毒。否那么,某些具备欺骗技术的隐蔽型病毒将蒙蔽它们的查毒功能。/*Program AUTOKV.C 功能:全自动去除后附式COM文件型病毒执行
9、格式:AUTOKV */#define VCODE_LEN 10 /*病毒特征串长度*/#include “stdio.h#include “dir.h#include “string.h#include “dos.h#include “stdlib.h#include “bios.h#include “conio.h#include “io.h计算机病毒与防治课程小组全自动杀毒实用程序案例AUTOKV剖析struct comvir_structunsigned int vir_len;/*病毒的长度*/unsigned char vcodeVCODE_LEN;/*病毒的特征搜索字符串*/un
10、signed int mov_len;/*原COM文件头的代码被病毒所隐藏的字节数*/unsigned int mov_off;/*病毒所隐藏的代码相对于染毒文件末尾的偏移值*/comvir;FILE*p;struct ffblk ffb,dirment;char driver,curdriver,pathMAXDIR,curpathMAXDIR;unsigned char wordVCODE_LEN;int p,i,comfile=0,virfile=0;void pathm(void);void sckv(void);计算机病毒与防治课程小组全自动杀毒实用程序案例AUTOKV剖析全自动杀毒
11、实用程序案例AUTOKV剖析main(int argc,char*argv)if(!(fp=fopen(“VIRINFO.DAT,rb)printf(“Can not open VIRINFO.DAT!);exit(0);/*VIRINFO.DAT 是是ANYCOM生成的杀毒关键性参数文件生成的杀毒关键性参数文件*/fread(&comvir,sizeof(comvir),1,fp);fclose(fp);curdriver=getdisk();getcwd(curpath,MAXDIR);driver=toupper(argv10)A;setdisk(driver);chdir(argv1)
12、;strcpy(dirmenT.ff_name,argv1);pathm();setdisk(curdriver);chdir(curpath);printf(“n Scan COM files:%dn,comfile);printf(“Clear Virus:%dn,virfile);exit(0);void pathm()sckv();getcwd(path,MAXDIR);p=findfirst(“*.*,&dirment,0 x3f);全自动杀毒实用程序案例AUTOKV剖析if(!p&dirmenT.ff_name0=。)p=findnext(&dirment);p=findnext(
13、&dirment);while(!p)if(dirmenT.ff_attrib&0 x10)=FA_DIREC)chdir(dirmenT.ff_name);sckv();chdir(path);p=findnext(&dirment);全自动杀毒实用程序案例AUTOKV剖析void sckv()int done;printf(“Scanning directory%sn,dirmenT.ff_name);done=findfirst(“*.*,&ffb,0);while(!done)if(strstr(ffB.ff_name,.COM)printf(“Scanning%sn,ffB.ff_n
14、ame);comfile+;fp=fopen(ffB.ff_name,rb+);计算机病毒与防治课程小组全自动杀毒实用程序案例AUTOKV剖析fseek(fp,-(long int)comVIR.vir_len,SEEK_END);done=fread(word,VCODE_LEN,1,fp);for(i=0;ifd;asm xor cx,cxasm mov ah,0 x40asm int 0 x21fclose(fp);done=findnext(&ffb);分组讨论AUTOKV程序,答复如下问题:1.strcpy(dirmenT.ff_name,argv1);这条语句有什么作用?2.解释函数pathm()的作用。的作用。3.解释函数sckv()的作用。的作用。本讲小结KV300杀毒软件的构成分析杀毒参数自动分析程序ANYCOM的特点全自动杀毒实用程序案例AUTOKV的构成 掌握关于反病毒软件的构成反病毒软件的构成Virus