文件夹病毒专杀简单实现

原创 2013年12月02日 14:26:27
#include <iostream>
#include <string>
#include <windows.h>
#include <tchar.h>
using namespace std;
//扫描到文件时调用的回调函数类型
typedef void (*ScanFileCallBack)(TCHAR *pFileName,PVOID pParameter);
//扫描到文件时调用的回调函数,这里可以充分的发挥聪明才智
void DealWithFile(TCHAR *pFileName,PVOID pParameter)
{
    (*(int *)pParameter)++;
    cout<<pFileName;
    cout<<endl;
}
void ScanDirectory(TCHAR *pStrDirectory,ScanFileCallBack funcDoSomething,PVOID pParameter =NULL)
{
    string direc[MAX_PATH];
    string file[MAX_PATH];
    int count=0;
    int count1=0;
    int flag=0;
    if(pStrDirectory == NULL)
    {
        return ;
    }
    WIN32_FIND_DATA fData={0};
    TCHAR tcDirectory[MAX_PATH]={0},tcScanFileType[MAX_PATH]={0};
    int iLength =_tcslen(pStrDirectory);
    if(iLength>MAX_PATH)      //如果目录路径过长则失败
    {
        return ;
    }
    _tcscpy(tcScanFileType ,pStrDirectory);    //保存扫描文件夹
    
    if(_T('\\') == tcScanFileType[iLength - 1])
        _tcscat(tcScanFileType,_T("*.*"));
    else
        _tcscat(tcScanFileType,_T("\\*.*"));                //构造扫描文件类型名
    HANDLE hFindHandle = FindFirstFile(tcScanFileType,&fData);
    if(hFindHandle == INVALID_HANDLE_VALUE)
    {
        return ;
    }
    do
    {
        if(_T('.') == fData.cFileName[0])
        {
            // 跳过上层目录
            continue;
        }
        _tcscpy(tcDirectory,pStrDirectory);     //保存扫描文件夹
        if('\\'!=tcDirectory[iLength -1])
            _tcscat(tcDirectory,_T("\\"));
        strcat(tcDirectory,fData.cFileName);                //新文件名或子文件夹名
        fData.dwFileAttributes &=FILE_ATTRIBUTE_DIRECTORY;
        if(FILE_ATTRIBUTE_DIRECTORY == fData.dwFileAttributes)     //判断是否是目录
        {
             direc[count++]=tcDirectory;
        }    
        else
        {
             file[count1++]=tcDirectory;
        }
        
    } while (FindNextFile(hFindHandle,&fData));
    for(int i=0;i<count;i++)
    {
        cout<<direc[i]<<endl;
    }
    cout<<"-------------------------------------------------------------"<<endl;
    for(int j=0;j<count1;j++)
    {
        cout<<file[j]<<endl;
    }
    cout<<"---------------------------------------------------------------"<<endl;
    for(i=0;i<count1;i++)
    {
        int n=file[i].find_last_of(".");
        string str=file[i].substr(0,n);
        for(j=0;j<count;j++)
        {
             if(str==direc[j])
             {
                char *p = (char *)file[i].c_str();  
                string cmd="attrib -h -a -s -r ";
                cmd=cmd+direc[j];
                char *pcmd=(char *)cmd.c_str();
                WinExec(pcmd,SW_NORMAL);
                DeleteFile(p);
                break;
             }
        }    
    }
}

int main()
{
    char disk[256];
    int flag=0;
    DWORD len=GetLogicalDriveStrings(sizeof(disk)/sizeof(char),disk);
    for(char *pdisk=disk;*pdisk;pdisk+=strlen(pdisk)+1)
    {
        if(GetDriveType(pdisk)==DRIVE_REMOVABLE)
        {
            flag=1;
            break;
        }
    }
    if(flag == 1)
    {

        int iCount=0;
        ScanDirectory(pdisk,DealWithFile,&iCount);
    }
    return 0;
}

相关文章推荐

肢解“文件夹图标”病毒,制作专杀工具——“郑大扫帚”

肢解“文件夹图标”病毒,制作专杀工具——“郑大扫帚” 回想2009年7-8月份,学校机房被“文件夹图标病毒”变成了病毒“集散地”,由于大量的优盘在机房中使用,很快该病毒传遍了校园,打印店等地方也被感...
  • clbxp
  • clbxp
  • 2012年03月19日 21:55
  • 3387

文件夹病毒专杀

  • 2017年11月20日 12:58
  • 409KB
  • 下载

微点文件夹病毒专杀工具

  • 2010年07月13日 09:44
  • 324KB
  • 下载

病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写

一、前言         由于我已经在《病毒木马查杀第004篇:熊猫烧香之专杀工具的编写》中编写了一个比较通用的专杀工具的框架,而这个框架对于本病毒来说,经过简单修改也是基本适用的,所以本文就不讨论那...
  • ioio_jy
  • ioio_jy
  • 2014年12月27日 00:53
  • 2350

文件夹病毒专杀工具

  • 2012年10月30日 09:17
  • 1.08MB
  • 下载

文件夹图标病毒专杀

  • 2013年03月25日 15:35
  • 506KB
  • 下载

最新Viking(维金)病毒专杀工具,纯VB编写。

Viking的肆虐让很多受害者忍无可忍,更可气的是专业软件公司提供的专杀工具竟然无法彻底清除。       无奈之余自己动手写了一个,请需要的朋友到这里下载:http://www.chenoe.co...

文件夹同名exe病毒专杀.rar

  • 2013年12月18日 11:49
  • 2.86MB
  • 下载

文件夹图标病毒专杀工具

  • 2009年05月18日 11:31
  • 750KB
  • 下载

病毒木马查杀实战第004篇:熊猫烧香之专杀工具的编写

一、前言         如果是非感染型的病毒,完成行为分析之后,就可以开始编写专杀工具了。当然对于我们这次研究的对象——“熊猫烧香”来说,其实通过之前的行为分析,我们并没有得出它的所有恶意行为,毕竟...
  • ioio_jy
  • ioio_jy
  • 2014年11月09日 23:50
  • 2988
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件夹病毒专杀简单实现
举报原因:
原因补充:

(最多只允许输入30个字)