• 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!

Release MyGuards Antivirus - Release

Riferimento: MyGuards Antivirus - Release

Partiamo con il presupposto che è sicuramente da migliorare. Spiego un po.

MyGuards usa filesystemwatcher, ora, se il virus è rilevato MyGuards ti avvisa. Un virus potrebbe in teoria rimuovere il virus, ma solo se esiste già nel computer. Se si scarica mentre myguards è aperto, allora lo rileva. Per i file già presenti c'è la scansione. Adesso sto lavorando anche per controllare i processi che si attivano. Ma questo comporta un algoritmo diverso perchè sarebbe in base al nome, quindi prima dovrei vedere il percorso del file e poi confrontarlo.

Spero di averti risposto in modo esaustivo. Se hai idee,soluzioni o metodi da consigliarmi commenta pure :emoji_slight_smile:
 
Riferimento: MyGuards Antivirus - Release

Il codice non lo mostro. Mi dispiace. Mi chiedo il perché, poi, di tutto questo accanimento °_° Ho già spiegato come e funziona e cosa fa. Non è già abbastanza? E' come chiedere ad Avast: "Senti, mi fai vedere i codici di come rilevi i virus?" ....

Ho già detto abbastanza ;)
Veramente tutti i veri antivirus scannerizzano:
1)Gli Offset
2)L'hex
Non gli hash... Un antivirus buono deve avere un buon supporto per il database degli offset. Se sei da solo e' un'impresa inutile.
 
Riferimento: MyGuards Antivirus - Release

Veramente tutti i veri antivirus scannerizzano:
1)Gli Offset
2)L'hex
Non gli hash... Un antivirus buono deve avere un buon supporto per il database degli offset. Se sei da solo e' un'impresa inutile.

Beh è solo un punto di partenza, analizzare il contenuto del file è comunque una cosa utile. Per adesso sto facendo le impostazioni, se vuoi darmi una mano sei ben accetto ;)
 
Riferimento: MyGuards Antivirus - Release

MyGuards usa filesystemwatcher

E' quello che temevo ... in questo modo è parecchio debole ...

1) se il virus è inoculato alla fine (o all'interno) di un eseguibile, non puoi trovarlo

2) se il virus è già in memoria, non lo rilevi

3) il filesystemwatcher *non* è affidabile. Quando ci sono moltissimi eventi al secondo (una copia pesante, ad esempio) alcuni eventi vengono ignorati

4) è possibile che all'apertura del file questo sia bloccato tanto da generare una eccezione ed essere illeggibile

Un antivirus che abbia un senso (e questa secondo me è la variazione da apportare al tuo programma) è quello che si "inserisce" con un driver di fie system e in memoria a livello kernel.
 
Riferimento: MyGuards Antivirus - Release

@nothing @System32 : non alimentiamo discussioni ridicole. Un antivirus in .NET é sintomo di ignoranza e non merita alcun commento oltre ad un "Chiudo il topic.".
Far intendere come "firewall" tutto tranne che una funzionalità per gestire i flussi di rete e la "modalità emergenza" che rileva un virus in caso l'antivirus non lo rilevi è demenza! Se l'AV ha una funzione per rilevare virus allora perché non attivarla e aspettare che l'utente la esegua?
 
Riferimento: MyGuards Antivirus - Release

@Diocleziano ... potresti avere ragione ma - dato il livello del codice presentato in questo forum - se questo è stato scritto interamente dall'autore (e non "composto" da parti di altri programmi) può essere "apprezzato" come un primo, primissimo livello di progetto di un antivirus (diciamo antimalware).

Che poi tante cose siano un po' "sceneggiate" e non siano per niente utili, okay ...
 
Riferimento: MyGuards Antivirus - Release

Sviluppa un firewall. Questa sarebbe una cosa utile
 
Riferimento: MyGuards Antivirus - Release

Perderei tempo citando tutti, rispondo qui. Se il virus è presebte dentro un eseguibile è comunque rilevato, stai tranquillo. È vero che controlla solo l'HEADER_FILE, ma tutti gli antivirus fanno così xD Emergency Mode è una modalità che non fa eseguire altri processi oltre a quelli già eseguiti, un pò come ultima sponda. Come ho scritto nel post il firewall avrà funzioni via via più importanti, è un progetto giovane che ha bisogno di tempo.

