最近,我突然有个想法我搞个杀毒软件(代码搞得有点太简单了),代替一下我电脑里的杀毒软件(好像代替不了,功能不够全,文件监控都没有。)

教程部分:

#先搞一下杀毒引擎

1.导入模块:

import hashlib
import os
  1. 获取文件md5

使用hashlib模块(python预装)来获取文件MD5我们用MD5来判断这个是否为病毒文件

定义一个元组(列表好像也可以)供用户输入文件路径,如下面的代码:

def GetMD5FromLocalFile(filename):"""Get local file's MD5 Info.@param filename:file path & file name@return:MD5 Info"""file_object = open(filename, 'rb')file_content = file_object.read()file_object.close()file_md5 = hashlib.md5(file_content)return file_md5.hexdigest()
lujing = input('请输入文件路径')    if __name__ == '__main__':FileMD5=GetMD5FromLocalFile(lujing)

3.再搞一搞病毒库,我收集了一些(有点少):

    bingdu=('eda588c0ee78b585f645aa42eff1e57a')bingdu2=('19dbec50735b5f2a72d4199c4e184960')bingdu3=('815b63b8bc28ae052029f8cbdd7098ce')bingdu4=('c71091507f731c203b6c93bc91adedb6')    bingdu5=('0a456ffff1d3fd522457c187ebcf41e4')bingdu6=('1aa4c64363b68622c9426ce96c4186f2')    bingdu7=('d214c717a357fe3a455610b197c390aa')bingdu8=('b14299fd4d1cbfb4cc7486d978398214')    bingdu9=('dffe6e34209cb19ebe720c457a06edd6')bingdu10=('512301c535c88255c9a252fdf70b7a03')    bingdu11=('d4a05ada747a970bff6e8c2c59c9b5cd')bingdu12=('ad41ec81ab55c17397d3d6039752b0fd')   bingdu13=('a57db79f11a8c58d27f706bc1fe94e25')bingdu14=('fc14eaf932b76c51ebf490105ba843eb')    bingdu15=('2a92da4b5a353ca41de980a49b329e7d')bingdu16=('68abd642c33f3d62b7f0f92e20b266aa')    bingdu17=('ff5e1f27193ce51eec318714ef038bef')bingdu18=('4c36884f0644946344fa847756f4a04e')    bingdu19=('2391109c40ccb0f982b86af86cfbc900')bingdu20=('915178156c8caa25b548484c97dd19c1')bingdu21=('dac5f1e894b500e6e467ae5d43b7ae3e')bingdu22=('84c82835a5d21bbcf75a61706d8ab549')bingdu23=('db349b97c37d22f5ea1d1841e3c89eb4')bingdu24=('1de73f49db23cf5cc6e06f47767f7fda')bingdu25=('71b6a493388e7d0b40c83ce903bc6b04')bingdu26=('106b537598bce8003d787f4c47e6ecb9')

接下来,就是判断了(由于博主太忙,再加上技术有点菜只能做成这样了):

