Kodumu kontrol eder misiniz (anti-virüs kodu)

Merhabalar.
Ben bir çeşit anti-virüs yazdım (konularda bulabilirsiniz) çok güzel de çalışıyor ama işini yapıyor mu bilmiyorum yani DB ye aktardığım (DBl listesi ile) verileri düzdün şekilde işliyor mu anlayamadım (DB’nin gücünü sorun etmeyin onu güçlendireceğim) siz bir bakın lütfen.

from colorama import Fore
from hashlib import sha256
import colorama
import time
import sys
import json
colorama.init()

def scan(file):
    with open(file, "rb") as f:
        if sha256(f.read()).hexdigest() in DB:
            return True

        else:
            return False

DBl = ["listener", "Listener", "LISTENER", "virus" ,"Virus" ,"VİRUS" ,"ransomware", "Ransomware", "RANSOMWARE" ,"ransom", "Ransom", "RANSOM", "locker", "Locker", "LOCKER", "lock", "Lock", "LOCK", "crypto", "Crypto", "CRYPTO", "crypter", "Crypter", "CRYPTER", "hacked", "Hacked", "HACKED", "hack", "Hack", "HACK"]

DB = DBı

print("welcome the py anti")
print("")
print(Fore.YELLOW)
print("""

|--------  |     |
|       |   |   |
|       |    | |
|--------     |
|             |    anti
|             |
|             |

""")

a=1
while a==1:
    print(Fore.WHITE)
    print("")
    print("1 = scan a file")
    print("")
    print("2 = exit")
    print("")
    c1 = input(">>>")
    if c1 == "2":
        sys.exit()
    if c1 == "1":
        a=0
        print("")
        loc = input("file location: ")
        if scan(loc):
            print(Fore.RED)
            print(f"Virus found in file! location: '{loc}'")
            print(Fore.WHITE)
            time.sleep(5)
            a=1
        else:
        print(Fore.GREEN)
        print("Dosya temiz.")
        time.sleep(5)
        a=1

Kodumuz bu bu python 3 kodudur hata bulursanız lütfen düzeltin.

Yaptım zaten orası tamam bir kere siz yanlış anladınız DB tarıyor mu onu hata ayıklama yapamıyor.

ha tamam ben yanlış anlamışım o zaman özür dilerim. hemen bir virüs yazıp deniyorum.

1 Beğeni

Girintileme hatası var.

Efendim C:/Users/… olarak konum vereceksiniz.

1 Beğeni

Bu işinizi görürmü ?

from colorama import Fore
from hashlib import sha256
import colorama
import os,sys
import time
import json

colorama.init()

def scan(file):
    with open(file,"r") as f:
        for i in f.readlines():
            print(i.rstrip())
            if i.rstrip() in DBl:
                return True
            else:
                return False
DBl = ["listener", "Listener", "LISTENER", "virus" ,"Virus" ,"VİRUS" ,"ransomware", "Ransomware", "RANSOMWARE" ,"ransom", "Ransom", "RANSOM", "locker", "Locker", "LOCKER", "lock", "Lock", "LOCK", "crypto", "Crypto", "CRYPTO", "crypter", "Crypter", "CRYPTER", "hacked", "Hacked", "HACKED", "hack", "Hack", "HACK"]

print("welcome the py anti\n")
print(Fore.YELLOW)
print("""

|--------  |     |
|       |   |   |
|       |    | |
|--------     |
|             |    anti
|             |
|             |

""")


while True:
    print(Fore.WHITE+"\n")
    print("1 = scan a file\n")
    print("2 = exit\n")
    c1 = input(">>> ")
    if c1 == "2":
        sys.exit()
    if c1 == "1":
        loc = input("file location: ")
        if scan(loc):
            print(Fore.RED)
            print(f"Virus found in file! location: '{loc}'")
            ans = input("Delete this file ? \nYes No </>")
            if ans == "yes" or ans == "Yes":
                os.remove(loc)
                print("Succesfuly :)")
            print(Fore.WHITE)
        else:
            print(Fore.GREEN)
            print("Dosya temiz.")

Silme ekledim ve while döngüsü için a gereksizdi.

1 Beğeni

Pardon ama ben zaten silme istemiyorum onu ben yaptım fakat DB ile karşılaştırma konusunda bilgiye ihtiyacım var karşılaştırıyor mu onu merak ediyorum.

Ama a kullanılmayınca 1 seçilince de aynı ekran ile karşılaşırız bu yüzden a var.

Dosya da virus bulduğu zaman döngünün bitmesimi gerekiyor ?
a=0 yapmak yerine break kullanın.