欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實現(xiàn)監(jiān)控進程是否有病毒

 更新時間:2024年02月27日 15:32:08   作者:白客小李666  
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)監(jiān)控進程是否有病毒,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

程序流程圖

實現(xiàn)監(jiān)控進程

導包

這里,我們需要用一個特別的庫,叫做psutil

import psutil

處理進程信息

然后我們創(chuàng)建一個列表,里面存儲進程的信息

processes = []
for process in psutil.process_iter():
    try:
        process_info = process.as_dict(attrs=['pid', 'name', 'username', 'cpu_percent', 'memory_info','exe'])
        processes.append(process_info)
    except:
        pass

有興趣的讀者可以讀取一下processes這個列表,里面很亂,其中記錄了系統(tǒng)中的每一個進程的信息,并把每一組信息弄成一個字典

這里以svchost.exe為例

然后我們就可以看到這個程序的信息了

檢測文件是否是病毒

殺毒引擎就不過多介紹了,請大家參考:使用Python制作一個惡意軟件刪除工具

這里也可以連一下360殺毒引擎

import requests
import xml.etree.ElementTree as xmlet
def clouds_scan_Engine(file):
    """接入360云掃描引擎"""
    try:
        with open(file, "rb") as f:
            text = str(hashlib.md5(f.read()).hexdigest())
        strBody = f'-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="md5s"\r\n\r\n{text}\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="format"\r\n\r\nXML\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="product"\r\n\r\n360zip\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="combo"\r\n\r\n360zip_main\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="v"\r\n\r\n2\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="osver"\r\n\r\n5.1\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="vk"\r\n\r\na03bc211\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="mid"\r\n\r\n8a40d9eff408a78fe9ec10a0e7e60f62\r\n-------------------------------7d83e2d7a141e--'
        response = requests.post('http://qup.f.#/file_health_info.php', data=strBody, timeout=3)
        if response.status_code == 200:
            level = float(xmlet.fromstring(response.text).find('.//e_level').text)
            if level > 50: #判斷是否是病毒
                return "Virus"
            elif level <= 10:
                return "Safe"
            return "Unknown"
        return f"Error: {response.status_code}"
    except Exception as e:
        return f"Error: {e}"

這里就用PYAS的密鑰了,我沒密鑰,連不上

報毒

殺毒引擎和監(jiān)控文件進程的程序都弄好了,那怎么報毒呢

messagebox?不太現(xiàn)實,如果你正工作呢中間給你來個彈窗,不嚇人嗎

所以這里我們用plyer的右下角彈窗,這個庫我自認為穩(wěn)定一點,因為當時我用win10toast打包不成功(咋整都不行)。

導包

from plyer import notification

彈窗

def notifier(message):
    notification.notify(title="Anti Virus",message=message,app_icon = None,timeout = 3)
                         #標題             #信息                   #圖標        #顯示的時間 

彈出來了(要是彈不出來重啟電腦再試一次基本就行了)

總代碼

#! python3.9.0
# -*- coding:ANSI -*-
#作者:白客小李666
#創(chuàng)建日期:2024-2-14
#版本號:V1.0
import os
import time
import hashlib
import subprocess
import psutil
import requests
import xml.etree.ElementTree as xmlet
import tkinter.messagebox as messagebox
from plyer import notification
import win32file, win32con
 
def notifier(message):
    notification.notify(title="PF Anti Virus",message=message,app_icon = None,timeout = 3)
def clouds_scan_Engine(file):
    """接入360云掃描引擎"""
    try:
        with open(file, "rb") as f:
            text = str(hashlib.md5(f.read()).hexdigest())
        strBody = f'-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="md5s"\r\n\r\n{text}\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="format"\r\n\r\nXML\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="product"\r\n\r\n360zip\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="combo"\r\n\r\n360zip_main\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="v"\r\n\r\n2\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="osver"\r\n\r\n5.1\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="vk"\r\n\r\na03bc211\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="mid"\r\n\r\n8a40d9eff408a78fe9ec10a0e7e60f62\r\n-------------------------------7d83e2d7a141e--'
        response = requests.post('http://qup.f.#/file_health_info.php', data=strBody, timeout=3)
        if response.status_code == 200:
            level = float(xmlet.fromstring(response.text).find('.//e_level').text)
            if level > 50: #判斷是否是病毒
                return "Virus"
            elif level <= 10:
                return "Safe"
            return "Unknown"
        return f"Error: {response.status_code}"
    except Exception as e:
        return f"Error: {e}"
