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,一经查实,立即删除!

相关文章

云计算市场分析

目录 一、云计算市场概述 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;跟搭…

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…

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

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

输出超级玛丽2_题解

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

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

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

Java 学习和实践笔记(1)

2024年&#xff0c;决定好好学习计算机语言Java. B站上选了这个课程&#xff1a;【整整300集】浙大大佬160小时讲完的Java教程&#xff08;学习路线Java笔记&#xff09;零基础&#xff0c;就从今天开始学吧。 在这些语言中&#xff0c;C语言是最基础的语言&#xff0c;绝大多…

Blender_pmx导出fbx

Blender_pmx导出fbx 学无止境&#xff1f; 相关链接&#xff1a; Blender教程&#xff1a; Blender中文手册介绍 — Blender Manualhttps://docs.blender.org/manual/zh-hans/2.79/about/introduction.htmlhttps://www.blendercn.org/https://www.blendercn.org/Blender下载…

1978-2023年全国整体GDP平减指数计算模板(含计算公式代码+计算结果且可任意调整基期)

1978-2023年全国整体GDP平减指数、实际GDP数据&#xff08;可任意调整基期&#xff09; 1、时间&#xff1a;1978-2023年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;名义GDP、实际GDP、国内生产总值指数、GDP平减指数 4、数据内含原始数据计算公式代码&…

JVM 性能调优 - JVM 参数基础(2)

查看 JDK 版本 $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 查看 Java 帮助文档 $ java -help 用法: java [-options] class [args...] …

牛客“迎新春,过大年”多校程序设计竞赛A题

题目描述&#xff1a; 这里有个小trick 当时也看到数据范围的问题了 n 是 1 e 6 ∑ i 1 n a [ i ] < 5 e 7 n是1e6 \quad \sum_{i1}^na[i]<5e7 n是1e6∑i1n​a[i]<5e7 我们考虑不同的数 1 2 . . . k − 1 k 1 \quad 2 \quad ... k-1 \quad k 12...k−1k s u m …

【UE 材质】扇形材质

目录 效果 步骤 &#xff08;1&#xff09;控制扇形的弧宽度 &#xff08;2&#xff09;控制扇形的角度 &#xff08;3&#xff09;完整节点 效果 步骤 &#xff08;1&#xff09;控制扇形的弧宽度 创建一个材质&#xff0c;混合模式设置为“Additive”&#xff0c;着色…

论文阅读——MP-Former

MP-Former: Mask-Piloted Transformer for Image Segmentation https://arxiv.org/abs/2303.07336 mask2former问题是&#xff1a;相邻层得到的掩码不连续&#xff0c;差别很大 denoising training非常有效地稳定训练时期之间的二分匹配。去噪训练的关键思想是将带噪声的GT坐标…