Résolu Serialization du paquet 3

Inscrit
14 Septembre 2016
Messages
9
Reactions
0
#1
Bonjour à tous,

Ca fait longtemps que je ne suis pas venu et j'ai décidé de continuer mon travail sur le fameux paquet 3 que j'avais abandonné par manque de temps.

En m'aidant de ce topic https://cadernis.fr/index.php?threads/de-lanalyse-des-paquets.1056/#post-23126

Code:
// ID du paquet et nombre d'octets de la taille du paquet (id = 3, nombre d'octets de la taille = 2)
00 0E

// Taille du paquet (sans l'en-tête) = 341
01 55

// Taille du salt (32 octets) :
00 20

// Salt :
6A 62 77 75 70 69 38 30 40 67 4E 4E 75 4A 3D 3D 22 61 65 79 39 4B 25 76 6A 5E 48 51 48 48 29 42

// Octets a fournir à la fonction readVarInt (305 octets) pour obtenir la taille de la clé.
B1 02

// La clé a décrypter qui fait 305 octets
7B DF 5C B1 33 C8 74 CF 2C 51 8F 4F A0 9B 8C 6B B0 D5 81 55 F5 50 F3 41 42 67 A1 EC 1F 3E 24 CB 03 49 46 E7 85 06 DE E0 C3 C4 7E A8 DE B7 16 19 FA 68 F6 89 30 0F AB 42 2E D0 E3 66 5F D2 C1 42 DB D1 7E 74 6A AD 97 88 E7 07 55 99 0D 21 40 F5 85 A9 C5 BE F7 81 96 4B 64 09 70 9B 4A 64 5D 29 5D 02 24 8F 54 61 9C 3A 91 B4 0D 9A AF A2 E7 1B 05 3A 5C 72 1F F9 83 C0 F8 6F 7F 48 37 5B C2 78 BA D3 E3 D4 1B 10 E9 79 95 E4 1D D8 5C E6 42 47 A8 33 A9 86 AC F0 5E 40 9A 9B 1F D6 5F 4C 62 1D 83 B5 B0 42 30 40 0B DA 2E BA D2 4D 7C 67 AD 72 6B E1 BB BA 73 19 29 9F DA F9 87 14 85 23 4F B1 EC 6B 6A DB 6A B9 C8 4C 93 2D BC EF F9 FC 33 DF 87 58 0A F1 E1 6F 30 84 9C 21 CE F1 38 EF 3A CF 72 B5 86 E8 15 96 17 D7 ED 96 D7 10 69 8E 9A 07 E3 1D 78 B0 E1 16 9F A4 67 37 BD C5 64 94 AB A3 58 AB 6F 90 0A DA 61 86 02 72 61 05 F1 CF 3D 11 E5 23 56 F3 0D 63 14 7C 3D FA C7 7D 93 E5 46 37 FA B3 E8 33 52 DD BD 9D 14 4F B8 66 7C 17 04 A6 BE
J'ai vu que le paquet était serializé de façon <Taille du salt><Salt><Taille de la clef en Varint><Clef>

Ce que je ne comprend pas c'est comment cette taille du salt est serializé.

Dans les fichiers sources de D la méthode est celle-ci :

Code:
public function serializeAs_HelloConnectMessage(output:ICustomDataOutput) : void
      {
         output.writeUTF(this.salt);
         output.writeVarInt(this.key.length);
         for(var _i2:uint = 0; _i2 < this.key.length; _i2++)
         {
            output.writeByte(this.key[_i2]);
         }
      }
Il ne devrait pas avoir un
Code:
output.writeInt(this.salt.length);
Merci
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#2
output.writeUTF(this.salt);
va write la size sur un short donc 00 20 ici
 
Inscrit
14 Septembre 2016
Messages
9
Reactions
0
#3
output.writeUTF(this.salt);
va write la size sur un short donc 00 20 ici
Merci pour ta réponse mais ma question est justement c'est ou dans les sources qu'on nous dit que ça va write 2 octets pour la size.

J'ai fouillé dans les sources mais je trouve pas :/
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#4
Haut Bas