Virus_Reservoirs=[
                 '40d8911754a4d6cd8d4c732f96eb3016',#無限cmd彈窗
                 '13a46d4fd98cac46bc95fc1ca6dd8c56',#無限cmd彈窗
                 '0d686bf04da1a4d11ea197375b99a48b',#無限cmd彈窗
                 'eda588c0ee78b585f645aa42eff1e57a',#中華黑豹升級版
                 '19dbec50735b5f2a72d4199c4e184960',#MEMZ彩虹貓
                 '815b63b8bc28ae052029f8cbdd7098ce',#滑稽病毒
                 'c71091507f731c203b6c93bc91adedb6',#盧本偉病毒
                 '0a456ffff1d3fd522457c187ebcf41e4',#蠕蟲
                 '1aa4c64363b68622c9426ce96c4186f2',#BIOS、MBR病毒
                 'd214c717a357fe3a455610b197c390aa',#Virus.Win32.disttrackA類型病毒
                 'b14299fd4d1cbfb4cc7486d978398214',#Virus.Win32.disttrackA類型病毒
                 'dffe6e34209cb19ebe720c457a06edd6',#無盡黑洞木馬病毒
                 '512301c535c88255c9a252fdf70b7a03',#熊貓燒香
                 'd4a05ada747a970bff6e8c2c59c9b5cd',#WormOrg.Viking.A -->蠕蟲
                 'ad41ec81ab55c17397d3d6039752b0fd',#WormOrg.Win32.Fujack.A  -->蠕蟲
                 'a57db79f11a8c58d27f706bc1fe94e25',#Virus.Win32.Viking.A類型病毒
                 'fc14eaf932b76c51ebf490105ba843eb',#沖擊波
                 '2a92da4b5a353ca41de980a49b329e7d',#蠕蟲
                 '68abd642c33f3d62b7f0f92e20b266aa',#蠕蟲
                 'ff5e1f27193ce51eec318714ef038bef',#蠕蟲
                 '4c36884f0644946344fa847756f4a04e',#磁碟機
                 '2391109c40ccb0f982b86af86cfbc900',#AV終結(jié)者——>Pabug
                 '915178156c8caa25b548484c97dd19c1',#可刪除文件的蠕蟲
                 'dac5f1e894b500e6e467ae5d43b7ae3e',#可刪除文件的蠕蟲
                 '84c82835a5d21bbcf75a61706d8ab549',#WannaCry永恒之藍
                 'db349b97c37d22f5ea1d1841e3c89eb4',#WannaCry永恒之藍
                 '1de73f49db23cf5cc6e06f47767f7fda',#WannaRen
                 'af2379cc4d607a45ac44d62135fb7015',#Petya
                 '71b6a493388e7d0b40c83ce903bc6b04',#Petya組件
                 'e81139675ac1b806d689fb17789e2f99',#斯大林病毒
                 '849da18699ea2332494e431c66be0ca6',#WindowsCrazyError
                 '56975ae355acb292220921ad61c58f2a',#MBR破壞
                 '44d88612fea8a8f36de82e1278abb02f',#引擎測試程序
                 '297de74cb20a975efaf20cd88fddf270',#鬼影木馬
                 'c729d940eb78e927afcba4046543d8f8',#可讓系統(tǒng)藍屏的病毒
                 '8c71f2a4b3079332d4f8078eddb9974a',#小豬佩奇病毒
                 "8c689f65508e1353fb3df35df87ba5c7",#'假藍屏'病毒
                 'f84765b1eb6fc25f1ac48b9d3a53b255', 
                 'dabe78f82700ccf74e0d2bfefb49dd1c', 
                 'd067a550d2a3489e0f6f75bb8e20a6f8',
                 '4544bb3a1f838959ef72b511873f1908', 
                 '8c13bb49dfaf8f0daa42b404d5227f29', 
                 '6e964d9effc5d3e888db037fb1a0f6d5', 
                 'dd51b7493ba47c2a8ad831214640c86e', 
                 'ceeea2aa492f9665a581d9878b6ca560', 
                 'cb0a6cf97767ba655f517ac009226e8a', 
                 '262e179b3432d3bcf8d82783efea7941', 
                 '9d73825b2d64701e2f6c854523aa6130',
                 'a85810a9b80fe17d668259c01c1603e5', 
                 '84e5ccdfbdfd9d92456c890e6d8641d4', 
                 '97cda21c64590b5c7145582da1f3bdcc', 
                 '17b3dae40d5084b0c04faf09b40d1188',
                 '1a57f3e87c8f0da948aac575ec3b0bf6',
                 '1a014f843176d194a6ecfafc872c00cb',
                 'e5215927d2a1f245f752d34c1c281a66', 
                 '0a2e0ab41ec0adc7b5cc6da2b6f71796', 
                 '07c39cc37fc5a625d037e47c2de67140',
                 'fe7d53cf0d0767b6a1a5063f104bd95a',
                 '23b09b6230c63d21c035d716f74c2b4f', 
                 '53b00ae9be4847348be142d94b857998',
                 '523983e00238f69d0d44687d85b5ff7e',
                 'c207d67faa4433dacdda40a3a98e740b',
                  '1c21f88d33bdb8570c813a57382c1069',
                  '942e52b69f0452ac604df829e4d8b2a7', 
                  '0d6d8ece825ac156ec7331111721e6a0',
                '0067366016a1a7feb93cf8befeb1a5f8',
                '041019de368b2b914be10149421be2a5', 
                '332f9ec09fede19ed545c19e661d4e89']
 
