eMc2H 16 - Winsock en VB
by ^kurt^
Hola gente! Vamos a hablar un poquito de lo que es trabajar con winsock en VB. Realmente es algo sumamente interesante, por lo menos para mi, y vamos a ver como crear un programa de control remoto, o un troyano depende como lo quieran llamar, depende sus fines...
Por comenzar, tienen que saber que el control winsock no viene como predeterminado en la ficha General, asi que le dan boton derecho y ponen Componentes, allí buscan el control Microsoft Winsock 6.0 y lo agregan. Vamos a pensar como vamos a diagramar nuestro programa, y es realmente sencillo.
Pensemos en esto, hay una computadora que tiene ejecutado nuestro programa que responde a nuestros mensajes, esta persona (servidor) tiene un puerto abierto por nuestro programa y esta a la escucha. Bien, nosotros tenemos el programa cliente, que lo que hace es conectarse a una IP determinada, a un puerto determinado (el puerto del server claro esta).
Ahora, si nosotros programamos al servidor, para que cuando le llege data al puerto con un mensaje como "reiniciar!" reinicie la pc, no hay mucha ciencia!, asi podemos hacer con muchisimas cosas, reiniciarle la pc, apagarla, mandarle mensajes, verle los archivos, compartir musica, chatear, etc
Bien, ahora tienen que saber unos conceptos basicos del winsock.
Las propiedades mas usadas son:
winsock.connect IP, puerto
claro, nos conectamos a un IP y a un puerto determinado
winsock.senddata data
mandamos data al IP conectado
winsock.close
cerramos el puerto
winsock.localport
elejimos un puerto para despues ponerlo a la escucha
winsock.listen
ponemos un puerto a la escucha
winsock.accept
para aceptar las conecciones
winsock.getdata
resivimos lo que llega al puerto, aca podemos utilizar una variable para almacenar lo que nos llega.
Los eventos mas utilizados son:
winsock_Close()
cuando cerramos el winsock
Winsock_Connect()
al conectarse a un puerto
Winsock_ConnectionRequest (ByVal requestID As Long)
nos piden la petición de aceptarles la conección aca se puede responder con un winsock.Accept requestID
Winsock_DataArrival(ByVal bytesTotal As Long)
aca es cuando nos llega Data a nuestro puerto a la escucha algo tipico es declarar una variable y poner winsock.getdata Variable para obtener la data en la variable y apartir de allí comenzar a trabajar
Bien, como les habia comentado, las posibilidades de esto son muy grandes y estan en cada uno, lo que tienen que aprender a manejar bien son funciones porque no siempre los mensajes van a ser como "reiniciar!"
Podria ser que estamos haciendo un pequeño chat, y en el mensaje le tenemos que mandar, el el y otras cosas...
Ahi, vamos a tener que saber "dividir" de la Data el nick, el mensaje, etc Para esto vamos a utilizar funciones, como Mid, Left, Right, InStr, InStrRev, etc.
Aca les dejó un troyano apenas comenzado, que hace basicamente 2 cosas muy sencillas, reinicia o apaga la pc, y envia mensajes de error, etc.
Ademas, por como esta armado el troyano, no esta preparado para su autoejecución a la hora de reiniciar windows, fijense como les gustaria camuflarlo más si por registro, o en la carpeta de inicio de windows, todo eso queda a su eleción. Asi que espero que puedan continuar el codigo, el cual esta muy explicado, y llegar a hacer cosas interesantes. Lo pueden tomar como referencia para hacer otro tipo de cosas, espero que les sea de utilidad.
Piensen en aproximarse a las APIs de windows, las cuales nos permiten acceder a funciones propias de windows, como lo son reiniciar la pc, ya que por el propio VB no lo podriamos lograr. Con APIs se pueden hacer infinidad de cosas, como un ejemplo, Obtener el directorio de windows, obtener la versión de windows, obtener los recursos disponibles, estado de la memoria, espacio libre en el disco, etc Para esto, pueden ver paginas web buscando APIs o bien, utilizar una herramienta que viene junto al VB en en "Microsoft Visual Basic 6.0" --> "Herramientas de Microsoft Visual Basic" --> "Visor de texto API".
Combinandolo con winsock, esto puede llegar a ser realmente poderoso.
Escribanme para comentarios, sugerencias o dudas de este articulo y que tema les gustaria que exprese en la proxima enzine, me parece que base de datos estaria bueno, talvez convinandolo con winsock, algo de consultas pero atravez de la red seria interesante.
saludos, Kurt
Kurt@hackerss.com - Kurt@emch2.com