- Inscrit
- 1 Mars 2014
- Messages
- 120
- Reactions
- 0
Salut tout le monde !
Après avoir lancé l'idée de mon projet de Player musique 1.29 j'ai eu envie de reprendre mon bot socket.
J'ai voulu repartir sur ces "bonnes" bases et j'ai donc repris tout à 0. Et du coup je bloque sur la dé-sérialisation du paquet HelloConnectMessage ...
Bon j'ai commencé par sniffer le client officiel et je reçoit ce paquet HelloConnectMessage :
Pour dé-sérialiser ce magnifique paquet on regarde les sources de D2 :
On se rend compte qu'il faut donc, dans un premier temps lire une chaine UTF, puis la taille de la clef et enfin la clef (après la lecture du header biensur).
Donc j'ai essayé de le faire à la main ce qui donne :
Jusqu'au salt ca va, j'ai bien ma chaine de 32octets, c'est après que je comprends pas.
On nous demande de lire un int, donc les 4octets suivant, ce qui correspond à b1020497 (hexa) ou 2969699479 (déci) .... Sachant que c'est censé être la taille de la clef qui suit je ne comprends pas :/ .... J'ai du louper un truc, pourtant je vois pas quoi
Alors j'ai cherché dans les sources mais j'ai rien trouvé de concret. J'ai cherché aussi à lire un short mais ca ne change rien, la taille reste trop grande.
Est ce que quelqu'un peut m'éclairer sur la solution ?
Merci
Après avoir lancé l'idée de mon projet de Player musique 1.29 j'ai eu envie de reprendre mon bot socket.
J'ai voulu repartir sur ces "bonnes" bases et j'ai donc repris tout à 0. Et du coup je bloque sur la dé-sérialisation du paquet HelloConnectMessage ...
Bon j'ai commencé par sniffer le client officiel et je reçoit ce paquet HelloConnectMessage :
Code:
000e0155002069636c726677786b2d76505e33474e2c4c7b2a6f4f347a6f5d7063223d376377b1020497294693df1b2ba966a1e8de8a7deed5e1e7b280b561f67aa15eeb2365068dbcea3ee462992cbda79364ccd80c04241a9533a032ccb719408e2a6d28492ccc26578b1dd13cb5fbc169827f2a30d1cb8bf7a1cd23b41b7147ca75a3e20f82584009a9de024b38396121686346b7a94b59ebc04fce9433db1b46ced297977e9c37c2e25c5731c2657012106f21ddabc38205c9066bb620d5b89b6691fa3d29bf81692143d940314f0378a578180d28b7df99f4119d816110aa66d34dbc5a09501ab5d7c585ac61d9a0c7334048e523b03bec1cfeb505e2a137619a10a277d8922230606c52657ea45d7096c1efa0c58f0b0ef34b97d4f065d8378cf0ec384c1bd946a6ef7ebd07befe596e7b524b4ca7b43262a8d013e44b083da1ff0ac90c8a564d58d3109563fdf175960e4b92f9f9d1
Code:
public function deserializeAs_HelloConnectMessage(input:ICustomDataInput) : void
{
var _val2:* = 0;
this.salt = input.readUTF();
var _keyLen:uint = input.readVarInt();
for(var _i2:uint = 0; _i2 < _keyLen; _i2++)
{
_val2 = input.readByte();
this.key.push(_val2);
}
}
Donc j'ai essayé de le faire à la main ce qui donne :
Code:
000e => id 3 et length type 2
0155 => taille 341
UTF:
0020 => taille 32
69636c726677786b2d76505e33474e2c4c7b2a6f4f347a6f5d7063223d376377 => iclrfwxk-vP^3GN,L{*oO4zo]pc"=7cw
On nous demande de lire un int, donc les 4octets suivant, ce qui correspond à b1020497 (hexa) ou 2969699479 (déci) .... Sachant que c'est censé être la taille de la clef qui suit je ne comprends pas :/ .... J'ai du louper un truc, pourtant je vois pas quoi
Alors j'ai cherché dans les sources mais j'ai rien trouvé de concret. J'ai cherché aussi à lire un short mais ca ne change rien, la taille reste trop grande.
Est ce que quelqu'un peut m'éclairer sur la solution ?
Merci