Enviando e-mail con VB6

Iniciado por cobein, 4 Octubre 2008, 11:43 AM

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

cobein

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
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Karcrack

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

cobein

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).
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Karcrack

Cita de: 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).
Vere lo que puedo hacer, si consigo algo lo mas seguro es que lo postee :rolleyes: :xD

Saludos :D

el_c0c0

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!
'-     coco
"Te voy a romper el orto"- Las hemorroides

cobein

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.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Karcrack

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?