class anti_viruses:
     global Virus_Reservoirs,clouds_scan_Engine,notifier
     def anti_virus1():
        """實時掃描進程"""
        def getFileMD5(file):
            f_ob=open(file,"rb")
            f_content=f_ob.read()
            f_ob.close()
            file_md5=hashlib.md5(f_content)
            return file_md5.hexdigest()
        processes = []
        for process in psutil.process_iter():
            try:
                process_info = process.as_dict(attrs=['pid', 'name', 'username', 'cpu_percent', 'memory_info','exe'])
                processes.append(process_info)
            except:
                pass
        tasks_dir=[]
        for i in processes:
            tasks_dir.append(i['exe'])
        for i in tasks_dir:
            try:
                fileMD5=getFileMD5(i)
                try:
                    file_info=clouds_scan_Engine(i)
                    if fileMD5 in Virus_Reservoirs or file_info == 'Virus':
                        n=os.path.basename(i)
                        subprocess.call(f"taskkill /f /im {n}", creationflags=0x08000000)
                        try:
                            os.unlink(i)
                            notifier(f"發(fā)現(xiàn)病毒{n},已處理")
                        except:
                            notifier(f"發(fā)現(xiàn)病毒{n},處理失敗,請立刻查殺病毒!")
                except:
                    print(i+"文件哈希值:"+fileMD5)
                    if fileMD5 in Virus_Reservoirs :
                        n=os.path.basename(i)
                        subprocess.call(f"taskkill /f /im {n}", creationflags=0x08000000)
                        try:
                            os.unlink(i)
                            notifier(f"發(fā)現(xiàn)病毒{n},已處理")
                        except:
                            notifier(f"發(fā)現(xiàn)病毒{n},處理失敗,請立刻查殺病毒!")
            except:
                pass
            
 
 
if __name__ =='__main__':                   
    while True:
        try:
            anti_viruses.anti_virus1()
            time.sleep(0.5)#休息0.5秒,防止內(nèi)存占用率過高導致程序跑不起來
        except Exception as e:
            messagebox.showerror("error",f"Task Monitor stops working!\nerror code:{e}")

測試

這里不方便上病毒,我就把處理文件程序弄上來了,充當一下病毒(穩(wěn)重的病毒庫里沒有他)

python處理文件程序v1.1

這樣,此程序就可以投入使用了!讓我們的電腦更安全

到此這篇關(guān)于使用Python實現(xiàn)監(jiān)控進程是否有病毒的文章就介紹到這了,更多相關(guān)Python監(jiān)控進程是否有病毒內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實戰(zhàn)練習之最新男女顏值打分小系統(tǒng)

    python實戰(zhàn)練習之最新男女顏值打分小系統(tǒng)

    前幾天不是出過一期Python美顏相機嘛?不知道大家現(xiàn)在還記不記得?這一期的話題還是緊接著那一期顏值方面來走,對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • 深入了解Python枚舉類型的相關(guān)知識

    深入了解Python枚舉類型的相關(guān)知識

    這篇文章主要介紹了深入了解Python枚舉類型的相關(guān)知識,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python 基礎教程之閉包的使用方法

    Python 基礎教程之閉包的使用方法

    這篇文章主要介紹了Python 基礎教程之閉包的使用方法的相關(guān)資料,希望大家通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • python 數(shù)據(jù)庫查詢返回list或tuple實例

    python 數(shù)據(jù)庫查詢返回list或tuple實例

    這篇文章主要介紹了python 數(shù)據(jù)庫查詢返回list或tuple實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python opencv鼠標畫矩形框之cv2.rectangle()函數(shù)

    python opencv鼠標畫矩形框之cv2.rectangle()函數(shù)

    鼠標操作屬于用戶接口設計,以前一直使用Qt來做,但是如果只需要簡單的鼠標,鍵盤操作,直接調(diào)用opencv庫的函數(shù)也未嘗不可,下面這篇文章主要給大家介紹了關(guān)于python opencv鼠標畫矩形框cv2.rectangle()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 基于PyQt5制作一個動態(tài)指針時鐘

    基于PyQt5制作一個動態(tài)指針時鐘

    這篇文章主要和大家分享如何利用Python中的PyQt5制作一個動態(tài)指針時鐘來顯示實時時間,文中的示例代碼講解詳細,需要的可以參考一下
    2022-02-02
  • Python+Selenium實現(xiàn)網(wǎng)站滑塊拖動操作

    Python+Selenium實現(xiàn)網(wǎng)站滑塊拖動操作

    這篇文章主要為大家詳細介紹了如何利用Python+Selenium模擬實現(xiàn)登錄某網(wǎng)站的滑塊拖動操作,文中的示例代碼講解詳細,需要的可以參考一下
    2022-09-09
  • python讀取xml文件方法解析

    python讀取xml文件方法解析

    這篇文章主要介紹了python讀取xml文件方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • python中列表添加的四種方法小結(jié)

    python中列表添加的四種方法小結(jié)

    這篇文章主要介紹了python中列表添加的四種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python 用所有標點符號分隔句子的示例

    python 用所有標點符號分隔句子的示例

    今天小編就為大家分享一篇python 用所有標點符號分隔句子的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論