Structura pachete Yahoo Messenger
Vorbeam intr-un alt articol despre protocolul Yahoo Messenger (pe scurt, YMSG).
In acel articol, vorbeam din perspectiva teoretica despre acest protocol, care este unul closed-souce (protocol nativ Yahoo, nedezvaluit publicului). In prezentul articol voi vorbi despre headerele pachetelor si structura lor.
Dupa cum spuneam acolo, pachetul este structurat in 2 sectiuni intre care este introdusa si cheia de autentificare:
- Header
- Corp Pachet
Acesta incepe INTOTDEAUNA cu YMSG urmat de caracterul null ( chr(0) in PHP ).
Dupa caracterul null este trimisa versiunea protocolului ce va fi utilizat urmata de 1 caracter null si un spatiu.
Dupa aceste 2 caractere null se trimite valoarea intreaga din impartirea lungimii corpului pachetului la 256.
Daca am trimis intregul din impartirea lungimii la 256, urmeaza trimiterea modulului din aceasta impartire dupa care se mai trimite un caracter null.
Urmeaza cea mai importanta parte a header-ului si anume ceea ce voi numi mai departe HEADER PACHET (pentru ca, practic, este sigura variabila din header) urmata de un caracter null si 3 spatii.
Despre valorile ce le pot lua headerele voi vorbi mai tarziu in acest articol sau intr-un articol viitor, deoarece sunt destul de multe.
1. Corpul pachetului:
In corpul pachetului sunt transmise informatii despre utilizatorul-sursa, utilizatorul-destinatie, mesaj, status, etc
Structura nu este standard ca in cazul header-ului, avand doar 3 constante care se regasesc in toate pachetele si anume: utilizatorul-sursa, utilizatorul-destinatie si delimitatorul.
Delimitatorul este caracterul 192 alaturi de caracterul 128.
Exemplu pachet YMSG pentru trimitere mesaj:
Variabile:
Sursa = Id-ul sau profilul utilizatorului autentificat.
Delimitare = caracterul 192 alaturi de caracterul 128.
Destinatie = Id-ul sau profilul utilizatorului caruia ii este destinat mesajul.
CheieAuth = Cheie de autentificare generata la autentificarea pe serverul yahoo (scs.msg.yahoo.com:5050).
Mesaj = Mesajul transmis utilizatorului-destinatie.
1 . Delimitare . Sursa . Delimitare . 5 . Delimitare . Destinatie . Delimitare . 14 . Delimitare . Mesaj . Delimitare . 97 . Delimitare . 1 . Delimitare . 63 . Delimitare . Delimitare . 64 . Delimitare . 2 . Delimitare . 1002 . Delimitare . 1 . Delimitare . 266 . Delimitare . 0 . Delimitare
Pentru intrebari legate de acest protocol astept feedback.

February 19th, 2009 at 7:15 AM
[...] YMSG Filed in Yahoo Messenger on Feb.19, 2009 Dupa cum spuneam intr-un alt articol, headerele YMSG difera printr-un singur caracter. Acest caracter este unul dintre cele mai [...]
June 10th, 2009 at 3:12 PM
Daca ai putea sa dai mai multe detalii despre CheieAuth sau sa`mi dai adresa ta de email ar fi perfect!
October 14th, 2009 at 8:37 PM
Exemplul ala de pachet pentru trimitere mesaj e valabil pentru YMSG12, care a cam fost scos din folosinta. Din ce am studiat eu, pachetul are alta structura acum.
October 21st, 2009 at 9:07 PM
Acelasi pachet este compatibil si cu YMSG15/16/17. Diferenta este ca Yahoo Messenger 9 trimite 2 pachete cu header-ul 0×06 la care difera o cheie (primul pachet are valoarea 0, in al 2-lea pachet are valoarea 1)
July 6th, 2010 at 7:12 PM
buna de curand s-a lansat yahoo.pulse si acolo in loc de adresa “username”apare 26 de caractere , in sursa paginii mai apare dar cu 39 de caractere,cum as putea sa aflu adresa”username”?nu ma intereseaza parola, poate cineva sa-mi spuna?va multumesc