Listo aqui les traigo un tutorial de como trabaja MSN y como podrias hacer tu propio MSN. listo este tutorial si tienes una web y lo quieres poner en tu web por fa avisame, eres libre de copiarlo pero por favor avisame aqui esta
-----------------------------o-------------------
COMO TRABAJA MSN Y COMO PUEDES HACER TU PROPIO MSN USANDO VB.
CREADO POR eLGiOva
Ya haz estado usando MSN por un tiempo mirando como trabajo. este documento no solo te va a decir como MSn trabaja, pero tambien te va a decir como hacer tu propio MSN.
listo vamos a dividir el trabajo de MSN en dos faces.
*Fase de autenticasion
*Fase de Instataneofase
La fase de autentificación consiste en hacer login al servidor de MSN y
también agregar contactos en tu lista. de contastos de tu lista. La fase de mensaje instantaneo consiste mandar/aceptar inviataciones para iniciar una seccion de mensaje instantaneo y tambien mandando/reciviendo mensajess. El protocolo d MSN esta basado e ASCII, en otras palabras es en puro ingles.
La primera fase consisted en conectarte al servidor de MSN Messanger. En este caso nos devemos conectar a (64.4.13.58 en el puerto 1863 (MSN messenger trabaja atraves del puerto 1863).
Una vez la conexion esta hecha devemos iniciar el proceso del login. El primer paso es al version En este caso el cliente recive/manda la version que puede soportar al sevidor y espera a que el servidor responda.
VERO MSNP7 MSNP6 MSNP5 MSNP4 CURO
En el protocolo de MSN un "trial id" o una identificacion de intente es mandado con cada comando. The "trial Id" empiesa desde 0 y responde satisfactoriamente a los comandos que envia el cliente.
El servidor responde asi:
VERO MSNP7 MSNP6 MSNP5 MSNP4
El cliente y el servidor han acceptado la version en la cual se van a comunicar.
Ahora el cliente manda una orden al servidor preguntandole por el nombre del paquete de seguridad el cual soporte la autenticacion.
INF1
No como yahoo, rebitt y otrosm MSN messanger no manda el password com es. lo que pasa es que lo encripta.
El password mientras esta siendo enviado esta seguro por que no sera facil de desencriptar si alguien esta monitoriando tu puerto.
El servidor responde con esto:
INF5 MD5
MDS es el nombre del paquete de seguridad que el servidor soporta.
Aora el cliente manda el "user Id" o la identificacion del usuario en este casa el E-mail al servidor, asi:
USR2 MDS I gio_ova16@hotmail.com
Aqui el servidor hace un chequeo a ver si contiene todos los detalles sabre el usuario para la autenticasion
y si no, entonces manda la siguiente respuesta:
XFR 2 NS 64.4.13.55: 1863 0
Lo que el servidor quiere decir es que el cliente se deveria conectar al "Notification Server" o Servidor de Notificasion (NS) en 64.4.13.55 en el puerto 1863.
Cerramos todas las conexiones y repetimos todos los pasos mientras estamos conectados al otro servidor osea 64.4.13.55
(Cliente) VER 3 MSNP7 MSNP6 MSNP5 MSNP4 CVRO
(Server) VER 3 MSNP7 MSNP6 MSNP5 MSNP4
(Cliente) INF 4
(Servidor) INF 4 MD5
(Cliente) USR MD5 I gi_ova16@hotmail.com
Ahora el servidor al cual estamos conectando tiene la revelante informacion sobre el usuario tratando de entrar o login. El servidor responde ASI:
USR 5 MD5 S 98904851.1851137130
El String o la cadena mandada por el servidor es "MD5 Hash", es un "Hash" mandado por el servidor y es usado en el proceso de Autenticasion. Ahora el cliente tiene que mandar el password el cual esta encriptado usando MD5.
En efecto el cliente tiene que mandasr el unico MD5 equibalente de el MD5 "Hash" ejemplo: 989048851.1851137130 en este ejemplo, el caso y el password estan convinados ejemplo MD5 equibalente a (Hash+Pass). En este caso sale siendo 3b7926d277068ec4957a0c40598ff21.
USR 6 MD5 S 3b7926d277068ec4957a0c40598ff21
Si el password es correcto, entonces el servidor responde ASI:
USR 6 OK gi_ova16@hotmail.com eLGiOva
La ultima palabra es el nick o nickname con el cual el usuario es conosido.
->En la nueva version del protocolo (MSNP7) el servidor manda informacion adicional sobre el usuario y el codigo de autenticasion o algo similar a un cookie que puede ser usado para otras funciones.
MSG Hotmai Hotmail 362
MIME-Version: 1.0
Content-Type: Text/x-msmsgspro file; charset=UT
LoginTime: 1011252477
Email Enabled: 1
MemberIdHigh: 84736
MemeberIdLow: 1434729391
Lang_preference: 103
PreferredEmail 1: gi_ova16@hotmail.com
Country: US
PostalCode:
Gender: M
Kid: 0
Age: 15
Sid: 517
Kv: 2
MSP Auth: 2AAAAAAAADU0p4uxxxJtDJozJS1UTS0i7YpwnC9PUHRv56YKxx xCTWmg$$
Ahora ya estamos logged o conectados al servidor, pero nuestro Status o estado todavia es Offline o Sin Conexion. Nosotros devemos estar online o en linea para poder mandar y recivir mensajes. El cliente hace esto de la siguiente forma:
CH6 7 NLN
El servidor responde con los contactos que estan en linea y los varios estados:
CHG 7 NLN
ILN 7 NLN blahblah@hotmail.com
ILN 7 AWY blank@hotmail.com
ILN BSY example@hotmail.com
MSG Hotmail Hotmail 223
MIME-VERSION: 1.0
Content-Type: Text/x msmsgsintialemailnotification; charset=UTF-8
Inbox-URL: /cgi-bin/HoTMail
Folders-URL: /cgi-bin/Folders
Port-URL: http://www.hotmail.com
EL siguiente comando para ser mandado pertenese a la version del cliente que actualmente esta siendo usado. El cliente manda al servidor el numero de la version y tambien informacion sobre la maquina como OS y los disenadores.
CVR 8x0409 win 4.10 i386 MSMSGS 4.5.0127 MSMSGS
aqui 0x409 win 4.10 i386 especifica que el cliente esta usando Win2 98 en una Intel Microprocessor y MSMSGS 4.5 0127 MSMSGS especifica la version y Fabricador no de msmsgs.exe (basicamente no la version de MSN Messenger)
El servidor responde con el URL para bajar la ultima version y otra informacion adicional.
Sin embargo no es necesario mandar este comando CVR, el protocolo de MSN va a trabajar correctamente a no ser de que mandes este comando.
Para cojer la lista de contactos devemos mandar este comando:
LST 9 RL
Al mandar este comando el servidor manda la lista de contactos en "Reverse form" o forma de vuelta, el "reverse form" es basicamente una lista de usuarios que te pueden ver cuando estas online o en linea y mandarte mensajes. Alternativamente tambien puedes pedirle al servidor un "forward list" o siquiente lista. con este comando: LST 9 FL. "Forward list" contiene una lista de todos los contactos que el usuario a anadido a su lista.
El servidor responde de esta manera:
LST RL 69 1 19 gi_ova16@hotmail.com eLGiOva
LST RL 69 2 19 acid_burn@hotmail.com Acid
LST RL 69 3 19 Rojodos@hotmail.com Rojodos
LST RL 69 4 19 acidrRain@hotmail.com OdRa
LST RL 69 5 19 Odracir@hotmail.com eLGiOva
LST RL 69 6 19 maurolo@hotmail.com mauro
**Cada vez que un contacto cambia su estado a online o entra a MSN, el serbvidor (NS) nos manda a nosotros el siguiente comando:
NLN 10 NLN atroj_ast@hotmail.com AtRoj
Y cuando un contacto se desconecta o cambia su estado a Offline o Sin conexion, el serivor manda el siguiente comando:
FLN 10 FLN maurolo@hotmail.com MaUroLo
Con el protocolo MSNP7 MSN a introducido un nuevo reto de autenticasion del mecanismo, el servidor de MSN manda la clave de autenticasion en la cual el usuario tiene que acertar correctamente para continuar con la seccion:
CHL 0 20881396011366812350
El cliente tiene que mandar el MD5 equibalente de esta cadena, la cual es formada al anadir el "hash" o el picadillo con la cadena "Q1P7W2E4J9R8U3S5". Entonces la cadena final va a ser mandada al servidor va a ser el md5 equibalente de 20881396011366812350Q1P7W2E4J9R8U3S5
Ejemplo :
MD5string(20881396011366812350Q1P7W2E4J9R8U3S5 )
entonces la respuesta del Cliente va a ser algo asi:
QRY 18 msmsgs@msnmsgr.com 32
0212eaad0876afb8505859ca75d21a78
aqui el 18 es un "Trial Id" o una Identificasion de Intento. Remplazalo por el "trail id" de tu programa.
EL servidor va a responder de la siguiente forma si la Autenticasion es correcta:
QRY 18
Visita www.MaCroTech.tk Para ver la segunda Face
Marcadores