- Inscrit
- 23 Decembre 2016
- Messages
- 6
- Reactions
- 0
Bonjour à tous,
J'ai commencé il y a trés peu de temps l'analyse des paquets de D2 afin de créer si cela se concrétise un bot full socket (sûrement en c++).
Cependant, je n'arrive pas à comprendre la structure des paquets : Exemple
J'ai tapé lol dans le chat et j'ai envoyé ce paquet.
J'ai retapé lol dans le chat et j'ai envoyé ce paquet (j'ai envoyé plusieurs autres messages pour faire des tests entre)
J'ai pris les 14 premiers bits et j'ai donc eu l'ID du paquet : 861, puis j'ai aussi vu que la taille était encodée sur 1 octet, trés bien.
36 en hexa donne 54 en décimal, j'ai compté pour m'assurer d'avoir juste, 16*2+22= 54, tout va bien.
lol est sur 3 octets si je comprends bien, (6C 6F 6C), et l'octet juste avant sert à annoncer la taille du message (03).
Je comprends jusque là, mais ensuite, ce que je ne comprends pas, c'est pourquoi les 2 paquets sont différents ?
J'ai regardé dans les sources comment était sérialisés et désérialisés les paquets, mais je ne comprends pas
J'ai jamais fait d'AS auparavant, et je débute la POO, voilà, je ne demande pas à ce qu'on fasse les choses à ma place, mais plutôt à comment comprendre les fonctions de sérialisation et de désérialisation.
Il est possible que j'utilise du vocabulaire de manière maladroite, merci de me le signaler si c'est le cas.
Merci d'avance.
J'ai commencé il y a trés peu de temps l'analyse des paquets de D2 afin de créer si cela se concrétise un bot full socket (sûrement en c++).
Cependant, je n'arrive pas à comprendre la structure des paquets : Exemple
0D 75 36 00 03 6C 6F 6C 00 8C 70 3E EC 72 BD 87
63 EB 29 D2 BB 65 31 23 AC 72 B7 10 63 8E 9D A1
9C 84 4A DC B1 5D 1B D8 22 48 02 D2 95 69 08 52
B7 CD 6B E2 A7 13 FB E0 9A
63 EB 29 D2 BB 65 31 23 AC 72 B7 10 63 8E 9D A1
9C 84 4A DC B1 5D 1B D8 22 48 02 D2 95 69 08 52
B7 CD 6B E2 A7 13 FB E0 9A
J'ai tapé lol dans le chat et j'ai envoyé ce paquet.
J'ai retapé lol dans le chat et j'ai envoyé ce paquet (j'ai envoyé plusieurs autres messages pour faire des tests entre)
0D 75 36 00 03 6C 6F 6C 00 46 56 B3 FE 79 3D 7D
32 08 67 85 46 07 27 F4 15 63 F0 94 C1 AE AC 7F
CE F8 B6 52 F3 A2 CB 20 41 2C 87 A3 EA 9E 24 A9
5D FC 0E BF 07 FF 82 12 4A
32 08 67 85 46 07 27 F4 15 63 F0 94 C1 AE AC 7F
CE F8 B6 52 F3 A2 CB 20 41 2C 87 A3 EA 9E 24 A9
5D FC 0E BF 07 FF 82 12 4A
J'ai pris les 14 premiers bits et j'ai donc eu l'ID du paquet : 861, puis j'ai aussi vu que la taille était encodée sur 1 octet, trés bien.
36 en hexa donne 54 en décimal, j'ai compté pour m'assurer d'avoir juste, 16*2+22= 54, tout va bien.
lol est sur 3 octets si je comprends bien, (6C 6F 6C), et l'octet juste avant sert à annoncer la taille du message (03).
Je comprends jusque là, mais ensuite, ce que je ne comprends pas, c'est pourquoi les 2 paquets sont différents ?
J'ai regardé dans les sources comment était sérialisés et désérialisés les paquets, mais je ne comprends pas
Code:
public function serializeAs_ChatClientMultiMessage(param1:ICustomDataOutput) : void
{
super.serializeAs_ChatAbstractClientMessage(param1);
param1.writeByte(this.channel);
}
Code:
public function deserializeAs_ChatClientMultiMessage(param1:ICustomDataInput) : void
{
super.deserialize(param1);
this.channel = param1.readByte();
if(this.channel < 0)
{
throw new Error("Forbidden value (" + this.channel + ") on element of ChatClientMultiMessage.channel.");
}
}
Il est possible que j'utilise du vocabulaire de manière maladroite, merci de me le signaler si c'est le cas.
Merci d'avance.