查看: 1282|回复: 8
收起左侧

[网络] 求助帮看一C++程序 谢谢了!!!

[复制链接]
shangcheng
发表于 2013-5-15 10:21:09 | 显示全部楼层 |阅读模式
看了半天,也不知道发在哪里合适,不知道发这行不行
现在有一程序,只能实现查毒功能,希望大神帮看下,怎么实现杀毒功能,需要加什么指令我怎么就调不出来了呢 智商捉急  多谢 多谢啦 !!!
#include <windows.h>
#include <stdio.h>
#include <conio.h>
bool scanvir(const char *filename,long offset,int length,void *vir);
int viewfiles(char *directory,long offset,int length,void *vir);
int main(void)
{
unsigned char vir[]=
{0x4A,0x75,0x6D,0x55,0x70,0x85,0x0B,0x73,0x4E,0x85,0x02,0x54,0x69,0x9A,0x07,0xD0,
0xA1,0x4A,0x6F,0x00,0x62,0x61,0x6B,0x61,0x33,0x00,0x53,0x4F,0x0B,0x46,0x54,0x57,
0x41,0x55,0x11,0x5C,0x6A,0x9C,0x29,0x5C,0xE3,0x97,0x5C,0x0F,0x7F,0x20,0xF0,0xB6};
char directory[MAX_PATH];
int count;
printf("             ============================================\n");
printf("                        震荡波病毒查找工具 \n");
printf("             ============================================\n");
printf("\n");
printf("请输入待检查分区目录名\n");
printf("\n");
printf("提醒:分区后加':',目录路径输入完整\n");
printf("\n");
printf("请输入:");
gets(directory);
printf("\n");
printf("查找病毒开始,请耐心等待......\n");
printf("\n");
count=viewfiles(directory,0x32A0,0x30,vir);
printf("\n");
if(count>0)
    printf("这次检查共在目录里面发现%d个病毒.\n",count);

else
    printf("%s中安全,未发现病毒.\n",directory);
getch();
}
bool scanvir(const char *filename,long offset,int length,void *vir)
{
    FILE *fp;
    char *rvir;
    bool b=false;
    fp=fopen(filename,"rb");
    if(fp!=NULL)
    {
          fseek(fp,0,SEEK_END);
          if(offset+length<=ftell(fp))

          {
                fseek(fp,offset,SEEK_SET);
                rvir=new char[length];
                fread(rvir,length,1,fp);
                b=memcmp(vir,rvir,length)==0;
                delete[] rvir;
          }
          fclose(fp);
    }
    return b;
}
int viewfiles(char *directory,long offset,int length,void *vir)
//遍历文件函数,获取文件路径
{
    WIN32_FIND_DATA fdFindData;
    HANDLE hFind;
    char *filename;
    int count=0;
    BOOL done;
    filename=new char[strlen(directory)+5];
    strcpy(filename,directory);
    strcat(filename,"\\*.*");
    hFind=FindFirstFile(filename,&fdFindData);
    delete[] filename;
    done=hFind!=INVALID_HANDLE_VALUE;
    while(done)
    {
          if(strcmp(fdFindData.cFileName,".") && strcmp(fdFindData.cFileName,".."))

          {
                filename=new char[strlen(directory)+strlen(fdFindData.cFileName)+2];
                strcpy(filename,directory);
                strcat(filename,"\\");
                strcat(filename,fdFindData.cFileName);
                if((fdFindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY)
                    count+=viewfiles(filename,offset,length,vir);
                else
                    if(scanvir(filename,offset,length,vir))
                    {
                          count++;
                          printf("警告!发现病毒。病毒路径%s\n",filename);
                                        }
                delete[] filename;
          }
          done=FindNextFile(hFind,&fdFindData);
    }
    FindClose(hFind);
    return(count);
}

阿三.
发表于 2013-5-15 11:27:24 | 显示全部楼层
毕业设计??? 问你同学贝
shangcheng
 楼主| 发表于 2013-5-15 11:36:52 | 显示全部楼层
阿三. 发表于 2013-5-15 11:27
毕业设计??? 问你同学贝

都没人会啊 !!!      
100lj
发表于 2013-5-15 11:51:20 | 显示全部楼层
这个是C++编程?我怎么一点印象都没有,难道全都还给老师了!?
peng85344558
发表于 2013-5-15 12:14:53 | 显示全部楼层
本帖最后由 peng85344558 于 2013-5-15 12:24 编辑

我是病毒菜鸟的  只能小小帮你
就百科了解震荡波行为,主要杀掉它需要
1.终止avserve和*_up进程,并删除注册表中与avserve和_up相关的健值(但是有没有进程保护呢)
2.删除硬盘上avserve或_up的.exe和.pf文件(进程能关了,这个就可以删)

所以目标是先中止进程,然后删除注册表项,再删除这些文件,代码就百度给你好好研究了
中止进程的:http://www.oschina.net/question/ ... ult&p=2#answers(真理在最后面)
删除注册表项:http://zhidao.baidu.com/question/73888358.html

搜索文件删除文件就不说了~~~麻烦在第1点如何能中止该进程,如果加了双+隐藏+保护进程,那就头疼了~~~如果能结果了这个进程,注册表项和文件就是小事了,删完可以考虑优化后续的打补丁和关闭445端口
总体说你选个震荡波来玩有点难度啊,这个病毒虽然老了,但凡人要手动解决它还是有难度的,何况它的升级版有很多啊~~

ps:这东西真心没研究深,真要写的话,没个把月就写不完整的~~

评分

参与人数 1经验 +4 收起 理由
恋爱的夏娜 + 4 感谢解答: )

查看全部评分

shangcheng
 楼主| 发表于 2013-5-15 12:34:56 | 显示全部楼层
peng85344558 发表于 2013-5-15 12:14
我是病毒菜鸟的  只能小小帮你
就百科了解震荡波行为,主要杀掉它需要
1.终止avserve和*_up进程,并 ...

已经很厉害了 受教 多谢哈
levibeta
发表于 2013-5-15 14:00:14 | 显示全部楼层
楼主把开发杀软想的太简单了。
shangcheng
 楼主| 发表于 2013-5-15 16:13:10 | 显示全部楼层
levibeta 发表于 2013-5-15 14:00
楼主把开发杀软想的太简单了。

所以我才搞不定了啊
满楼听疯语
发表于 2013-5-16 15:13:29 | 显示全部楼层
标砖的.h,标准的printf,标准的C
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-13 02:20 , Processed in 0.121663 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表