河南郑州网站建设哪家公司好,做网站即墨,河北做网站哪家公司好,济南建设网站需要今天#xff0c;来教大家用python制作一个恶意软件删除工具
查杀流程图 对#xff0c;就这些#xff0c;已经具备了杀毒软件的功能 判断文件是否为病毒
要查杀病毒#xff0c;先要判断文件是不是病毒#xff08;不然删错了咋办#xff09;#xff0c;这里我们用获取文…今天来教大家用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终结者——Pabug84c82835a5d21bbcf75a61706d8ab549,#WannaCry永恒之蓝db349b97c37d22f5ea1d1841e3c89eb4,#WannaCry永恒之蓝1de73f49db23cf5cc6e06f47767f7fda,#WannaRenaf2379cc4d607a45ac44d62135fb7015,#Petya71b6a493388e7d0b40c83ce903bc6b04,#Petya组件e81139675ac1b806d689fb17789e2f99,#斯大林病毒915178156c8caa25b548484c97dd19c1,#可删除文件的蠕虫dac5f1e894b500e6e467ae5d43b7ae3e,#可删除文件的蠕虫849da18699ea2332494e431c66be0ca6,#WindowsCrazyError56975ae355acb292220921ad61c58f2a,#MBR破坏44d88612fea8a8f36de82e1278abb02f,#引擎测试程序297de74cb20a975efaf20cd88fddf270,#鬼影木马c729d940eb78e927afcba4046543d8f8,#可让系统蓝屏的病毒8c71f2a4b3079332d4f8078eddb9974a,#小猪佩奇病毒19dbec50735b5f2a72d4199c4e184960,#MEMZ彩虹猫815b63b8bc28ae052029f8cbdd7098ce,#滑稽病毒c71091507f731c203b6c93bc91adedb6,#卢本伟病毒8c689f65508e1353fb3df35df87ba5c7,#假蓝屏病毒]
有点少。。。。。
大家发现一些病毒可以把他的哈希值发给我哈
编写杀毒界面
代码太多了不容易讲直接上代码了。界面用了滚动滑杆用的是tkinter库
import tkinter as tk
from tkinter.ttk import *
import tkinter.filedialog as filedialog
fillesfiledialog.askopenfilenames(title选择文件,filetypes[(All Files,*.*)]) #选择文件
viruses[]
try:for i in filles:fileMD5getFileMD5(i)print(i文件哈希值:fileMD5)if fileMD5 in Virus_Reservoirs:viruses. Append(i)show_viruses_wintk.Tk()if len(viruses) 0:show_viruses_win.withdraw()messagebox.showinfo(查杀结果,此次查杀未发现风险项)show_viruses_win.destroy()else:kills[]fail_kills[]def getlujing(event):strindex1viruss.curselection()for item in index1:strviruss.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_wintk.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)llabeltk.Label(show_viruses_win,height5,wraplength190,justifyleft,bg#F1DAA1,reliefgroove)llabel.pack(sidetop,fillx,padx10,pady10)sc1tk.Scrollbar(show_viruses_win)virusstk.Listbox(show_viruses_win,height20,yscrollcommandsc1.set,selectmodemultiple,justifycenter,width30)for i in viruses:viruss.insert(tk.END,i)viruss.pack(sideleft,fillx)viruss.bind(ListboxSelect,getlujing)sc1.pack(sideleft,filly)sc1.config(commandviruss.yview)tk.Button(show_viruses_win,text选择完毕开始杀毒,reliefgroove,fgwhite,bgblue,cursorhand2,commandkillthem).pack()show_viruses_win.mainloop()
except:show_error_wintk.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终结者——Pabug84c82835a5d21bbcf75a61706d8ab549,#WannaCry永恒之蓝db349b97c37d22f5ea1d1841e3c89eb4,#WannaCry永恒之蓝1de73f49db23cf5cc6e06f47767f7fda,#WannaRenaf2379cc4d607a45ac44d62135fb7015,#Petya71b6a493388e7d0b40c83ce903bc6b04,#Petya组件e81139675ac1b806d689fb17789e2f99,#斯大林病毒915178156c8caa25b548484c97dd19c1,#可删除文件的蠕虫dac5f1e894b500e6e467ae5d43b7ae3e,#可删除文件的蠕虫849da18699ea2332494e431c66be0ca6,#WindowsCrazyError56975ae355acb292220921ad61c58f2a,#MBR破坏44d88612fea8a8f36de82e1278abb02f,#引擎测试程序297de74cb20a975efaf20cd88fddf270,#鬼影木马c729d940eb78e927afcba4046543d8f8,#可让系统蓝屏的病毒8c71f2a4b3079332d4f8078eddb9974a,#小猪佩奇病毒19dbec50735b5f2a72d4199c4e184960,#MEMZ彩虹猫815b63b8bc28ae052029f8cbdd7098ce,#滑稽病毒c71091507f731c203b6c93bc91adedb6,#卢本伟病毒8c689f65508e1353fb3df35df87ba5c7,#假蓝屏病毒]
fillesfiledialog.askopenfilenames(title选择文件,filetypes[(All Files,*.*)]) #选择文件
print(filles)
viruses[]
try:for i in filles:fileMD5GetFileMD5(i)print(i文件哈希值:fileMD5)if fileMD5 in Virus_Reservoirs:viruses.append(i)show_viruses_wintk.Tk()if len(viruses) 0:show_viruses_win.withdraw()messagebox.showinfo(查杀结果,此次查杀未发现风险项)show_viruses_win.destroy()else:kills[]fail_kills[]def getlujing(event):strindex1viruss.curselection()for item in index1:strviruss.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_wintk.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)llabeltk.Label(show_viruses_win,height5,wraplength190,justifyleft,bg#F1DAA1,reliefgroove)llabel.pack(sidetop,fillx,padx10,pady10)sc1tk.Scrollbar(show_viruses_win)virusstk.Listbox(show_viruses_win,height20,yscrollcommandsc1.set,selectmodemultiple,justifycenter,width30)for i in viruses:viruss.insert(tk.END,i)viruss.pack(sideleft,fillx)viruss.bind(ListboxSelect,getlujing)sc1.pack(sideleft,filly)sc1.config(commandviruss.yview)tk.Button(show_viruses_win,text选择完毕开始杀毒,reliefgroove,fgwhite,bgblue,cursorhand2,commandkillthem).pack()show_viruses_win.mainloop()
except:show_error_wintk.Tk()show_error_win.withdraw()messagebox.showerror(error,无法查杀病毒或初始化杀毒引擎,请重试)show_error_win.destroy()
运行 运行成功 总结
此程序利用文件的哈希值精准清除病毒
望大家喜欢(❤ ω ❤)