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:
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
' //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:
'#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
' //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.
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.
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.
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
@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.
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
A ver, tengo dos campos de texto con la dirección IP y el puerto y utilizo el siguiente código:
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:
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.
Yo había hecho este código, pero el servidor no me lee nada.
En el editor:
Open Ruta For Binary As #1
Put #1, LOF(1) + 1, "|" & DireccionIP & "|" & Puerto
Put #1, , Secuencia
Close #1
En el servidor:
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.
Asi no vas a llegar muy lejos, mejor lee un manual de como leer y escribir archivos.
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
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.
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.
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.
¿Dónde hice doble post? Yo no lo veo.
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 »
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.