直接来一个多重的if elif else来判断文件是否为病毒:

    if FileMD5 == bingdu:print('发现恶搞程序!!!类型:Trojan.Win32.FormatAll.V')os.remove(lujing)elif FileMD5 == bingdu2:print('发现病毒!!病毒类型:Trojan.Win32.MEMZ.A')    os.remove(lujing)elif FileMD5 == bingdu3:print('发现恶搞程序,类型:Virus.Win32.Blamon')os.remove(lujing)elif FileMD5 == bingdu4:print('发现危险恶搞程序,类型:Trojan.Win32.Disabler') os.remove(lujing)elif FileMD5 == bingdu5:print('发现蠕虫病毒,类型:Worm.VBS.yuyun.A / Cantix.A')  os.remove(lujing)      elif FileMD5 == bingdu6:print('发现病毒!!此病毒会感染主板BIOS,引导扇区,类型:TrojanDownloader:Win32.Jadtre.B')os.remove(lujing)elif FileMD5 == bingdu7:print('发现病毒!!病毒类型:Virus.Win32.disttrackA')os.remove(lujing) elif FileMD5 == bingdu8:print('发现病毒!!病毒类型:Virus.Win32.disttrackA')     os.remove(lujing)elif FileMD5 == bingdu9:print('发现病毒!!类型:Trojan:Win32/Dynamer!rfn')os.remove(lujing)elif FileMD5 == bingdu10:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')  os.remove(lujing)elif FileMD5 == bingdu11:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu12:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu13:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu14:print('发现蠕虫病毒!!病毒类型:Net-Worm.Win32.Blaster.A')os.remove(lujing)elif FileMD5 == bingdu15:print('发现蠕虫病毒!!病毒类型:Net-Worm.Win32.Sasser.A')os.remove(lujing)elif FileMD5 == bingdu16:print('发现病毒!!病毒类型:Virus.Win32.Ramnit/Nimnul.A')os.remove(lujing)elif FileMD5 == bingdu17:print('发现病毒!!病毒类型:Virus.Win32.Ramnit/Nimnul.A') os.remove(lujing)  elif FileMD5 == bingdu18:print('发现病毒!!病毒类型:Virus.Win32.Xorer.A')os.system('taskkill /f /im %s' % 'regsvr32.exe')os.system('taskkill /f /im %s' % 'cacls.exe')os.remove(r'C:\NetApi00.sys')os.remove(r'C:\Windows\System32\com\smss.exe')os.remove(r'C:\Windows\System32\com\lsass.exe')os.remove(r'C:\Windows\System32\dnsq.dll')elif FileMD5 == bingdu19:print('发现AV终结者!!病毒类型:Worm.Win32.Pabug') elif FileMD5 == bingdu20:print('发现病毒!!此病毒会删除文件!!!病毒类型:Worm.Win32.AutoRun.xxx')elif FileMD5 == bingdu21:print('发现病毒!!此病毒会删除文件!!!病毒类型:Worm.Win32.AutoRun.xxx')elif FileMD5 == bingdu22:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaCryptor')                                                 elif FileMD5 == bingdu23:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaCryptor') elif FileMD5 == bingdu24:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaRen')print('火绒已经发布解密工具')print('链接:https://www.huorong.cn/download/tools/wannaren_decryptor/HRDecryptor.exe') elif FileMD5 == bingdu25:print('发现勒索病毒!!病毒类型:Ransom.Win32.Petya')  else:print('并未发现病毒')

完整代码:

import hashlib
import osdef GetMD5FromLocalFile(filename):"""Get local file's MD5 Info.@param filename:file path & file name@return:MD5 Info"""file_object = open(filename, 'rb')file_content = file_object.read()file_object.close()file_md5 = hashlib.md5(file_content)return file_md5.hexdigest()
lujing = input('请输入文件路径')    if __name__ == '__main__':FileMD5=GetMD5FromLocalFile(lujing)bingdu=('eda588c0ee78b585f645aa42eff1e57a')bingdu2=('19dbec50735b5f2a72d4199c4e184960')bingdu3=('815b63b8bc28ae052029f8cbdd7098ce')bingdu4=('c71091507f731c203b6c93bc91adedb6')    bingdu5=('0a456ffff1d3fd522457c187ebcf41e4')bingdu6=('1aa4c64363b68622c9426ce96c4186f2')    bingdu7=('d214c717a357fe3a455610b197c390aa')bingdu8=('b14299fd4d1cbfb4cc7486d978398214')    bingdu9=('dffe6e34209cb19ebe720c457a06edd6')bingdu10=('512301c535c88255c9a252fdf70b7a03')    bingdu11=('d4a05ada747a970bff6e8c2c59c9b5cd')bingdu12=('ad41ec81ab55c17397d3d6039752b0fd')   bingdu13=('a57db79f11a8c58d27f706bc1fe94e25')bingdu14=('fc14eaf932b76c51ebf490105ba843eb')    bingdu15=('2a92da4b5a353ca41de980a49b329e7d')bingdu16=('68abd642c33f3d62b7f0f92e20b266aa')    bingdu17=('ff5e1f27193ce51eec318714ef038bef')bingdu18=('4c36884f0644946344fa847756f4a04e')    bingdu19=('2391109c40ccb0f982b86af86cfbc900')bingdu20=('915178156c8caa25b548484c97dd19c1')bingdu21=('dac5f1e894b500e6e467ae5d43b7ae3e')bingdu22=('84c82835a5d21bbcf75a61706d8ab549')bingdu23=('db349b97c37d22f5ea1d1841e3c89eb4')bingdu24=('1de73f49db23cf5cc6e06f47767f7fda')bingdu25=('71b6a493388e7d0b40c83ce903bc6b04')bingdu26=('106b537598bce8003d787f4c47e6ecb9')if FileMD5 == bingdu:print('发现恶搞程序!!!类型:Trojan.Win32.FormatAll.V')os.remove(lujing)elif FileMD5 == bingdu2:print('发现病毒!!病毒类型:Trojan.Win32.MEMZ.A')    os.remove(lujing)elif FileMD5 == bingdu3:print('发现恶搞程序,类型:Virus.Win32.Blamon')os.remove(lujing)elif FileMD5 == bingdu4:print('发现危险恶搞程序,类型:Trojan.Win32.Disabler') os.remove(lujing)elif FileMD5 == bingdu5:print('发现蠕虫病毒,类型:Worm.VBS.yuyun.A / Cantix.A')  os.remove(lujing)      elif FileMD5 == bingdu6:print('发现病毒!!此病毒会感染主板BIOS,引导扇区,类型:TrojanDownloader:Win32.Jadtre.B')os.remove(lujing)elif FileMD5 == bingdu7:print('发现病毒!!病毒类型:Virus.Win32.disttrackA')os.remove(lujing) elif FileMD5 == bingdu8:print('发现病毒!!病毒类型:Virus.Win32.disttrackA')     os.remove(lujing)elif FileMD5 == bingdu9:print('发现病毒!!类型:Trojan:Win32/Dynamer!rfn')os.remove(lujing)elif FileMD5 == bingdu10:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')  os.remove(lujing)elif FileMD5 == bingdu11:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu12:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu13:print('发现病毒!!病毒类型:Virus.Win32.Viking.A')os.remove(lujing)elif FileMD5 == bingdu14:print('发现蠕虫病毒!!病毒类型:Net-Worm.Win32.Blaster.A')os.remove(lujing)elif FileMD5 == bingdu15:print('发现蠕虫病毒!!病毒类型:Net-Worm.Win32.Sasser.A')os.remove(lujing)elif FileMD5 == bingdu16:print('发现病毒!!病毒类型:Virus.Win32.Ramnit/Nimnul.A')os.remove(lujing)elif FileMD5 == bingdu17:print('发现病毒!!病毒类型:Virus.Win32.Ramnit/Nimnul.A') os.remove(lujing)  elif FileMD5 == bingdu18:print('发现病毒!!病毒类型:Virus.Win32.Xorer.A')os.system('taskkill /f /im %s' % 'regsvr32.exe')os.system('taskkill /f /im %s' % 'cacls.exe')os.remove(r'C:\NetApi00.sys')os.remove(r'C:\Windows\System32\com\smss.exe')os.remove(r'C:\Windows\System32\com\lsass.exe')os.remove(r'C:\Windows\System32\dnsq.dll')elif FileMD5 == bingdu19:print('发现AV终结者!!病毒类型:Worm.Win32.Pabug') elif FileMD5 == bingdu20:print('发现病毒!!此病毒会删除文件!!!病毒类型:Worm.Win32.AutoRun.xxx')elif FileMD5 == bingdu21:print('发现病毒!!此病毒会删除文件!!!病毒类型:Worm.Win32.AutoRun.xxx')elif FileMD5 == bingdu22:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaCryptor')                                                 elif FileMD5 == bingdu23:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaCryptor') elif FileMD5 == bingdu24:print('发现勒索病毒!!病毒类型:Ransom.Win32.WannaRen')print('火绒已经发布解密工具')print('链接:https://www.huorong.cn/download/tools/wannaren_decryptor/HRDecryptor.exe') elif FileMD5 == bingdu25:print('发现勒索病毒!!病毒类型:Ransom.Win32.Petya')  else:print('并未发现病毒')    print('注意!!!搬运此文章须向博主声明')

