⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 杀毒参数自动分析程序.cpp

📁 对.com 染毒文件进行病毒参数自动分析
💻 CPP
字号:
#include<stdio.h>
#define COM_LEN 0x800000 /*本程序所分析染毒文件的最大长度*/
#define COMHEAD 50     /*病毒可能隐藏代码的 最大长度*/
#define VCODE_LEN 10   /*病毒特征串长度*/
FILE  *fp1,*fp2,*fp3;
unsigned int fp1_len,fp2_len,i,j;
unsigned char nvcom[COMHEAD],vcom[COM_LEN];
struct comvir_struct
{
    unsigned int vir_len;/*病毒的长度*/
    unsigned char vcode[VCODE_LEN];/*病毒 的特征搜索字符串*/
    unsigned int mov_len;/*原COM文件头的代码被病毒所隐藏的字节数*/
    unsigned int mov_off;/*病毒所隐藏的代码相对于 染毒文件末尾的偏移值*/
    
}   comVIR;

main(int argc,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);
    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--)
    if (vcom[i]!=nvcom[i])
    {
        comVIR.mov_len=i+1;
        break;
    }
    rewind(fp2);
    fread(vcom,COM_LEN,1,fp2);
    for(i=COM_LEN-comVIR.mov_len;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("Anylize failed!");
        exit(0);
     }
     
     fp3=fopen("VIRINFO.DAT","wb");
     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 文件! ");

     
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -