C# Comment trouver le InstanceId ?

Inscrit
10 Février 2020
Messages
19
Reactions
1
#1
Salut,
j'ai du mal à décoder les packets, et surtout à comprendre comment se place le instanceId
Pour décoder un packet je fait ça :

Exemple avec HelloConnectMessage
00 0E 01 55 00 20 6B 37 71 72 65 6A 6B 7A 78 35 70 61 54 3A 36 3A 3C 7D 50 26 2B 75 4B 3E 23 63 6D 69 22 5C 48 29 B1 02 0E 0B C6 A9 B1 B0 90 B1 76 14 4D E5 B8 11 4B AD B3 D9 E1 4A CC D5 2A 25 24 BB 14 B4 EC D7 97 22 A9 2F 05 03 47 5D 88 7D 3A 36 09 68 3B 1F 5E 4D 99 A7 36 25 6C 60 32 E9 B1 FB C1 B6 65 87 4C E3 EB 76 ED A3 A4 E3 AE 19 5F F5 82 D3 11 9C E5 40 BE D1 B5 30 7D A5 0B 1E

Id : (00 00E) : 1110 - les deux derniers bits = 3
Nb octet de la taille : (00 0E) : 1110 - les deux premiers bits = 1
Taille : on se déplace de 1 après 00 0E donc : 01 55 = soit une taille de 341. Sur WPE je recois 345, donc il me manque 4 qui pourrait représenter l'instanceId sous forme d'intéger (donc bien 4)
Mais j'ai aucune idée d'ou il se trouve ?
 
Inscrit
23 Février 2020
Messages
11
Reactions
3
#2
le HelloConnectMessage provient du server, le serveur n'envoie pas d'instanceID, c'est seulement le client qui l'envoi au server !

Server -> client = header : [ protocolid : 14 bits + lentype 2 bits + length: lentype bits]
Client -> server = header : [ protocolid : 14 bits + lentype 2 bits + instanceid: 32 bits + length: lentype bits]

je travaill aussi actuellement sur un MITM si jamais tu veux qu'on s'entraide
 
Inscrit
10 Février 2020
Messages
19
Reactions
1
#3
Salut,
Ok merci pour ta reponse. J'avais lu que l'instance id était incrémenté entre chaque échanges client serveur ^^
Donc en gros le client envoie un message avec son instance id, le serveur normalement, le client répond ensuite par son message plus instance id +1 . C'est plus clair maintenant merci.
Je pense pas pouvoir t'aider pour ton projet, je débute vraiment, en tout cas sur dofus 2... Par contre si tu as des questions sur dofus touch je peux t'aider
 
Inscrit
23 Février 2020
Messages
11
Reactions
3
#4
J'avais lu que l'instance id était incrémenté entre chaque échanges client serveur ^^
Donc en gros le client envoie un message avec son instance id, le serveur normalement, le client répond ensuite par son message plus instance id +1 . C'est plus clair maintenant merci.
c'est apparament le cas, d'apres les sources as, a chaque instantiation d'une class networkMessage l'instanceid est incrementer, donc, recu ou envoyer c'est un ++
mais j'ai un petit soucis, parfois j'ai remarquer un decalage entre le compte des message que je fais moi et ceux du client, je suis toujours pas certain que je ne loupe aucun message, sinon, si jamais t'arrive a cette etap tu me dis ce que tu constate stp
 
Inscrit
3 Mai 2020
Messages
40
Reactions
14
#5
Pareil j'ai un décalage dans mon compte par rapport au client. Pourtant je fais la même chose, à priori.

Avez vous trouvé une solution ?
 
Inscrit
23 Février 2020
Messages
11
Reactions
3
#6
salut, j'ai repris mon bot il ya une semaine, enfaite, j'avais remarquer que le serveur ne check pas l'integrite de l'instanceID que tu envoi ( au moin instantanement).
du coup je l'envoi tel qui il est, apres tu peut corriger l'instance id a partir du dernier instance envoye par le client mais oublie pas qu'il faut aussi garder compte des msg envoye par ton bot et ajouter le nombre a chaque instanceid partante de ton bot.
 
Haut Bas