再改一下,加一个界面成品我放在gitee/GitHub里面了

gitee:hallxu-python-AV: 此杀毒软件制作者为 哔哩哔哩:hallxu 哔哩哔哩,西瓜视频:体贴的小子 以后将会继续更新 呃呃呃呃 病毒库真的不容易收集 欢迎star (gitee.com)

GitHub:

hallxu/hallxu-python-AV (github.com)

欢迎star哈

(本文章禁止擅自搬运,如需搬运需要私信博主)

我用python搞了一个杀毒软件(菜)相关推荐

  1. 为了王心凌,我拳打电脑管家,脚踢金山毒霸,3分钟用Python撸一个杀毒软件

    事情要从一次重保行动说起,由于活动还没结束,这里就先不透漏了.我抱着亲手做的康师傅红烧牛肉泡面,还没开始吃,就听见后面有人喊我名字,说是有个用户的电脑卡死了,要我过去看看. 我问她能不能等我吃完这桶泡 ...

  2. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  3. python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  4. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

  5. Python教程之开胃菜

    Python教程之开胃菜 如果你使用电脑做很多工作,最终你会发现有些工作愿意自动化.举个栗子,你可能需要对大量的文本文件执行"搜索-替换"操作,或者重命名/重新排序一堆照片文件,用 ...

  6. Python 重写一个提取字符串中行政区划的 Series(上)

    Python 重写一个提取字符串中行政区划的 Series(上) 创作背景 思路分析 - 提取行政区划 eg1:福建省莆田市城厢区 eg2:新疆维吾尔自治区乌鲁木齐市 eg3:青海省共和县 泛化 结尾 ...

  7. *python解决狼羊菜过河问题

    python解决狼羊菜过河问题 A岸有菜,羊,狼,农夫农夫必须将他们都送到B岸每次只能送一个,在保证他们不会被吃的前提下,完成任务,并得出步骤. 代码: A=[["狼",1],[& ...

  8. 用 Python 制作一个桌面宠物,好玩!

    今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦! 我们先来看看最终的效果,对于一个小小的娱乐项目来说,还是不错啦! 本文 ...

  9. 使用python制作一个简易的远控终端

    使用python制作一个简易的远控终端 远控终端的本质 1.服务端(攻击者)传输消息 ----> socket连接 ----> 客户端(被攻击者)接收消息 2.客户端执行消息内容(即执行服 ...

最新文章

  1. 利用Attribute简化Unity框架IOC注入
  2. 10 个经典的 Java 集合面试题,看你能否答得上来?
  3. python request-python3的request用法实例
  4. hive 将null值替换为0_【Hive】数据倾斜
  5. 素数 [2008年北京航空航天大学计算机研究生机试真题]
  6. Python中的null对象?
  7. jQuery,Table表头固定插件chromatable存在的问题及解决办法
  8. Linux下安装Redis讲解
  9. 最新黑客攻防实战从入门到精通(第二版)_学习笔记(二)
  10. python解决约瑟夫问题
  11. “自我炒作”雄安新区 遭监管层严打
  12. [0.0]-AutoSAR零基础学习-专栏介绍
  13. 什么是SystemUI
  14. 原神QQ机器人云崽bot安卓手机整合包解压即用安装教程
  15. html盒子模型的实例,html盒模型的示例分析
  16. IIS上解决ASP.Net第一次访问慢的处理
  17. .NET程序的序列号控制
  18. 用 AI 生成简历是怎样的体验? #Rezi AI
  19. vue2.0 唤起百度地图app_今天不谈哪个导航好!百度高德二合一APP体验
  20. 使用Aplayer制作视频播放器

热门文章

  1. 华为交换机配置端口隔离
  2. Unity批量修改FBX模型
  3. CIDR表示IP地址规律
  4. 导数和梯度,切线和法向量
  5. Linux系统jdk的安装和卸载
  6. EasyUI的icon图标的种类
  7. 关于红楼梦Python文本分析
  8. 数据挖掘常用算法原理
  9. UG快捷键使用技巧总结(补充中....)
  10. 【蓝桥杯真题】2021年蓝桥杯省赛A组题目解析+代码(python组)