Título: como reparto esto? Publicado por: Belial & Grimoire en 2 Septiembre 2007, 18:52 pm hola
tengo un problema... estoy haciendo un programa para captar la pantalla del escritorio junto con un keylogger... como lo hacen algunos troyanos.... el problema que tengo es que no logro repartir la transferencia de datos por ejemplo, tengo en el cliente esto Código: Private Sub ws_DataArrival(ByVal bytesTotal As Long) El problema es que si coloco todo esto no funcionan los dos... solo funciona 1 ya que si unicamente coloco esto... el keylogger funciona Código: Private Sub ws_DataArrival(ByVal bytesTotal As Long) Y si unicamente coloco esto... puedo capturar la pantalla sin problemas... Código: Private Sub ws_DataArrival(ByVal bytesTotal As Long) Pero si coloco los dos juntos... solo puedo utilizar 1 de ellos... porke si hago una captura de pantalla todo funciona bien, pero si utilizo el keylogger me aparece un mensaje que dice que una parte de codigo esta fuera de intervalo.... Código: If Len(archivo(i)) < 20000 Then como puedo hacer para separarlos?... ya utilize... Código: Exit Sub ---> para separar el codigo del keylogger y del codigo para capturar la pantalla Pero solo me deja utilizar uno de ellos... Alguien tiene alguna idea...? Espero puedan ayudarme Gracias :P Título: Re: como reparto esto? Publicado por: odeONeSs en 2 Septiembre 2007, 18:57 pm Intentalo haciendolo con 2 sockets, uno para las capturas de pantalla y otro para el keyloger. Un saludo ;D
Título: Re: como reparto esto? Publicado por: Belial & Grimoire en 2 Septiembre 2007, 19:08 pm hola
bueno.. de hecho asi ya lo tenia, pero lo que intento es que el programa unicamente habra un solo puerto, y que el anterior programa que tenia abria varios puertos pero los mensajes de los firewalls y antivirus te avisaban varias veces y si una vez es extraño, dos o mas es todavia mas extraño...y eso es lo que intento evitar... o alguien sabe como puedo hacer esto sin tener que abrir tantos puertos con el socket...? Título: Re: como reparto esto? Publicado por: cobein en 3 Septiembre 2007, 05:37 am Mira por lo que veo el problema parece estar es como manejas los datos, lo que tenes que hacer es usar un buffer antes de separarlos por que lo que envias no siempre es lo que llega.
Para darte una idea lo que podes hacer es usar "|" para indicar el final de un paquete y a su vez un "sub" delimitador para separar la informacion dentro del paquete. cuando llega la informacion lo que haces es ponerla en el buffer buffer = buffer & nuevos_datos despues lo que haces es usar la funcion datos()= split(buffer,"|") si lo que tenes en el buffer esta "completo" que no hay un paquete por la mitad al usar el split el ultimo dato "ubound(datos)" tendria que ser vbnullstring en ese caso lo que haces es for i = 0 to ubound(datos) aca iria el if left(datos(i),3)= "env" next buffer= vbnullstring y si el caso es que el ultimo paquete esta incompleto ubound(datos)<>vbnullstring lo que haces es guardarlo for i = 0 to ubound(datos) -1 aca iria el if left(datos(i),3)= "env" next buffer= ubound(datos) & "|" Bueno espero que sea de ayuda Título: Re: como reparto esto? Publicado por: Belial & Grimoire en 3 Septiembre 2007, 07:35 am hola
hice mas o menos lo mismo y para que no interfiriera los datos ... los separe con select case y ya lo logre... y asunto arreglado o por lo menos hasta ahora... jeje.. gracias por la ayuda ;D |