计算机病毒与恶意代码 课件 5-2-1杀毒软件案例剖析_第1页
计算机病毒与恶意代码 课件 5-2-1杀毒软件案例剖析_第2页
计算机病毒与恶意代码 课件 5-2-1杀毒软件案例剖析_第3页
计算机病毒与恶意代码 课件 5-2-1杀毒软件案例剖析_第4页
计算机病毒与恶意代码 课件 5-2-1杀毒软件案例剖析_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

计算机病毒与防治重庆电子工程职业学院计算机病毒与防治课程小组教学单元5-2杀毒软件案例剖析杀毒参数自动分析程序ANYCOM分析KV300杀毒软件的构成分析全自动杀毒实用程序AUTOKV剖析

第一讲杀毒软件案例剖析计算机病毒与防治课程小组6.5杀毒软件案例剖析

所有的反病毒软件都有一个主运行文件,这个文件至少要包含搜索文件部分和匹配病毒特征串部分以及常见多发性病毒的杀毒部分。

早期的反病毒软件甚至来个五合一,在一个主运行文件中就包含了搜索文件部分、匹配病毒特征串部分、杀毒部分、病毒特征串库、杀毒关键性参数库这五个部分。

后来由于新病毒层出不穷,为加快软件升级速度,加强软件开放性,很多软件将病毒特征串库、杀毒关键性参数库单独做成文件,这种文件有的做得相当简易开放,用户可以直接向其中添加内容,增加自己软件的查毒或杀毒数量。6.5.1杀毒软件KV300的构成KV300的主要文件和主要功能如下:KV300.EXE:主运行文件。它具有搜索文件部分、匹配病毒特征串部分和杀毒部分,对常见多发性病毒来说,它是五合一的。

VIRUS.DAT:新病毒的特征串库文件。它就是病毒特征串库,用户可按KV300的病毒特征串规范向其中添加新病毒特征串,从而使查病毒数量不断增加。

KILL2658.VVV:KV300里还有几个这样扩展名为VVV的杀毒代码文件,如KILLBOOT.VVV、K-VTECH.VVV。这些文件是根据新发现病毒的杀毒关键性参数,利用KV300的编程接口编写的,在一定程度上,这些扩展名为VVV的文件集合可以理解为是杀毒部分与杀毒关键性参数库的结合体。6.5.2杀毒参数自动分析程序ANYCOM分析

普通文件型病毒的分析是有规律可循的,我们完全可以编写出杀毒关键性参数自动分析程序,免除每遇到一种新病毒,都要手工分析的麻烦。

下面的TurboC2.0程序——ANYCOM,可以自动分析后附式COM文件型病毒的杀毒关键性参数,并将它们存入VIRINFO.DAT文件中(后附式病毒是指病毒代码附加到宿主程序最后,并修改宿主程序的第一条指令为跳转或调用指令,使程序的首指令仍然为病毒的第一条指令),可以供下文的全自动杀毒程序AUTOKV使用。

在此举例起到抛砖引玉的作用,读懂了这个程序,就不难编写出其它类文件型病毒的自动分析程序。计算机病毒与防治课程小组6.5.2杀毒参数自动分析程序ANYCOM分析使用ANYCOM时,用未染毒的诱饵文件作为它的第一个参数(文件名1),用染毒诱饵文件作为它的第二个参数(文件名2),同时应保证染毒诱饵文件的长度不超过32K(若超过,请将程序中COM_LEN值相应增大)。为确保分析结果,应保证在执行ANYCOM时,内存是无毒的,以免被病毒欺骗。/*ProgramANYCOM.C功能: 全自动分析后附式COM文件型病毒杀毒关键性参数执行格式:ANYCOM<文件名1><文件名2>*/#defineCOM_LEN0x8000/*本程序所分析染毒文件的最大长度*/#defineCOMHEAD50/*病毒可能隐藏代码的最大长度*/#defineVCODE_LEN10/*病毒特征串长度*/6.5.2杀毒参数自动分析程序ANYCOM分析#include“stdio.h”FILE*fp1,*fp2,*fp3;unsignedintfp1_len,fp2_len,i,j;unsignedcharnvcom[COMHEAD],vcom[COM_LEN];structcomvir_struct{unsignedintvir_len;

/*病毒的长度*/unsignedcharvcode[VCODE_LEN];

/*病毒的特征搜索字符串*/unsignedintmov_len;

/*原COM文件头的代码被病毒所隐藏的字节数*/unsignedintmov_off;

