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;
    }
  • 相关阅读:
    IFNULL和isnull用法
    Python 进制转换 二进制 八进制 十进制 十六进制
    xhr是什么文件类型?
    from __future__ import unicode_literals
    sort is deprecated, use sort_values(inplace=True) for INPLACE sorting
    Autodesk View and Data API二次开发学习指南
    设置Mac 中保存对话框默认为扩展窗口
    [大数据学习研究] 错误排查,Hadoop集群部分DataNode不能启动
    IDEA 环境下更改Maven的仓库镜像提高下载速度
    [大数据学习研究] 4. Zookeeper-分布式服务的协同管理神器
  • 原文地址:https://www.cnblogs.com/zheh/p/5460614.html
Copyright © 2011-2022 走看看