Cliente-Servidor con Winsock

Iniciado por amtapias, 4 Marzo 2006, 13:57 PM

0 Miembros y 1 Visitante están viendo este tema.

amtapias

Estoy haciendo un troyano en visual basic y ahora me he quedado estancado en un sitio por el siguiente motivo, lo expongo aqui y a ver si me podeis echar una ayudilla.

Me gustaría saber como puedo mandar varias variables entre el cliente y el server y el winsock solo puede descargar una.

Haber si me explico mejor con un ejemplo:

Me gustaria tener por ejemplo una variable que se utilice para actualizar mi explorador de archivos remoto
Otra para bromas (Dim sBroma as String)
Otra para enviar mensajes (Dim sMensaje as String)
Otra para el chat con la victima (Dim sChat as String)
etc.

Como podría solucionar esto ya que el winsock podria estar solo con una de estas "Winsock.GetData sBroma"

Muchas gracias y espero haberme explicado bien

Llorx

No llego a entender... pero bueh, yo te respondo con lo que entendí.

Quieres enviar todas las variables de una sentada no? Pues entonces las unes todas separadas por un carácter en especial (Chr(255) por ejemplo) y cuando recibas la info (winsock.getdata variables) separas la cadena basándote en el carácter especial que has añadido

variables = variable1 & chr(255) & variable1 & chr(255) & variable3
winsock.send variables


i = 0
winsock.getdata variables
do until variables = ""
variable(i) = left(variables,instr(variables,chr(255))
variables = right(variables,len(variables)-instr(variables,chr(255)
i = i + 1
doevents
loop

Mas o menos... xD

Llorx

También puedes enviar una cadena que especifique el tamaño de cada variable y el número de éstas:

numerodevariables = 3
variables = numerodevariables & chr(255) & len(variable1) & chr(255) & len(variable2) & chr(255) & len(variable3) & chr(255) & variabel1 & variable2 & variable3
winsock.send variables


i = 1
NUMERODEVARIABLES = left(variables,instr(variables,chr(255))
variables = right(variables,len(variables)-instr(variables,chr(255))
do until (i - 1) = numerodevariables
doevents
len(i) = left(variabes,instr(variables,chr(255))
variables = right(variables,len(variables)-instr(variables,chr(255))
i = i + 1
loop
i = 1
do until variables = ""
doevents
variable(i) = left(variables,len(i))
variables = right(variables,len(variables)-len(i))
loop




Y la otra forma es la más segura (Más o menos) pero si hay un ping alto es la más lenta. Se trata de enviar un comando que avise al cliente que va a recibir X número de variables, el cliente contesta que ha recibido el comando y que espera respuesta. Después enviar una variable, el cliente la guarda y envia que ya la ha recibido, después la siguiente, etc... etc...

Yo me decantaría por la segunda, ya que¡, en la primera, si alguna variable contiene chr(255) la cosa se desbarata.
Saludox, espero que te sirva.