Título: Enviando e-mail con VB6
Publicado por: cobein en 4 Octubre 2008, 11:43 am
Bueno inspirado por el aporte de ErMoja me tome la molestia de hacer esto. Espero que les guste. http://foro.elhacker.net/programacion_vb/tutorial_enviando_email_con_vb6-t230043.0.html '--------------------------------------------------------------------------------------- ' Module : mInternetOpenAlter ' DateTime : 03/10/2008 23:11 ' Author : Cobein ' Mail : cobein27@hotmail.com ' WebPage : http://www.advancevb.com.ar ' Member of : http://hackhound.org/ ' Purpose : Do an URL request, usefull to send information. ' Usage : At your own risk ' Requirements: None ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. ' ' Reference : Inspired by an article from ErMoja ' ' History : 03/10/2008 First Cut.................................................... '--------------------------------------------------------------------------------------- ' '// Sample PHP '<?php '$val = $_GET['value']; 'mail ('myemail@hotmail.com', 'Title', $val); ?> ' '// Sample Call 'Private Sub Form_Load() ' InternetOpenAlter "http://www.myserver.com.ar/mailme.php?value=Test" 'End Sub '--------------------------------------------------------------------------------------- Option Explicit
Private Declare Sub RtlMoveMemory Lib "kernel32" (pDst As Any, pSrc As Any, ByVal dlen As Long) Private Declare Function CallWindowProcA Lib "user32" (ByVal adr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long
Public Function InternetOpenAlter(ByVal sUrl As String) As Boolean Dim lLib As Long Dim lhConn As Long Dim lhFile As Long Dim bvASM(255) As Byte Dim vItem As Variant Dim lPos As Long Dim lPtr As Long Dim lMod As Long For Each vItem In Array( _ &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, _ &H68, &H0, &H0, &H0, &H0, &H68, &H1, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &HE8, _ &H0, &H0, &H0, &H0, &HC3, &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, _ &H68, &H0, &H0, &H0, &H80, &H68, &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &H68, _ &H0, &H0, &H0, &H0, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3, &H58, _ &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3, _ &H58, &H59, &H59, &H59, &H59, &H50, &H68, &H0, &H0, &H0, &H0, &HE8, &H0, &H0, &H0, &H0, &HC3) bvASM(lPos) = vItem: lPos = lPos + 1 Next lPtr = VarPtr(bvASM(0))
lLib = LoadLibraryA("wininet") lMod = GetProcAddress(lLib, "InternetOpenW") RtlMoveMemory ByVal lPtr + 32, lMod - lPtr - 36, &H4 lMod = GetProcAddress(lLib, "InternetOpenUrlW") RtlMoveMemory ByVal lPtr + 74, lMod - lPtr - 78, &H4 lMod = GetProcAddress(lLib, "InternetCloseHandle") RtlMoveMemory ByVal lPtr + 91, lMod - lPtr - 95, &H4 RtlMoveMemory ByVal lPtr + 108, lMod - lPtr - 112, &H4 lhConn = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0) If Not lhConn = 0 Then RtlMoveMemory ByVal lPtr + 69, lhConn, &H4 RtlMoveMemory ByVal lPtr + 64, StrPtr(sUrl), &H4 lhFile = CallWindowProcA(VarPtr(bvASM(37)), 0, 0, 0, 0) If Not lhFile = 0 Then RtlMoveMemory ByVal lPtr + 86, lhFile, &H4 Call CallWindowProcA(VarPtr(bvASM(79)), 0, 0, 0, 0) InternetOpenAlter = True End If RtlMoveMemory ByVal lPtr + 103, lhConn, &H4 Call CallWindowProcA(VarPtr(bvASM(96)), 0, 0, 0, 0) End If End Function
Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 4 Octubre 2008, 14:06 pm
Muy bueno, Cobein, como siempre :D. Lo vi antes en HackHound :).
A ver si consigo hacer una DLL con esta funcion.(similar a la que hiciste con lo del FTP)
Saludos :D
Título: Re: Enviando e-mail con VB6
Publicado por: cobein en 4 Octubre 2008, 23:26 pm
Gracias, mira que la libreria del FTP es de inyeccion, se puede hacer esto mismo ahi sin problemas pero vas a tener que hacer unos cuantos cambios importantes seguramente, por ejemplo reemplazar el byte array por memoria y punteros (HeapAlloc etc).
Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 5 Octubre 2008, 16:36 pm
Gracias, mira que la libreria del FTP es de inyeccion, se puede hacer esto mismo ahi sin problemas pero vas a tener que hacer unos cuantos cambios importantes seguramente, por ejemplo reemplazar el byte array por memoria y punteros (HeapAlloc etc).
Vere lo que puedo hacer, si consigo algo lo mas seguro es que lo postee :rolleyes: :xD Saludos :D
Título: Re: Enviando e-mail con VB6
Publicado por: el_c0c0 en 5 Octubre 2008, 17:32 pm
Esta bueno cobein, para boludear si podes, podes poner el codigo ASM que representa todo eso? para entender un poco mas como es la movida del ASM..
en fin, funciona lindo.. saludos!
Título: Re: Enviando e-mail con VB6
Publicado por: cobein en 5 Octubre 2008, 23:47 pm
El codigo no es nada mas ni nada menos que 4 callapibyname, la diferencia es que las constantes y valores ya estan incluidos en el codigo y lo unico que se parcha son las apis y algunas variables, estaba terminando una herramienta para crear el codigo automagicamente, cuando este lista la posteo.
Título: Re: Enviando e-mail con VB6
Publicado por: Karcrack en 13 Octubre 2008, 18:19 pm
Bueno, lo he intentado, pero no he podido... la verdad, esto de las inyecciones.. :-[ :xD
Bueno, a ver si tienes tiempo y sigues el Tutorial de tu Blog... el de inyecciones... :D, que falta me hace! xD
Saludos :D
PD: Tienes un poco desactualizado el blog no?
|