• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Creare un antivirus in python

oscarandrea

Utente Colossal
Autore del topic
23 Novembre 2013
3.293
101
Miglior risposta
0
Vi spiegherò come creare uno script che scansioni un singolo file e che determini se il file è un virus o no :soso:...
di cosa abbiamo bisogno?:
1)python 2.7
2)hash md5 di virus
3)file/virus per testare il programma
bastano poche righe:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

- - - Aggiornato - - -

difetti:adesso sono poche hash ma quando sono milioni (come lo sto facendo io l'antivirus) non si possono tenere nel codice perchè:diventa illegibile, e poi dovrebbe caricare tutto in ram,quindi serve un file txt da leggere riga per riga con un ciclo while
ci dovrebbe essere un sistema d'aggiornamenti ...

- - - Aggiornato - - - @HabboFanNumero1 @System32 @Dvdxseo
 
Ultima modifica:
[OT]Perché non si possono creare buon antivirus in ambiente .NET? O.o[/OT]

Perché gli antivirus lavorano a basso livello, anzi, devono lavorare a basso livello e il .NET Framework non permette un'ampia gestione come il C o il C++ e l'assembly messi assieme. Toglietevi dalla testa che in .NET si possa scrivere qualunque cosa perché non è così. Nella discussione che ho linkato nel post precedente è spiegato anche da @nothing che tutte le procedure che segue un antivirus operano a basso livello.
 
Secondo me non esiste cosa peggiore di un antivirus che confronta gli MD5... Solitamente un antivirus non funziona confrontando il contenuto per vedere se ci sono righe di codice che possono essere ritenute "sbagliate"? Perché cmq nel momento in cui io vado a modificare un byte nel file, l'HASH cambia senza troppi problemi... O erro?
 
Secondo me non esiste cosa peggiore di un antivirus che confronta gli MD5... Solitamente un antivirus non funziona confrontando il contenuto per vedere se ci sono righe di codice che possono essere ritenute "sbagliate"? Perché cmq nel momento in cui io vado a modificare un byte nel file, l'HASH cambia senza troppi problemi... O erro?

Un antivirus deve lavorare a basso livello perché fa un confronto tra il sorgente del file preso in esame e il relativo database. Il database contiene una lista di firme che corrispondono al codice malevolo che, senza l'antivirus, sarebbe eseguito sulla macchina quindi il confronto della firma digitale di un file è il metodo secondo cui gli antivirus rilevano le minacce e sicuramente questo non è fattibile in .NET. Il confronto tra gli MD5 è una boiata bella e buona.
 
Secondo me non esiste cosa peggiore di un antivirus che confronta gli MD5... Solitamente un antivirus non funziona confrontando il contenuto per vedere se ci sono righe di codice che possono essere ritenute "sbagliate"? Perché cmq nel momento in cui io vado a modificare un byte nel file, l'HASH cambia senza troppi problemi... O erro?

si hai ragione...ma sono solo 5 righe di codice :emoji_relieved:
 
Un antivirus deve lavorare a basso livello perché fa un confronto tra il sorgente del file preso in esame e il relativo database. Il database contiene una lista di firme che corrispondono al codice malevolo che, senza l'antivirus, sarebbe eseguito sulla macchina quindi il confronto della firma digitale di un file è il metodo secondo cui gli antivirus rilevano le minacce e sicuramente questo non è fattibile in .NET. Il confronto tra gli MD5 è una boiata bella e buona.

Ok perfetto. @oscarandrea: Va be sì, ma sono 5 righe di codice di file virus che devi avere tu xD
 
per adesso ne ho milioni in hash :|

Sì ma questo tuo programma non lavora a basso livello. Credi che basti confrontare gli hash per considerare un file una minaccia ? Se pensi così allora incolla tutti gli hash su un file di testo e falli leggere da questo tuo programma, io poi ti darò un file con all'interno una stringa e ti assicuro che non verrà rilevato dal tuo programma come minaccia.
 
Sì ma questo tuo programma non lavora a basso livello. Credi che basti confrontare gli hash per considerare un file una minaccia ? Se pensi così allora incolla tutti gli hash su un file di testo e falli leggere da questo tuo programma, io poi ti darò un file con all'interno una stringa e ti assicuro che non verrà rilevato dal tuo programma come minaccia.

non ho detto che il mio script serva a qualcosa gli ho soltanto risposto ;) so che basta anche 1bit per cambiare hash