zoukankan      html  css  js  c++  java
  • 清除守护进程程序

    #include "windows.h"
    #include "stdio.h"
    #include "tlhelp32.h"
    
    int main()
    {
    /////////////////////////////////////////////////////////////////////
    // 程序首先要暂停病毒进程
    /////////////////////////////////////////////////////////////////////
     printf("开始查杀病毒进程...");
     // 给系统内所有的进程拍个快照  
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
        if ( hSnap == INVALID_HANDLE_VALUE )  
     {  
            printf("进程快照创建失败!");  
            return 0;  
     }
    
     PROCESSENTRY32 Pe32 = { 0 };  
        // 在使用这个结构前,先设置它的大小  
        Pe32.dwSize = sizeof(PROCESSENTRY32);  
        // 遍历进程快照  
        BOOL bRet = Process32First(hSnap, &Pe32;); 
     // 通过循环来暂停病毒进程
     while ( bRet )
     {
         // 三个进程名称进行匹配
      if ( strcmp(Pe32.szExeFile, "severe.exe")==0 || strcmp(Pe32.szExeFile, "conime.exe")==0 || strcmp(Pe32.szExeFile, "tfidma.exe")==0)
      {
          // 创建线程快照
       HANDLE thSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, Pe32.th32ProcessID);  
                if ( thSnap == INVALID_HANDLE_VALUE )  
       {  
                    printf("%s线程快照创建失败!",Pe32.szExeFile);  
                    return 0;  
       }
    
                THREADENTRY32 Te32 = { 0 };  
                // 在使用这个结构前,先设置它的大小
       Te32.dwSize = sizeof(THREADENTRY32);  
                // 遍历线程快照
       BOOL tbRet = Thread32First(thSnap, &Te32;);  
                // 通过循环来暂停病毒进程中的所有线程
       while ( tbRet )  
       {  
                    //判断线程所属  
           if ( Te32.th32OwnerProcessID == Pe32.th32ProcessID )  
                    {                         
                        // 打开线程
         HANDLE hThread = OpenThread(THREAD_ALL_ACCESS, FALSE, Te32.th32ThreadID);  
                        // 暂停线程    
         SuspendThread(hThread);  
                        // 关闭线程句柄
                        CloseHandle(hThread);  
                    }   
                    tbRet = Thread32Next(thSnap, &Te32;);  
       }
       printf("%s进程暂停成功!
    ",Pe32.szExeFile);
       CloseHandle(thSnap);
      }
      bRet = Process32Next(hSnap, &Pe32;); 
     }
    /////////////////////////////////////////////////////////////////////
    // 程序接下来要结束病毒进程
    ///////////////////////////////////////////////////////////////////// 
        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
        if ( hSnap == INVALID_HANDLE_VALUE )  
     {  
            printf("进程快照创建失败!
    ");  
            return 0;  
     }
    
        // 在使用这个结构前,先设置它的大小  
        Pe32.dwSize = sizeof(PROCESSENTRY32);  
        // 遍历进程快照  
        bRet = Process32First(hSnap, &Pe32;); 
     // 通过循环来结束病毒进程
     while ( bRet )
     {
         // 三个进程名称进行匹配
      if ( strcmp(Pe32.szExeFile, "severe.exe")==0 || strcmp(Pe32.szExeFile, "conime.exe")==0 || strcmp(Pe32.szExeFile, "tfidma.exe")==0)
      {
          HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, Pe32.th32ProcessID);       
                TerminateProcess(hProcess, 0); 
       printf("病毒进程%s成功结束!
    ",Pe32.szExeFile);
                CloseHandle(hProcess); 
      }
      bRet = Process32Next(hSnap, &Pe32;); 
     }
    
     printf("病毒进程清理完毕!
    "); 
        CloseHandle(hSnap);
     getchar();
     return 0;
    }
  • 相关阅读:
    table表格宽带研究(附带:table表格为什么设置td宽度无效)
    同一天有重复请假
    C#通过SQL 添加,删除,或者修改表名。
    将数据导出到Excel2007格式。
    MRBS, meeting room manager system,会议预定管理系统
    于网站主机,DNS,域名解析,Web服务器关系详解
    关于启明星系统(OA系统,预定系统,请假系统等)开始ASP.NET身份验证
    启明星系统字体的演变
    从网易获取股票每日交易数据的爬虫程序
    如何让Web程序在点击按钮后出现如执行批处理程序般的效果
  • 原文地址:https://www.cnblogs.com/zheh/p/5460614.html
Copyright © 2011-2022 走看看