[SOURCE-CODE] AV Engine Demo

Iniciado por **Aincrad**, 2 Junio 2018, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

**Aincrad**

Bueno , primero hola foro  ;D .

Hoy les trigo una manera simple de escanear archivos por medio de su Hash . en vb.net es casi imposible crear un antivirus. si creas un antivirus en vb.net lo tendrias muy limitado.

Para crear un antivirus en VB.NET la mejor forma de hacerlo en recurrir a apis de otros softwares tales como : CLAM , WINDOWS DEFENDER , ENTRE OTROS..

LA Segunda forma y es la mas usada, es por medio de escanear el Hash. (Digo la mas usada porque en Google buscas "ANTIVIRUS EN VB.NET" y te salen proyectos que utilizan nada mas este método.)




Bueno hoy les traigo un Ejemplo de Scan por Hash de MD5. CON LA CUAL PODRAN HACER UN Antivirus Barato :V.

Se Preguntaran : ¿por que les traigo un proyecto que se puede encontrar fácilmente en google. ? :

Bueno en la mayoría de Proyectos que consigues tienen como Base de datos unos 30 o 50 virus registrados . PERO YO LES TRAIGO UNA BASE DE DATOS CON :

1.441.802 VIRUS REGISTRADOS (MD5 Hash)





Bueno les de jo los link + Imágenes:

Ejecutable :

[EXE-FILE] AV ENGINE

Codigo Fuente:

[SOURCE-CODE] AV ENGINE




Imagen:


Comenten no quiero quedar ignorado :,v , Y el compañero @Elektro Bueno estoy esperando sus criticas constructivas :V  .




Eleкtro

#1
Resulta interesante ver como...      ¡es broma!, ¡¡es broma!!, jeje.




CitarBueno en la mayoría de Proyectos que consigues tienen como Base de datos unos 30 o 50 virus registrados.

En realidad siendo optimistas ni tan mal está... es una cantidad humilde pero suficiente, no creo que nunca llegue a poder infectarme de 1.441.802 virus para comprobar la eficacía antiviral de otro software.




Cita de: **Aincrad** en  2 Junio 2018, 01:00 AM
Y el compañero @Elektro Bueno estoy esperando sus criticas constructivas :V  .[/center]

Me siento generoso así que voy a criticar el código todo lo que pueda (ojo, no todo tienen por que ser críticas negativas xD). Ya sabes que yo comento sobre el código fuente más que proponer ideas para añadir nuevas funcionalidades al programa y esas cosas...

Bueno, lo primero que he visto al abrir el proyecto es la interfaz de usuario, y debo decir que resulta algo odioso ver textos de controles escritos en Inglés, y otros en Español, y no solo eso, sino que además en el códio fuente también... los nombres de las variables son bilingüe. Hay cierta inconcistencia de elección en ese sentido: programar en Inglés, o en Español.

Hay muchas cosas que se pueden (y se deberían) mejorar al aplicar el letter-casing y el formato de nomenclatura de las variables declaradas a nivel de clase, y los nombres de los métodos. Pero bueno, no profundizaré en todo lo que es y/o me resulta inapropiado... no quiero acabar escribiendo la Biblia.




Esto ya no es simple crítica, sino un error o fallo de diseño como tal: en el método GetMd5() te estás dejando abierta una instancia IDisposable: la clase FileStream. Debes asegurarte de usar el método Close o Dispose. En la clase MD5CryptoServiceProvider también, pero sobre todo al trabajar con streams (las consecuencias tienen mayor importancia) hay que cerrarlos.




No creo que se puede mencionar mucho más ni para bien ni para mal sobre la aplicación, ya que es un código de pocas lineas. Bueno, quizás decirte que lo ideal sería que la base de datos se distribuya como un archivo local, así el usuario podría añadir nuevas entradas/firmas/hashes, o eliminar las que quisiera.

¿Alguna crítica positiva?, sí, sin duda es un gran acierto que hayas optado por usar la clase BackgroundWorker de entre las demás opciones que podías considerar sin tener demasiada experiencia en ello (clase Thread, Task, y el Async), +10 puntos por hacer las cosas muy bien en ese sentido, puesto que la clase está diseñada/pensada y optimizada para este tipo de escenario (multi-threading que interactue con los elementos de la UI). Sin embargo, lo que no está tan bien hecho es el modo en el que la estás utilizando, de hecho basicamente se podría decir que no le estás dando el uso que se le debería dar, nope, pero bueno, por el momento así, démosle el "Ok!". Espero en el futuro ver tus avances en el dominio de la programación asincrónica.

Saludos!








Maurice_Lupin

Le ponga una estrella en mi navegador.

Suena interesante tu proyecto, aún no pruebo tu código pero lo archivo para inspirarme en un futuro.

Sólo un comentario, si subieras tus códigos a github (por ejm), se le puede dar una rápida ojeada sin descargarlo :D

Saludos.
Un error se comete al equivocarse.