/*病毒所隐藏的代码相对于染毒文件末尾的偏移值*/}comVIR;6.5.2杀毒参数自动分析程序ANYCOM分析main(intargc,char*argv[]){fp1=fopen(argv[1],”rb+”);i=fread(nvcom,COMHEAD,1,fp1);nvcom[0]=0xe9;fseek(fp1,0,SEEK_END);fp1_len=ftell(fp1);fp2=fopen(argv[2],”rb+”);i=fread(vcom,COMHEAD,1,fp2);fseek(fp2,0,SEEK_END);fp2_len=ftell(fp2);6.5.2杀毒参数自动分析程序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;i>0;i--){for(j=0;j<comVIR.mov_len;j++)if(vcom[i+j]!=nvcom[j])break;if(j==comVIR.mov_len)break;}if(i)comVIR.mov_off=fp2_len-i-j+3;else{printf(“Anylizefailed!”);exit(0);}fp3=fopen(“VIRINFO.DAT”,”wb”);6.5.2杀毒参数自动分析程序ANYCOM分析fwrite(&comVIR,sizeof(comvir),1,fp3);printf(“病毒长度:%d字节\n”,comVIR.vir_len);printf(“病毒特征串”);for(i=0;i<10;i++)printf(“%xH”,comVIR.vcode[i]);printf(“\n病毒隐藏原COM文件头代码:%d字节\n”,comVIR.mov_len);printf(“被隐藏病毒代码相对于染毒文件末尾偏移值:%d字节\n”,comVIR.mov_off);printf(“所有杀毒关键性参数已存入VIRINFO.DAT文件中!”);}计算机病毒与防治课程小组分组讨论并总结分组讨论ANYCOM程序,回答如下问题:通读程序,解释这两条语句。1.fp1=fopen(argv[1],”rb+”);i=fread(nvcom,COMHEAD,1,fp1);2.fp3=fopen(“VIRINFO.DAT”,”wb”);fwrite(&comVIR,sizeof(comvir),1,fp3);6.5.3全自动杀毒实用程序案例——AUTOKV剖析计算机病毒与防治课程小组

下面再举一个全自动杀毒实用程序案例——AUTOKV,每当您的COM文件被后附式文件型病毒感染时,您就可以用AUTOKV来清除,前面ANYCOM生成的VIRINFO.DAT的文件。

注意在使用AUTOKV时,必须保证VIRINFO.DAT与它处于同一目录中。同时,在使用它们时,必须保证内存中无病毒。否则,某些具备欺骗技术的隐蔽型病毒将蒙蔽它们的查毒功能。/*ProgramAUTOKV.C功能:全自动清除后附式COM文件型病毒执行格式:AUTOKV<盘符><目录名>*/#defineVCODE_LEN10

/*病毒特征串长度*/#include“stdio.h”#include“dir.h”#include“string.h”#include“dos.h”#include“stdlib.h”#include“bios.h”#include“conio.h”#include“io.h”计算机病毒与防治课程小组6.5.3全自动杀毒实用程序案例——AUTOKV剖析structcomvir_struct{unsignedintvir_len;

/*病毒的长度*/unsignedcharvcode[VCODE_LEN];

/*病毒的特征搜索字符串*/unsignedintmov_len;

/*原COM文件头的代码被病毒所隐藏的字节数*/unsignedintmov_off;

/*病毒所隐藏的代码相对于染毒文件末尾的偏移值*/}comvir;FILE*p;structffblkffb,dirment;chardriver,curdriver,path[MAXDIR],curpath[MAXDIR];unsignedcharword[VCODE_LEN];intp,i,comfile=0,virfile=0;

voidpathm(void);voidsckv(void);计算机病毒与防治课程小组6.5.3全自动杀毒实用程序案例——AUTOKV剖析6.5.3全自动杀毒实用程序案例——AUTOKV剖析main(intargc,char*argv[]){if(!(fp=fopen(“VIRINFO.DAT”,”rb”))){printf(“CannotopenVIRINFO.DAT!”);exit(0);}

/*VIRINFO.DAT是ANYCOM生成的杀毒关键性参数文件*/fread(&comvir,sizeof(comvir),1,fp);fclose(fp);curdriver=getdisk();getcwd(curpath,MAXDIR);driver=toupper(argv[1][0])–‘A’;setdisk(driver);chdir(argv[1]);strcpy(dirmenT.ff_name,argv[1]);pathm();setdisk(curdriver);chdir(curpath);printf(“\nScanCOMfiles:%d\n”,comfile);printf(“ClearVirus::%d\n”,virfile);exit(0);}voidpathm(){sckv();getcwd(path,MAXDIR);p=findfirst(“*.*”,&dirment,0x3f);6.5.3全自动杀毒实用程序案例——AUTOKV剖析if(!p&&dirmenT.ff_name[0]==’。’){p=findnext(&dirment);p=findnext(&dirment);}while(!p){if((dirmenT.ff_attrib&0x10)==FA_DIREC){chdir(dirmenT.ff_name);sckv();chdir(path);}p=findnext(&dirment);}}6.5.3全自动杀毒实用程序案例——AUTOKV剖析voidsckv(){intdone;printf(“Scanningdirectory%s\n”,dirmenT.ff_name);done=findfirst(“*.*”,&ffb,0);while(!done){if(strstr(ffB.ff_name,”.COM”)){printf(“Scanning%s\n”,ffB.ff_name);comfile++;fp=fopen(ffB.ff_name,”rb+”);计算机病毒与防治课程小组6.5.3全自动杀毒实用程序案例——AUTOKV剖析fseek(fp,-(longint)comVIR.vir_len,SEEK_END);done=fread(word,VCODE_LEN,1,fp);for(i=0;i<VCODE_LEN;i++)if(word[i]!=comVIR.vcode[i])break;if(i==VCODE_LEN){printf(“FoundVIRUS!Killedok!\n”);virfile++;fseek(fp,-(longint)comVIR.mov_off,SEEK_END);fread(word,comVIR.mov_len,1,fp);rewind(fp);6.5.3全自动杀毒实用程序案例——AUTOKV剖析fwrite(fp,-(longint)comVIR.vir_len,SEEK_END);done=fp—>fd;asmxorcx,cxasm

温馨提示

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

评论

0/150

提交评论