Per il fatto di chiudere il Topic allora la sezione non dovrebbe nemmeno esistere se fosse così, qui tutti siamo per imparare. Per quanto riguarda invece gli altri commenti non posso che essere d'accordo. Diciamo che essendo una primissima versione c'è ancora molto da fare...
 
Ultima modifica:
Riferimento: MyGuards Antivirus - Release

Se il virus è presebte dentro un eseguibile è comunque rilevato, stai tranquillo.

No ... se fai come hai detto (hash ...) non puoi rilevarlo. Devi cercare la "firma" del virus all'interno del file, che è quello che fanno gli antivirus.

È vero che controlla solo l'HEADER_FILE

E che sarebbe l'HEADER_FILE .... non spariamo paroloni senza sapere di che si parla ...

ma tutti gli antivirus fanno così

Eh ?
 
Riferimento: MyGuards Antivirus - Release

Oh mio Dio, facciamo anche un po' di informazione:
Perfavore, Entra oppure Registrati per vedere i Link!


All'inizio ho pensato a controllare l'header del file. Verranno controllate poi anche tante altre cose, tempo al tempo....
 
Riferimento: MyGuards Antivirus - Release


Datti una calmata perché non stai parlando con un "principiante" ...

Per tua informazione, l'header file è il file di intestazione dei sorgenti C (quello con estensione .h) e non c'entra nulla con la nostra discussione. Ciò di cui parli tu è "l'header del file PE" e va scritto così, non HEADER_FILE.

Se controlli solo l'header del file eseguibile non determini la presenza di una marea di virus, quindi non devi affermare "Se il virus è presebte dentro un eseguibile è comunque rilevato, stai tranquillo." perché non starei affatto tranquillo.

In ogni caso, avevi detto che facevi l'hash del file che controllavi in seguito con un DB. Questo modo di operare non c'entra nulla con il controllo dell'header dell'eseguibile ... deciditi ... cosa fa il tuo programma?
Forse fa solamente quello che fa questo banale (ma molto simile) esempio

Perfavore, Entra oppure Registrati per vedere i Link!


?

P.S. Passando all'implementazione, non capisco perché, in un programma .NET, tu usi il vecchio controllo ActiveX Inet ...
 
Ultima modifica:
Riferimento: MyGuards Antivirus - Release

No, non è lo stesso. Il controllo inet lo uso per scaricare il database e per fare poi delle future implementazioni di una cosa. Quello che fa il programma l'ho già spiegato, mi sembra... Io sono calmissimo e non pensare nemmeno tu di parlare con un ignorante eh, non capisco poi perchè ogni cosa che faccio devo essere criticato...
 
Riferimento: MyGuards Antivirus - Release

No, non è lo stesso.

Per come l'hai descritto in precedenza, il "nucleo" del codice sembra proprio quello.
Nella spiegazione a System, non hai affatto parlato di controllo dell'header del file PE ma solo di un generico calcolo del codice MD5.
In ogni caso, ribadisco, un bel po' di virus non saranno mai rilevati ... altro che stare tranquillo.

Il controllo inet lo uso per scaricare il database e per fare poi delle future implementazioni di una cosa.

Il controllo inet è "vecchia" programmazione VB6 e si usa in .NET solo se non si sanno usare le apposite classi.
In .NET, appunto, esistono una miriade di classi del framework dedicate alla gestione delle comunicazioni di rete.

Quello che fa il programma l'ho già spiegato, mi sembra... Io sono calmissimo e non pensare nemmeno tu di parlare con un ignorante eh, non capisco poi perchè ogni cosa che faccio devo essere criticato...

Non te la devi prendere se si fanno "le pulci" ad un programma che presenti. Non pensare di essere "perseguitato" perché nel forum si commentano tutti i programmi non solo quelli che presenti tu.

Il fatto è che hai dato spiegazioni che non mi hanno convinto, tutto qui.

Non penso che tu sia "ignorante" figurati, ma se non sei preciso su quello che hai fatto (MD5 ? Altro?), se fai affermazioni fuori luogo (HEADER_FILE ? Tutti i virus rilevati?) e se programmi in modo "opinabile" (vecchio Inet al posto delle classi), allora devi accettare le critiche.
 
