Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rixi15 en 4 Enero 2007, 16:28 pm



Título: Ayuda antivirus
Publicado por: rixi15 en 4 Enero 2007, 16:28 pm
Hola bueno yo quiero hacer un sencillo antivirus pero que solo desinfecte un virus.
alguien me puede orientar a como hacer para buscar el virus en un pc?
gracias


Título: Re: Ayuda antivirus
Publicado por: VirucKingX en 4 Enero 2007, 17:10 pm
primero Debes analizar el virus, es decir, donde se copia los registros , etc

y de hay crear un programa que elimine dichos archivos


Bye no creo que sea muy dificil  >:(


Título: Re: Ayuda antivirus
Publicado por: CeLaYa en 4 Enero 2007, 17:26 pm
que virus es el que quieres eliminar??  :huh:


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 4 Enero 2007, 18:30 pm
me da igual el virus es por probar
lo unico que me falta por saber es como borrarlo del registro de windows


Título: Re: Ayuda antivirus
Publicado por: ~~ en 4 Enero 2007, 21:21 pm
primero Debes analizar el virus, es decir, donde se copia los registros , etc

y de hay crear un programa que elimine dichos archivos


Bye no creo que sea muy dificil  >:(

eso no vale por q ya la mayoria pueden variar...
Lo q tienes q hacer es ponerle dos o tres firmas al virus en si, y luego ir mapeando los archivos q kieras analizar y si las firmas conciden es q es el virus q estabas buscando  ;)

1S4ludo

PD --> Las firmas son offset's


Título: Re: Ayuda antivirus
Publicado por: VirucKingX en 4 Enero 2007, 21:59 pm
primero Debes analizar el virus, es decir, donde se copia los registros , etc

y de hay crear un programa que elimine dichos archivos


Bye no creo que sea muy dificil  >:(

eso no vale por q ya la mayoria pueden variar...
Lo q tienes q hacer es ponerle dos o tres firmas al virus en si, y luego ir mapeando los archivos q kieras analizar y si las firmas conciden es q es el virus q estabas buscando  ;)

1S4ludo

PD --> Las firmas son offset's

todo depende del virus, ni el sabe que virus quiere eliminar xD

Bye


Título: Re: Ayuda antivirus
Publicado por: skapunky en 4 Enero 2007, 23:08 pm
Te dejo aqui unos pasos sencillos.

1. Localizar los archivos
2. Cerrar procesos
3. Borrar archivos (Los que tienen proceso y los que añada)
4. Borrar claves del registro.
5 [OPCIONAL] Mirar si haun existen los archivos y las claves del registro.

En visual basic hacer todo eso es bastante sencillo, busca un poco si no sabes como hacerlo.

Me ire pasando por este post por si tienes dudas, yo ya h hecho algunas cosas.

Saludos.


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 5 Enero 2007, 09:32 am
he  buscado y solo me falta por saber como borrar del registro y como buscar el virus


Título: Re: Ayuda antivirus
Publicado por: skapunky en 5 Enero 2007, 14:55 pm
Para hacer las dos cosas tienes dos opciones....Una usando vbs o con las api's.

Por lo que hace al registro te recomiendo directamente vbs...busca info sobre RegWrite,RegDelete y RegRead.

Por lo que hace buscar ficheros lo puedes hacer en vbs..busca info sobre fileexists... Aunque tmb lo puedes hacer con la api..a continuacion te dejo un ejemplo para que te lo mires.


Código:
'Tipos, constantes y funciones para FileExist
Const MAX_PATH = 260
Const INVALID_HANDLE_VALUE = -1

Private Type FILETIME
        dwLowDateTime       As Long
        dwHighDateTime      As Long
End Type

Private Type WIN32_FIND_DATA
        dwFileAttributes    As Long
        ftCreationTime      As FILETIME
        ftLastAccessTime    As FILETIME
        ftLastWriteTime     As FILETIME
        nFileSizeHigh       As Long
        nFileSizeLow        As Long
        dwReserved0         As Long
        dwReserved1         As Long
        cFileName           As String * MAX_PATH
        cAlternate          As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
    (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
    (ByVal hFindFile As Long) As Long



Public Function FileExist(ByVal sFile As String) As Boolean
    'comprobar si existe este fichero
    Dim WFD As WIN32_FIND_DATA
    Dim hFindFile As Long

    hFindFile = FindFirstFile(sFile, WFD)
    'Si no se ha encontrado
    If hFindFile = INVALID_HANDLE_VALUE Then
        FileExist = False
    Else
        FileExist = True
        'Cerrar el handle de FindFirst
        hFindFile = FindClose(hFindFile)
    End If

End Function


'Para usarla:
If FileExist("lo que quieras comprobar") Then
   'El archivo existe
Else
   'El archivo no existe
End If


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 5 Enero 2007, 14:59 pm
encontre esto para buscar pero no lo entiendo

Function PathTo(strFile As String) As String
Dim x As Integer
Dim strDirs As String
Dim strDir As String
Dim strEntry As String
strDirs = "c:\" & vbNullChar
Do While Len(strDirs)
x = InStr(strDirs, vbNullChar)
strDir = Left$(strDirs, x - 1)
strDirs = Mid$(strDirs, x + 1)
If Len(Dir$(strDir & strFile)) Then
PathTo = strDir & Dir$(strDir & strFile)
Exit Function
End If
strEntry = Dir$(strDir & "*.*", vbDirectory)
Do While Len(strEntry)
If (GetAttr(strDir & strEntry) And vbDirectory) Then
If strEntry <> "." And strEntry <> ".." Then
  strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
End If
End If
strEntry = Dir$
Loop
Loop
PathTo = ""
End Function

Private Sub Command1_Click()
Kill PathTo("hack.txt")
End Sub


Título: Re: Ayuda antivirus
Publicado por: CeLaYa en 5 Enero 2007, 18:42 pm
lo que hace básicamente es recorrer los directorios de la Unidad C:\ para buscar (en este caso) el archivo "Hack.txt"
Código:
Function PathTo(strFile As String) As String
    Dim x As Integer
    Dim strDirs As String
    Dim strDir As String
    Dim strEntry As String
    'inicia la búsqueda en c:\
    strDirs = "c:\" & vbNullChar
    Do While Len(strDirs)
        x = InStr(strDirs, vbNullChar)
        strDir = Left$(strDirs, x - 1)
        strDirs = Mid$(strDirs, x + 1)
        'Comprueba si existe el archivo
        If Len(Dir$(strDir & strFile)) Then
            PathTo = strDir & Dir$(strDir & strFile)
            Exit Function
        End If
        'Obtiene una carpeta o archivo contenido es strdir
        strEntry = Dir$(strDir & "*.*", vbDirectory)
        Do While Len(strEntry)
            'si es una carpeta la asigna a strDirs para búscar dentro de ella
            On Local Error Resume Next
            If (GetAttr(strDir & strEntry) And vbDirectory) Then
                If strEntry <> "." And strEntry <> ".." Then
                    strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
                End If
            End If
            If Err Then Exit Do
            On Local Error GoTo 0
            strEntry = Dir$
        Loop
    Loop
    PathTo = ""
End Function

también encontre ocurre un error cuando algún nombre de archivo contiene caracteres no validos, es decir no se si alguna vez han visto que en los nombres de archivos los caracteres son reemplazados por unos cuadritos. cuando un archivo los tiene la función falla por eso le agrege el control de errores, asi si encuentra uno de esos archivos se lo brinca y continua la búsqueda


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 5 Enero 2007, 21:13 pm
primero Debes analizar el virus, es decir, donde se copia los registros , etc

y de hay crear un programa que elimine dichos archivos


Bye no creo que sea muy dificil  >:(

eso no vale por q ya la mayoria pueden variar...
Lo q tienes q hacer es ponerle dos o tres firmas al virus en si, y luego ir mapeando los archivos q kieras analizar y si las firmas conciden es q es el virus q estabas buscando  ;)

1S4ludo

PD --> Las firmas son offset's
lo de las firmas como es eso?


Título: Re: Ayuda antivirus
Publicado por: skapunky en 6 Enero 2007, 02:35 am
Yo no usaria los offsets de los virus...primero porque no los encontraras facilmente, y segundo porque el offset lo crean las marcas de los antivirus...no es nada realmente malicioso. Tu mismo puedes cojer varios offsets de un archivo y mapeandolo puedes localizar los offsets que le hayas predefinido.

Por la funcion que has puesto, busca un cierto archivo como te han dicho pero al encontrarlo lo elimina..recuerda que KILL es para eliminar (siempre y cuando no haya un proceso associado abierto.)

Saludos.


Título: Re: Ayuda antivirus
Publicado por: sp26 en 6 Enero 2007, 05:56 am
Lo dificil es el modo realtime xdd... y que detecte el archivo por heurisitica... por lo menos yo lo consideraria dificil... (descifrar el archivo, estudiar lo que hace... suele haber errores).



Título: Re: Ayuda antivirus
Publicado por: rixi15 en 6 Enero 2007, 11:11 am
lo malo que si uso kill en una ruta k yo especifike
a veces cambian de nombres los archivos de los virus...


Título: Re: Ayuda antivirus
Publicado por: ~~ en 6 Enero 2007, 11:37 am
Citar
Yo no usaria los offsets de los virus...primero porque no los encontraras facilmente, y segundo porque el offset lo crean las marcas de los antivirus...no es nada realmente malicioso. Tu mismo puedes cojer varios offsets de un archivo y mapeandolo puedes localizar los offsets que le hayas predefinido.

Por la funcion que has puesto, busca un cierto archivo como te han dicho pero al encontrarlo lo elimina..recuerda que KILL es para eliminar (siempre y cuando no haya un proceso associado abierto.)

Saludos.

No hay q encontrar nada. Al igual q las marcas de AV tu te los inventas y ya esta. Pones por ejemplo tres firmas y si un archivo reune esas trs es q es malicioso. Si kieres asegurarte pon 5 (no las pongas en la cabecera xDD) y asi es casi imposible q te detecte como virus lo q no lo es.

Lo dificil es el modo realtime xdd... y que detecte el archivo por heurisitica... por lo menos yo lo consideraria dificil... (descifrar el archivo, estudiar lo que hace... suele haber errores).

Para eso tienes q hookear y me parece q en VB no se puede. Siempre puedes usar C++  :P

1S4ludo


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 6 Enero 2007, 11:53 am
entonces cual seria el metodo que utilizariais vosotros en vb6?


Título: Re: Ayuda antivirus
Publicado por: ~~ en 6 Enero 2007, 12:39 pm
Si solo kieres detetar el archivo con hacer lo de las firmas y mapearlo lo tienes arreglado. Si aparte kieres protecion en tiempo real necesitas otro lenguaje mas potente (por lo menos yo no conozco ninguna forma de hacerlo en VB...)

1S4ludo


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 6 Enero 2007, 17:55 pm
mejor usaré el kill y el metodo de kitar del registro
alguien sabe como es para kitar del registro de windows?


Título: Re: Ayuda antivirus
Publicado por: skapunky en 6 Enero 2007, 23:27 pm
Para la protección en tiempo real...lo mas facil en pensar si se quiere hacer algo muy cutre es un Timer...el problema de esto que como el programa tampoko eliminaria el archivo seria como un bucle infinito al comprovar cada x pocos segundos lo que sea...

Una opcion es crear un filtro de processos y permitir o no iniciar los processos...claro esto sabiendo los processos de cada virus se puede realizar pero es una matada.
En visual basic no se me ocurre otra forma  :huh:

Saludos.


Título: Re: Ayuda antivirus
Publicado por: ~~ en 7 Enero 2007, 11:56 am
mejor usaré el kill y el metodo de kitar del registro
alguien sabe como es para kitar del registro de windows?

Pues con shell + reg delete  (pon reg delete /? en el MS-DOS para mas info  ;)

Para la protección en tiempo real...lo mas facil en pensar si se quiere hacer algo muy cutre es un Timer...el problema de esto que como el programa tampoko eliminaria el archivo seria como un bucle infinito al comprovar cada x pocos segundos lo que sea...

Una opcion es crear un filtro de processos y permitir o no iniciar los processos...claro esto sabiendo los processos de cada virus se puede realizar pero es una matada.
En visual basic no se me ocurre otra forma  :huh:

Saludos.

No funcionaria, a parte de consumir muchos recursos contra una inyeccion por ejemplo no funcionaria, por no hablar de los q tienen procesos variables y claves del reg variables...

Hay q hacer lo q e dicho: hookear
1S4ludo


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 7 Enero 2007, 12:35 pm
buena idea llamar a un batch :)
gracias eon y gracias a skapunky por el codigo de fileexist

Ya lo terminé lo pueden descargar en:
http://www.mediafire.com/?4mdtwwy3zoj (http://www.mediafire.com/?4mdtwwy3zoj)


Título: Re: Ayuda antivirus
Publicado por: sp26 en 8 Enero 2007, 23:46 pm
el link esta roto....


pon screenshot por lo menos :P


Título: Re: Ayuda antivirus
Publicado por: skapunky en 9 Enero 2007, 00:13 am
Si que funciona el link !!! Es el siguiente o en el post de arriba tmb esta.

http://www.mediafire.com/?4mdtwwy3zoj

Por cierto, te comento, mata el proceso y despues usa el kill...aqui te dejo un codigo pa matar el proceso, este lo encontre por internet y va estupendo.

Código:
Public Sub KillProcess(ByVal processName As String)
       
        On Error GoTo ErrHandler
         
         Dim oWMI
         Dim ret
         Dim sService
         Dim oWMIServices
         Dim oWMIService
         Dim oServices
         Dim oService
         Dim servicename
         
          Set oWMI = GetObject("winmgmts:")
          Set oServices = oWMI.InstancesOf("win32_process")

          For Each oService In oServices
                 
                 servicename = LCase(Trim(CStr(oService.Name) & ""))
                 
                 If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
                    ret = oService.Terminate
                 End If
 
          Next
         
          Set oServices = Nothing
          Set oWMI = Nothing

 
ErrHandler:
  Err.Clear
End Sub


Private sub Form_load ()

KillProcess ("Notepad")
End Sub

Intenta que el archivo sea limpiado desde el mismo exe...mirate el registro en vbs que es facil eliminar claves con Regdelete.

Saludos.


Título: Re: Ayuda antivirus
Publicado por: sp26 en 9 Enero 2007, 00:21 am
No, no funciona ...

pense que era el FF yl o hice con IE, pero no funciona tampoco..


Título: Re: Ayuda antivirus
Publicado por: skapunky en 9 Enero 2007, 13:55 pm
Yo con el mozilla almenos si me va el link... esta subido en mediafire.

De todas formas aqui el link directo del zip:

http://download109.mediafire.com/yzyzyjykyfag/4mdtwwy3zoj/AZ_Anti-ProAgent.zip

Ahora si les ha de bajar seguro.
Saludos.


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 9 Enero 2007, 15:38 pm
si ya tenia un codigo para matar proceso lo malo eske no se cual es el proceso porke no me sale en el control alt sup


Título: Re: Ayuda antivirus
Publicado por: sp26 en 10 Enero 2007, 04:39 am
si ya tenia un codigo para matar proceso lo malo eske no se cual es el proceso porke no me sale en el control alt sup

¿Que proceso?

puedes poner que elimine el proceso con el nombre del archivo que va a borrar... que espere que termine luego que elimine el archivo, asi de forma secuencial para no causar desordenes.


Título: Re: Ayuda antivirus
Publicado por: sp26 en 10 Enero 2007, 04:41 am
¿Estare yo loco o tu archivo esta maldito? Cuando intento abrir el zip me dice que el archivo esta ilegible... mejor lo dejare asi, es una maldicion...  :rolleyes: :rolleyes: :rolleyes: :rolleyes:


Título: Re: Ayuda antivirus
Publicado por: rixi15 en 10 Enero 2007, 15:24 pm
jejej t voy a dejar una imagen principal del antivirus

(http://img454.imageshack.us/img454/4787/azxd4.png)
saludos