python制作恶意软件删除工具

今天,来教大家用python制作一个恶意软件删除工具

查杀流程图

对,就这些,已经具备了杀毒软件的功能

判断文件是否为病毒

要查杀病毒,先要判断文件是不是病毒(不然删错了咋办),这里我们用获取文件的哈希值来判断文件是不是病毒

这里我们用os、hashlib库

import os,hashlib

获取哈希值代码


def GetFileMD5(filename):file = open(filename, 'rb') #用二进制方式读取文件file_content = file.read()file.close()file_md5 = hashlib.md5(file_content)return file_md5.hexdigest()   #返回文件的哈希值

啊对,就这样,文件的哈希值就被拿到了

我们测试一下代码,先编个病毒

就是无限循环执行cmd

病毒库

每个杀毒软件都有自己的病毒库,那我们也搞一个(就是把一些病毒哈希值整理成一个列表)

Virus_Reservoirs=['40d8911754a4d6cd8d4c732f96eb3016',#无限cmd弹窗'0d686bf04da1a4d11ea197375b99a48b',#无限cmd弹窗'eda588c0ee78b585f645aa42eff1e57a',#中华黑豹升级版'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终结者——>Pabug'84c82835a5d21bbcf75a61706d8ab549',#WannaCry永恒之蓝'db349b97c37d22f5ea1d1841e3c89eb4',#WannaCry永恒之蓝'1de73f49db23cf5cc6e06f47767f7fda',#WannaRen'af2379cc4d607a45ac44d62135fb7015',#Petya'71b6a493388e7d0b40c83ce903bc6b04',#Petya组件'e81139675ac1b806d689fb17789e2f99',#斯大林病毒'915178156c8caa25b548484c97dd19c1',#可删除文件的蠕虫'dac5f1e894b500e6e467ae5d43b7ae3e',#可删除文件的蠕虫'849da18699ea2332494e431c66be0ca6',#WindowsCrazyError'56975ae355acb292220921ad61c58f2a',#MBR破坏'44d88612fea8a8f36de82e1278abb02f',#引擎测试程序'297de74cb20a975efaf20cd88fddf270',#鬼影木马'c729d940eb78e927afcba4046543d8f8',#可让系统蓝屏的病毒'8c71f2a4b3079332d4f8078eddb9974a',#小猪佩奇病毒'19dbec50735b5f2a72d4199c4e184960',#MEMZ彩虹猫'815b63b8bc28ae052029f8cbdd7098ce',#滑稽病毒'c71091507f731c203b6c93bc91adedb6',#卢本伟病毒"8c689f65508e1353fb3df35df87ba5c7",#'假蓝屏'病毒]

有点少。。。。。

大家发现一些病毒可以把他的哈希值发给我哈

编写杀毒界面

代码太多了,不容易讲,直接上代码了。界面用了滚动滑杆,用的是tkinter库

import tkinter as tk
from tkinter.ttk import *
import tkinter.filedialog as filedialog
filles=filedialog.askopenfilenames(title='选择文件',filetypes=[("All Files","*.*")]) #选择文件
viruses=[]
try:for i in filles:fileMD5=getFileMD5(i)print(i+"文件哈希值:"+fileMD5)if fileMD5 in Virus_Reservoirs:viruses. Append(i)show_viruses_win=tk.Tk()if len(viruses) == 0:show_viruses_win.withdraw()messagebox.showinfo("查杀结果","此次查杀未发现风险项")show_viruses_win.destroy()else:kills=[]fail_kills=[]def getlujing(event):str=""index1=viruss.curselection()for item in index1:str+=viruss.get(item)+"、"kills.append(viruss.get(item))    #选择要清理的病毒llabel.config(text="你选择了"+str)def killthem():for i in kills:kills.remove(i)try:os.unlink(i)except:fail_kills.append(i)show_viruses_win.destroy()jieguo_win=tk.Tk()jieguo_win.withdraw()if len(fail_kills) == 0:messagebox.showinfo("yeah","全部清除成功!")else:messagebox.showinfo("error",f"{fail_kills}清除失败,请手动清除!")jieguo_win.destroy()show_viruses_win.geometry("480x480") #界面show_viruses_win.title("请选择您想清理的病毒")show_viruses_win.configure(bg="#F5D7C4")llabel=tk.Label(show_viruses_win,height=5,wraplength=190,justify="left",bg="#F1DAA1",relief="groove")llabel.pack(side="top",fill="x",padx="10",pady="10")sc1=tk.Scrollbar(show_viruses_win)viruss=tk.Listbox(show_viruses_win,height=20,yscrollcommand=sc1.set,selectmode="multiple",justify='center',width=30)for i in viruses:viruss.insert(tk.END,i)viruss.pack(side='left',fill='x')viruss.bind("<<ListboxSelect>>",getlujing)sc1.pack(side="left",fill="y")sc1.config(command=viruss.yview)tk.Button(show_viruses_win,text="选择完毕,开始杀毒!",relief='groove',fg='white',bg='blue',cursor='hand2',command=killthem).pack()show_viruses_win.mainloop()
except:show_error_win=tk.Tk()show_error_win.withdraw()messagebox.showerror("error","无法查杀病毒或初始化杀毒引擎,请重试")show_error_win.destroy()

测试代码

先把代码汇总一下

总代码

import os,hashlib
import tkinter as tk
import tkinter.messagebox as messagebox
from tkinter.ttk import *
import tkinter.filedialog as filedialog
def GetFileMD5(filename):file = open(filename, 'rb') #用二进制方式读取文件file_content = file.read()file.close()file_md5 = hashlib.md5(file_content)return file_md5.hexdigest()   #返回文件的哈希值
Virus_Reservoirs=['40d8911754a4d6cd8d4c732f96eb3016',#无限cmd弹窗'0d686bf04da1a4d11ea197375b99a48b',#无限cmd弹窗'eda588c0ee78b585f645aa42eff1e57a',#中华黑豹升级版'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终结者——>Pabug'84c82835a5d21bbcf75a61706d8ab549',#WannaCry永恒之蓝'db349b97c37d22f5ea1d1841e3c89eb4',#WannaCry永恒之蓝'1de73f49db23cf5cc6e06f47767f7fda',#WannaRen'af2379cc4d607a45ac44d62135fb7015',#Petya'71b6a493388e7d0b40c83ce903bc6b04',#Petya组件'e81139675ac1b806d689fb17789e2f99',#斯大林病毒'915178156c8caa25b548484c97dd19c1',#可删除文件的蠕虫'dac5f1e894b500e6e467ae5d43b7ae3e',#可删除文件的蠕虫'849da18699ea2332494e431c66be0ca6',#WindowsCrazyError'56975ae355acb292220921ad61c58f2a',#MBR破坏'44d88612fea8a8f36de82e1278abb02f',#引擎测试程序'297de74cb20a975efaf20cd88fddf270',#鬼影木马'c729d940eb78e927afcba4046543d8f8',#可让系统蓝屏的病毒'8c71f2a4b3079332d4f8078eddb9974a',#小猪佩奇病毒'19dbec50735b5f2a72d4199c4e184960',#MEMZ彩虹猫'815b63b8bc28ae052029f8cbdd7098ce',#滑稽病毒'c71091507f731c203b6c93bc91adedb6',#卢本伟病毒"8c689f65508e1353fb3df35df87ba5c7",#'假蓝屏'病毒]
filles=filedialog.askopenfilenames(title='选择文件',filetypes=[("All Files","*.*")]) #选择文件
print(filles)
viruses=[]
try:for i in filles:fileMD5=GetFileMD5(i)print(i+"文件哈希值:"+fileMD5)if fileMD5 in Virus_Reservoirs:viruses.append(i)show_viruses_win=tk.Tk()if len(viruses) == 0:show_viruses_win.withdraw()messagebox.showinfo("查杀结果","此次查杀未发现风险项")show_viruses_win.destroy()else:kills=[]fail_kills=[]def getlujing(event):str=""index1=viruss.curselection()for item in index1:str+=viruss.get(item)+"、"kills.append(viruss.get(item))    #选择要清理的病毒llabel.config(text="你选择了"+str)def killthem():for i in kills:kills.remove(i)try:os.unlink(i)except:fail_kills.append(i)show_viruses_win.destroy()jieguo_win=tk.Tk()jieguo_win.withdraw()if len(fail_kills) == 0:messagebox.showinfo("yeah","全部清除成功!")else:messagebox.showinfo("error",f"{fail_kills}清除失败,请手动清除!")jieguo_win.destroy()show_viruses_win.geometry("480x480") #界面show_viruses_win.title("请选择您想清理的病毒")show_viruses_win.configure(bg="#F5D7C4")llabel=tk.Label(show_viruses_win,height=5,wraplength=190,justify="left",bg="#F1DAA1",relief="groove")llabel.pack(side="top",fill="x",padx="10",pady="10")sc1=tk.Scrollbar(show_viruses_win)viruss=tk.Listbox(show_viruses_win,height=20,yscrollcommand=sc1.set,selectmode="multiple",justify='center',width=30)for i in viruses:viruss.insert(tk.END,i)viruss.pack(side='left',fill='x')viruss.bind("<<ListboxSelect>>",getlujing)sc1.pack(side="left",fill="y")sc1.config(command=viruss.yview)tk.Button(show_viruses_win,text="选择完毕,开始杀毒!",relief='groove',fg='white',bg='blue',cursor='hand2',command=killthem).pack()show_viruses_win.mainloop()
except:show_error_win=tk.Tk()show_error_win.withdraw()messagebox.showerror("error","无法查杀病毒或初始化杀毒引擎,请重试")show_error_win.destroy()

运行

运行成功

=)

总结

此程序利用文件的哈希值,精准清除病毒

望大家喜欢(❤ ω ❤)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】

文章目录 【RK3288 Android10 C30 支持sim卡拔掉不弹窗&#xff0c;及热插拔】需求方案patchframework 【RK3288 Android10 C30 支持sim卡拔掉不弹窗&#xff0c;及热插拔】 需求 由于3288 硬件上的sim卡座不支持热插拔&#xff0c;是没有顶针来识别sim卡是否被拔掉的。所以在…

云计算市场分析

目录 一、云计算市场概述 1.1 概述 二、国外云计算厂商 2.1 亚马逊AWS 2.2 微软AzureAzure 2.3 Apple iCloud 三、国内云计算厂商 3.1 阿里云 3.2 腾讯云 3.3 华为云 3.4 百度智能云 一、云计算市场概述 1.1 概述 云计算从出现以来&#xff0c;其发展就非常迅速。以…

win10重装Ubuntu22.04安装报错复盘

目录 一&#xff1a;补充启动盘制作 二&#xff1a;错误信息[0xC0030570] The file or directory is corrupted and unreadable. 三&#xff1a;ubuntu重装步骤&#xff1a; 四&#xff1a;磁盘冗余阵列 五&#xff1a;尝试将SCS11(2,0.0), 第1分区(sda)设备的一个vfat文…

大华智慧园区综合管理平台 /ipms/barpay/pay RCE漏洞复现

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

springboot kafka 实现延时队列

好文推荐&#xff1a; 2.5万字详解23种设计模式 基于Netty搭建websocket集群实现服务器消息推送 2.5万字讲解DDD领域驱动设计 文章目录 一、延时队列定义二、应用场景三、技术实现方案&#xff1a;1. Redis2. Kafka3. RabbitMQ4. RocketMQ 四、Kafka延时队列背景五、Kafka延时队…

锐捷VSU和M-LAG介绍

参考网站 堆叠、级联和集群的概念 什么是堆叠&#xff1f; 框式集群典型配置 RG-S6230[RG-S6501-48VS8CQ]系列交换机 RGOS 12.5(4)B1005版本 配置指南 总结 根据以上的几篇文章总结如下&#xff1a; 级联&#xff1a;简单&#xff0c;交换机相连就叫级联&#xff0c;跟搭…

ES6 Proxy详解

文章目录 概述Proxy 实例的方法get(target, propKey, receiver)set(target, propKey, value, receiver)has(target, propKey)deleteProperty(target, propKey)defineProperty(target, propKey, propDesc)getOwnPropertyDescriptor(target, propKey)getPrototypeOf(target)setPr…

鸿蒙 WiFi 打开流程

这里鸿蒙的代码使用的是开源鸿蒙HarmonyOS 4.0的代码基线 这里我们是针对手机平台代码分析&#xff0c;首先界面部分代码都在&#xff1a;applications/standard/settings/product/phone 然后我们只关心WiFi相关的&#xff0c;看界面代码applications/standard/settings/produc…

HCIA--路由优先级实验

要求&#xff1a; 1. pc1访问pc3,4,5走上面&#xff0c;R1-R2实现备份21.1.1.0/24实现备份&#xff1b; 2. pc3,4,5,6访问pc1,2走下面&#xff0c; R3,4之间实现等价路由&#xff0c;尽量减少路由条目&#xff0c;实现全网可达&#xff0c;pc7代表运营商 所有pc均可访问 1…

5.0 ZooKeeper 数据模型 znode 结构详解

数据模型 在 zookeeper 中&#xff0c;可以说 zookeeper 中的所有存储的数据是由 znode 组成的&#xff0c;节点也称为 znode&#xff0c;并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 …

阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》

【参考文献】Ye A, Wang L, Zhao L, et al. Rapidfuzz: Accelerating fuzzing via generative adversarial networks[J]. Neurocomputing, 2021, 460: 195-204.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&#xff0c;请联系作者删除。 目录 摘要 一、介绍 二、相关…

寒假作业-day4

1>请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23}&#xff0c;输入key查找的值&#xff0c;实现查找功能。 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> typedef int datatype; type…

C++ PE文件信息解析

尝试解析PE文件结构, 于是编写了此PE信息助手类, 暂时完成如下信息解析 1.导入表信息 2.导入表信息 3.资源表信息 CPEHelper.h #pragma once// // brief: PE文件解析助手类 // copyright: Copyright 2024 FlameCyclone // license: // birth: Created by Visual Studio 20…

springboot 引入netty时,Handler方法中使用@Autowared失效

原因&#xff1a; netty 中无法使用注入的bean&#xff0c;因为NettyClientHandler 是netty启动的时候new出来&#xff0c;并没有交给spring IOC托管&#xff0c;后面给NettyClientHandler 加上Component 注解也不行&#xff0c;因为netty 的加载优于spring容器初始化&#xff…

软件价值8-站点连通性检查

站点连通性检查&#xff0c;即看网站是否能访问得通&#xff0c;实用价值不大&#xff0c;不过用来作软件应用入门还不错。 代码&#xff1a; import urllib.request import tkinter as tkdef test_connectivity():window tk.Tk()window.geometry(600x400)window.resizable(F…

蓝桥杯基础知识6 pair

蓝桥杯基础知识6 pair pair 的定义和结构&#xff1a;在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;头文件<utility>。 pair类 的定义&#xff1a; template<class T1, class T2> struct pair{T1 first; // 第一个值T2 seco…

输出超级玛丽2_题解

【题解提供者】吴立强 解法 思路 本题代码非常简单&#xff0c;直接一行一行对齐后输出即可&#xff0c;只是比较麻烦。 代码展示 #include <iostream> using namespace std;int main() {printf(" ********\n");printf(" …

软件漏洞概念与原理

本文已收录至《全国计算机等级考试——信息 安全技术》专栏 官方定义 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷&#xff0c;从而可以使攻击者能够在未授权的下访问或破坏系统。 基本理解 漏洞是硬件、软件、协议在生命周期的各个阶段&#xff08;设计…

小程序之一———— 文件重命名

使用python程序对文件进行集体重命名 1&#xff1a;为什么要写这个&#xff1f;2&#xff1a;书写思路3&#xff1a; 程序主体 1&#xff1a;为什么要写这个&#xff1f; 因为收到一堆文件&#xff0c;但是命名方式是 12427823_这是书名.pdf 这样的&#xff0c;不方便查看&…

普通编程,机器学习与深度学习

普通编程&#xff1a;基于人手动设置规则&#xff0c;由输入产生输出经典机器学习&#xff1a;人手工指定需要的特征&#xff0c;通过一些数学原理对特征与输出的匹配模式进行学习&#xff0c;也就是更新相应的参数&#xff0c;从而使数学表达式能够更好的根据给定的特征得到准…