Riferimento: MyGuards Antivirus - Release

Sicuramente ho molto da imparare (vedi l'inet), accetto le critiche COSTRUTTIVE, non quelle che servono solo per mostrarsi... Come ho detto prima ho ancora molto da imparare, vedrò quindi di aggiustare l'inet. Comunque il sito che mi hai linkato non fa come quello che ho scritto io nel codice ;)
 
Riferimento: MyGuards Antivirus - Release

Comunque il sito che mi hai linkato non fa come quello che ho scritto io nel codice ;)

Okay ma non te l'ho detto perché me lo sono inventato ma solamente perché l'hai scritto tu che usi

1) il filesystemwatcher

2) calcoli l'md5

e questo codice (guarda caso, proprio di un "antivirus" .NET ...) presenta le stesse caratteristiche.

Del resto sono tantissimi i pezzi di codice che si basano sullo stesso principio (che sono su Internet da tanto tempo prima che tu postassi l'ennesimo antivirus ...) ad esempio

Perfavore, Entra oppure Registrati per vedere i Link!



In ogni caso, per concludere il discorso, in realtà il concetto stesso di antivirus fatto in questo modo è semplicemente un "esercizio didattico" perché, effettivamente, non ha alcun senso, bisogna che ce ne rendiamo tutti conto.

Altrimenti si alimentano "false" speranze e i "giovani programmatori" pensano che queste cose siano realizzabili .... un "vero" antivirus non si fa così .
 
Ultima modifica:
Riferimento: MyGuards Antivirus - Release

Alla fine controlla degli md5 ma non ho detto che fa solo questo, bando alle ciance, non ho mica detto che sarà l'antivirus del secolo... In realtà, e lo ammetto mi è servito per ridefinire alcuni concetti di vb.net, e con la scusa ho fatto sto programma, sto antivirus, sta cagata che, come volete definirla è una continuazione e il presupposto di qualcosa di importante...


AGGIORNAMENTO POST:
Fixato bug relativo alla scansione, errore nel caso in cui si annullava la scelta della directory o si rifiutava di scandire la directory scelta. Si consiglia di aggiornare (basta aprire l'applicazione che già si ha per aggiornare)

AGGIORNAMENTO POST X2:
Tolto il componente Inet. Si utilizzerà adesso la classe WebClient. In creazione la sezione delle impostazioni:
-Scansione: Eccezioni per i file da scansionare e selezione della Path di Default
-Emergency Mode: in sviluppo...
-Firewall: in sviluppo...
 
Ultima modifica:
Riferimento: MyGuards Antivirus - Release

@nothing @System32 : non alimentiamo discussioni ridicole. Un antivirus in .NET é sintomo di ignoranza e non merita alcun commento oltre ad un "Chiudo il topic.".
Far intendere come "firewall" tutto tranne che una funzionalità per gestire i flussi di rete e la "modalità emergenza" che rileva un virus in caso l'antivirus non lo rilevi è demenza! Se l'AV ha una funzione per rilevare virus allora perché non attivarla e aspettare che l'utente la esegua?

ahahhahhaha questa è proprio bella !!! , non si può scrivere un antivirus basandosi sul .NET , ho letto un paio di commenti ,LOL , fanno morire dalle risate (anzi forse fanno + piangere ) ... nessuno che parla di motivazioni eh ? :emoji_relieved:

Tanto per curiosità mi dite un buon linguaggio x scrivere anti-virus ??? naturalmente mi spiegate anche le motivazione , xk vorrei capire, forse mi sbaglio che si può scrivere un antivirus (non dico professionale , ma decente se ci si lavora ) basandosi sulla tecnologia .net ... ma vorrei capire il xk di tale affermazione???


Valutazione
di sicuro il .Net da solo non presenta la totale possibilità di sviluppare un anti virus competitivo , infondo gli antivirus che girano su windows sfruttano il .net (da windows defender a microsoft security essential ) , in generale windows si basa sulla tecnologia .NET , voto 8 su 10 , la grafica non dispersiva non è male come idea mi piace :-D , mancano alcune cose ecco xk 8 !

N.b ieri si è Bloccato Durante una scansione ? è apparso l'applicazione non risponde le prime volte non era successo

Consiglio
un consiglio la sandbox è importante soprattutto ora con l'introduzione del net 4.5 che siamo passati Codice SecurityTransparent di livello 2 ,inoltre credo che non sia molto difficile. è il cavallo di battaglia del Net : isolare il codice di applicazione esterne o scrittura !!

Infatti il principio delle classe Permission ti permette di porti tra lo stack e controllare eventuali codici security safecritical i principali controlli sono 3 :demand , linkdemand e assert (cerca su google) e vedi pure quì :
Perfavore, Entra oppure Registrati per vedere i Link!


Il namespace che contiene le classi è system.security , ad esempio mettendo in sandbox un processo in questo modo dovresti prima sapere dove scrive il processo e metterlo come safecritical... cmq buon lavoro se intendi continuare!

Dubbio

hai detto che per controllare il file lo apri in lettura poi lo codifichi in hash e lo ricodifichi in MD5 e lo trasformi in byte ... dal passaggio a md5 a byte non ho capito bene come fai ?? !
 
Riferimento: MyGuards Antivirus - Release

Innanzitutto grazie del commento.
Si, mi sono spiegato male, in realtà resta in MD5. Il discorso è per prelevare i caratteri necessari all'inizio del file.

N.b ieri si è Bloccato Durante una scansione ? è apparso l'applicazione non risponde le prime volte non era successo
Questo può essere dovuto a due fattori:
1. Directory troppo grandi e quindi la ricorsione è ben lunga xD
2. Eventuali bug nel codice.

Comunque ti consiglio, se non l'hai già fatto di aggiornare l'applicazione. Basta chiuderla del tutto e riaprirla :emoji_smiley:

Per il resto so già che c'è molto da fare, sto inserendo via via nuove funzioni. Proprio ora ho finito la sezione di scansione delle impostazioni (già disponibile nell'aggiornamento) :emoji_smiley:

Consiglio
un consiglio la sandbox è importante soprattutto ora con l'introduzione del net 4.5 che siamo passati Codice SecurityTransparent di livello 2 ,inoltre credo che non sia molto difficile. è il cavallo di battaglia del Net : isolare il codice di applicazione esterne o scrittura !!

Infatti il principio delle classe Permission ti permette di porti tra lo stack e controllare eventuali codici security safecritical i principali controlli sono 3 :demand , linkdemand e assert (cerca su google) e vedi pure quì : Codice SecurityTransparent, livello 2

Il namespace che contiene le classi è system.security , ad esempio mettendo in sandbox un processo in questo modo dovresti prima sapere dove scrive il processo e metterlo come safecritical... cmq buon lavoro se intendi continuare!

Ecco una bella critica costruttiva. Vorrei saperne di più. Potresti farmi sapere meglio?
 
Riferimento: MyGuards Antivirus - Release

Innanzitutto grazie del commento.
Si, mi sono spiegato male, in realtà resta in MD5. Il discorso è per prelevare i caratteri necessari all'inizio del file.


Questo può essere dovuto a due fattori:
1. Directory troppo grandi e quindi la ricorsione è ben lunga xD
2. Eventuali bug nel codice.

Comunque ti consiglio, se non l'hai già fatto di aggiornare l'applicazione. Basta chiuderla del tutto e riaprirla :emoji_smiley:

Per il resto so già che c'è molto da fare, sto inserendo via via nuove funzioni. Proprio ora ho finito la sezione di scansione delle impostazioni (già disponibile nell'aggiornamento) :emoji_smiley:



Ecco una bella critica costruttiva. Vorrei saperne di più. Potresti farmi sapere meglio?


infatti mi pareva strano che passa da md5 a byte è una cifratura irreversibile !

cmq serve ad esempio a limitare l'accesso e isolare il codice ti faccio un esempio banale .. per renderti l'idea un pò + familiare

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


questo è un esempio banale di codice Safe in Sandbox ! spero di esserti stato d'aiuto su internet troverai guide + precise credo ! :emoji_smiley:
 
Riferimento: MyGuards Antivirus - Release

Mi hai illuminato! Grazie, farò qualche ricerca quando avrò fixato e finito quello che c'è già :emoji_smiley: