Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Kizar en 18 Mayo 2005, 14:53 pm



Título: Enviar un textbox con VB
Publicado por: Kizar en 18 Mayo 2005, 14:53 pm
Hola

El problema es el siguiente:
Estoy creando un chat para un troyano, cuando mando los comandos para que el formulario del chat sea visible lo hace a la perfeccion, pero cuando quiero mandar un texto de uno al otro lo que el servidor me recibe es lo que le e mandado y como cada vez le mando un texto diferente el no lo reconoce.

Ejemplo.

Con el cliente mando "OPENCHAT"
El servidor  lo recibe y se pone la propiedad visible del formulario del chat en true. Hasta aqui bien.

Cuando con el cliente le mando los datos de un textbox por ejempo "hola" al servidor le llega eso y no sabe que acer con ello.

Ayuda please!!!

Salu2


Título: Re: Enviar un textbox con VB
Publicado por: Simbelmynë en 18 Mayo 2005, 20:59 pm
Trabajalo con un listbox en el servidor...
Y cada vez que envias texto desde el cliente hacelo de la forma:
winsock1.senddata "mensaje" & texto
donde "mensaje" solamente sera una norma para que el servidor interprete que se trata de un mensaje que le envias y lo inserte en el listbox, y texto es una variable que almacena el mensaje que escribiste en el textbox del cliente.
Luego, en el evento data arrival del servidor:
if left(datos, 7) = "mensaje" then
list1.additem mid(datos, 8)
end if
Mas o menos lo mismo para las respuestas por parte del servidor...
Un saludo


Título: Re: Enviar un textbox con VB
Publicado por: p0w3r f1y en 19 Mayo 2005, 21:19 pm
También se puede hacer de esta forma ( es la que uso yo ):
Para enviar cualquier orden primero mandas el comando, separado de lo que varía ( Ej: comando: "CHAT", lo que varía: "hola....")
Y para enviarlo pues unes las dos cadenas con un carácter no muy común o con otra cadena. (ej: WS.sendata "CHAT" & "|||" & variabletexto)
Eso lo haces para todos los comandos, aunque sea por ejemplo abrir el cd y no haya que enviar dato que varíe, pues pones por ej: "ABRIRCD|||OK"
Y luego en el arrival del winsock "partes" la cadena y con un select case vas buscando en función del comando. Ej:
Código:
'dentro del winsock
Dim datos as string
WS.getdata datos
Dim separar as variant
separar=Split(datos, "|||")' crea un array en el que mete los
'datos separados por |||, puede haber todos los comandos
'secundarios que quieras
If ubound(separar) then' si existe algun array....
Select case separar(0) ' aqui estará el comando, ej: "CHAT"
Case "CHAT"
Msgbox separar(1) ' en separar(1) estaría el texto, ej: "Hola"
Case...
Case...
End Select
End if


Espero que te sirva.
Salu2


Título: Re: Enviar un textbox con VB
Publicado por: Kizar en 20 Mayo 2005, 00:54 am
Hola

Estoy provando con el codigo que a puesto p0w3r f1y.

Pero no lo entiendo bien y me da un error "el subindice esta fuera del intervalo"

Aunque el servidor recibe correctamente los datos "CHAT|||el mensaje"

Aqui esta el codigo a ver si me podeis ayudar o sino ponerme un ejemplo con un cliente y un servidor.

CLIENTE:

Código:
Private Sub Command_enviar_Click()
Dim datos As String
datos = "CHAT" & "|||" & Text_nick.text & " :  " & Text_mensaje.text
List_chat.AddItem Text_nick.text & " :  " & Text_mensaje.text
Form_menu.Winsock_menu.SendData datos
Text_mensaje.text = ""
End Sub

SERVIDOR:

Código:
Dim datos As String
Dim separar As Variant
Winsock_server.GetData datos
separar = Split(datos, "|||")
' crea un array en el que mete los
'datos separados por |||, puede haber todos los comandos secundarios que quieras
If UBound(separar) Then ' si existe algun array....
Select Case separar(0) ' aqui estará el comando, ej: "CHAT"
Case "CHAT"
MsgBox separar(1) ' en separar(1) estaría el texto, ej: "Hola"

End Select
End If

Gracias de todas maneras.
Salu2


Título: Re: Enviar un textbox con VB
Publicado por: p0w3r f1y en 20 Mayo 2005, 18:28 pm
Igual es por lo de If Ubound(separar), no me acuerdo muy bien de como iba eso, prueba con if not ubound(separar), o quítalo....Esque hace mucho que no hago nada en vb, pero eso sirve para que si te mandan un comando "mal construido", osea, que no tenga el separador que tu has asignado pues no entre en el select.
Salu2