Salut à tous :)
Voilà, après une année sur la touche, je décide de reprendre un petit peu mon bot, et j'avoue avoir quelques difficulté sur certains points.
J'aimerai savoir ce que le serveur me demande d'envoyer pour la connexion. Pour cela je jete un coup d'oeil sur WPEpro, il me dit d'envoyer l'id 4. Un petit tour sur les sources, je trouves l'id, et je dois envoyer les informations suivante :
public var version:Version;
public var lang:String = "";
public var login:String = "";
public var credentials:Vector.<int>;
public var serverId:int = 0;
public var autoconnect:Boolean = false;
public var useCertificate:Boolean = false;
public var useLoginToken:Boolean = false;
public static const protocolId:uint = 4;
Je regarde le packet que je reçois, mais j'ai du mal à l'identifier a partir des ces infos :/
Je prends les 5 premiers bytes par exemple.
[00 12 01 1C 01]
Je décortique le header, je trouve ca :
ID : 4.
Taille de taille : 2.
Taille : 01 1C => 284.
Du coup, je ne vois pas ce à quoi correspond le 01 :/
Ensuite la version, normal : [02 06 04 E5 8D 01 00]
Ensuite, [00 02 66 72] pour la langue avec la taille sur 2 octets et 66 pour "f" et 72 pour "r". Puis la taille du pseudo + pseudo, normal. Après viens le "crédentials"... x)
Je suppose que les deux premiers octets suivants le pseudo représente la taille du crédenmachin x) donc codé sur 256 octets chez moi. Ensuite, 256 octets plus lui, je dois avoir le serveur sur 4 octets (malheureusement non x)) donc et les trois booleen qui représente autoconnect (je suppose que c'est la case coché dans le client), mais le deux suivants, je ne sais pas :/
Donc au final, sur ce packet, je me pose 4 question :
-> Qu'est ce que le crédential (apparemment le mdp crypté, mais de quel maniere ? :x) ?
-> Qu'est ce que useCertificate ?
-> Qu'est ce que useLoginToken ?
-> Sur les trois booléens, étant donnée qu'un seul = 1 bit, comment sont ils écrit exactement dans le packet ?
Merci =)
Edit : après une petite recherche, j'ai remarqué que le packet 3 nous donne des infos sur un "salt" (systeme de hash) et une clé RSA. Après, je ne vois pas du tout comment encrypter le mdp avec ces infos.
PS : je travaille en C / C++