Título: [Delphi] Creacion de un IRC Bot Publicado por: BigBear en 24 Septiembre 2013, 21:37 pm [Titulo] : Creacion de un IRC Bot
[Lenguaje] : Delphi [Autor] : Doddy Hackman [Temario] -- =================-------- 0x01 : Introduccion 0x02 : Conectando con el servidor 0x03 : Listando usuarios 0x04 : Mandar mensajes 0x05 : Recibir privados 0x06 : Reconocer comandos 0x07 : Testeando 0x08 : Bibliografia -- =================-------- 0x01 : Introduccion Bueno , voy a empezar este manual sobre como hacer un bot irc. Para este manual necesitan tener instalado TIdIRC y TPerlRegEx en Delphi , el primero me vino por defecto en Delphi 2010 y el segundo lo pueden bajar e instalar aca (http://www.regexguru.com/2008/08/tperlregex-for-delphi-2009/) Nota : Proximamente presentare mi irc bot llamado Claptrap en honor al robot de bordelands xDD. ¿ Que es IRC ? Segun wikipedia , IRC (Internet Relay Chat) es un protocolo de comunicación en tiempo real basado en texto, que permite debates entre dos o más personas. Se diferencia de la mensajería instantánea en que los usuarios no deben acceder a establecer la comunicación de antemano, de tal forma que todos los usuarios que se encuentran en un canal pueden comunicarse entre sí, aunque no hayan tenido ningún contacto anterior. Las conversaciones se desarrollan en los llamados canales de IRC, designados por nombres que habitualmente comienzan con el carácter # o & (este último sólo es utilizado en canales locales del servidor). Es un sistema de charlas ampliamente utilizado por personas de todo el mundo. 0x02 : Conectando con el servidor Lo de siempre , creamos un proyecto nuevo de la siguiente forma : File->New->VCL Forms Application , como en la siguiente imagen. (http://doddyhackman.webcindario.com/images/uno.jpg) Una vez hecho esto vamos a crear la interfaz para todo el manual. Lo que vamos a necesitar es usar : 6 Labels 3 Edit 3 Botones 1 ListBox (para los usuarios conectados) 2 Memo Y los componentes TPerlRegEx y IdIRC Una imagen de como deberia quedar : (http://doddyhackman.webcindario.com/images/diecinueve.jpg) Una vez hecho esto llego la hora de realizar la conexion , entonces hacemos doble click en el boton de "conectar" o el nombre que le pusieron ustedes para poner el siguiente codigo : Código
Una imagen de como quedo : (http://doddyhackman.webcindario.com/images/veinte.jpg) Con esto ya tenemos la conexion entonces usamos el segundo boton llamado "desconectar" o el nombre que ustedes le pusieron , hacemos doble click y agregamos este codigo : Código
Se podria decir que con esto ya tenemos para conectarnos y desconectarmos del canal sin ningun problema. Pero para variar las cosas vamos a usar el memo1 como consola de las cosas que pasan durante la conexion , entonces vamos al diseño del formulario , buscamos el IdIRC1 , le hacemos un solo click y nos fijamos en object inspector para despues ir a la parte de eventos , buscamos el evento OnRaw , le hacemos doble click y agregamos este codigo : Código
Una imagen de donde esta la parte del evento y de paso muestro como quedo el codigo : (http://doddyhackman.webcindario.com/images/veintiuno.jpg) Eso seria la parte de como conectarnos y desconectarnos de un canal irc. 0x03 : Listando usuarios Esta es la parte en la que usamos PerlRegEx , que es un componente que nos permite usar las expresiones regualares de Perl en Delphi. Entonces buscamos el evento "NicknamesListReceived" en el componente IdIRC1 que esta en el formulario para hacer doble click en el evento y poner el siguiente codigo. Código
Les dejo una imagen de como nos deberia quedar el codigo y de donde esta el evento que usamos. (http://doddyhackman.webcindario.com/images/veintidos.jpg) 0x04 : Mandar mensajes Mandar mensajes usando el componente de indy es muy facil , solo tenemos que hacer doble click en el tercer boton , en mi caso le puse de texto "spam now" , ustedes pueden ponerle el que quieran , cuando este en el codigo del formulario en la parte del tercer boton pongan el siguiente codigo. Código
Una imagen de como les deberia quedar el codigo : (http://doddyhackman.webcindario.com/images/veintitres.jpg) 0x05 : Recibir privados Otra cosa facil de hacer gracias a el componente de indy es que se pueden recibir y leer los mensajes privados que nos mandan , para hacer esto vamos al evento OnPrivateMessage de IdIRC y ponemos el siguiente codigo. Código
Una imagen de donde esta el evento y como quedo el codigo. (http://doddyhackman.webcindario.com/images/veinticuatro.jpg) 0x06 : Reconocer comandos Esta es la parte mas importante en un irc bot , que es para poder mandar comandos al bot o hacer cierta cosa como un SQLiScanner o AdminFinder u otra cosa para dichoso Defacing. Para hacer esto nos vamos a basar en mensajes privados , de esa forma no estamos delatando al bot en el canal publico , entonces volvemos al evento OnPrivateMessage del punto anterior para actualizarlo con este codigo nuevo : Código
Una imagen de donde esta el evento y de como quedo el codigo. (http://doddyhackman.webcindario.com/veinticinco.jpg) 0x07 : Testeando Una vez hecho todo esto podemos probar como quedo todo , les dejo unas imagenes que de como funciona. (http://doddyhackman.webcindario.com/images/veintiseis.jpg) (http://doddyhackman.webcindario.com/images/veintisiete.jpg) (http://doddyhackman.webcindario.com/images/veintiocho.jpg) Eso seria todo 0x08 : Bibliografia http://es.wikipedia.org/wiki/Internet_Relay_Chat http://delphiallimite.blogspot.com.ar/2007/09/creando-un-cliente-de-chat-irc-con-indy_18.html http://delphiallimite.blogspot.com.ar/2007/09/creando-un-cliente-de-chat-irc-con-indy.html --========-- The End ? --========-- Version PDF (http://doddyhackman.webcindario.com/descargas/creaciondeunirc.pdf) |