2.0 Décrypter les paquets de combat

Inscrit
30 Novembre 2021
Messages
2
Reactions
0
#1
Bonjour,

Cela fait quelques jours que je traine sur le forum pour essayer de comprendre comment implémenter un packet sniffer pour D0fousse 2.0. J'ai lu pas mal de tuto et j'ai même réussi à sniffer le port 5555 en python grâce à scapy.

J'essaye désormais d'analyser les dommages reçus/infligés en combat, et pour ça je lance mon sniffer pendant un combat et je lance une Pression sur un poutch. Malgré la décompilation et l'analyse des protocoles que j'ai effectué, je n'arrive pas trop à comprendre mes résultats :

1638789133446.png
Déjà, pourquoi 1 sort génère 5 paquets ?

Ce qui est highlight est (je pense) mon sourceID. Le source ID est (d'après ma lecture du DofusInvoker décompilé) ajouté à chaque message, le gros paquet central contiendrais donc 7 "messages" collés les uns aux autres ?

J'ai supposé que mon sort faisant des dégâts, GameActionFightLifePointsLostMessage allait forcement être utilisé. J'ai donc cherché mes dégâts dans les paquets, ayant tapé du 77, je cherche 4D en hexa et bingo : paquet central, ligne 0120, 5ème colonne. Sauf que d'après ma décompostion du protocole de GameActionFightLifePointsLostMessage, la variable "loss" (= dégâts subits, donc mon 00 00 00 4D) est codé sur un VarInt (4 byte) suivi d'un autre VarInt correspondant aux PV érodés (permanentDamage). Or si on suit la logique, mon permanentDamage serait de 17 01 94 21 ? C'est impossible.

L'élément qui m'a le plus perdu est le protocolID. Pour que le client reconnaisse ce qu'il lit, je me suis dit qu'il devait lire un protocolID quelque part (le numéro en haut de tous les fichiers décompilé).
1638789716295.png
Encore une fois, impossible de trouver "7274", même en hexa, ni même 72 en hexa puis 74.

Pourriez-vous m'aider à comprendre ce que je lis, et comment puis-je analyser les dommages reçus par qui, émis par qui, etc ... ?
 
Inscrit
30 Novembre 2021
Messages
2
Reactions
0
#2
Update : après quelques heures d'enquête et de lecture, j'ai pu trouvé ce que je pense être GameActionFightSpellCastMessage (en vert) et GameActionFightLifePointsLostMessage (en rouge)

1638812230685.png

Je me demande toujours :
- Qu'est ce que _box0
- Comment on sait où commence ces messages ?
- Comment traduire un spellID -> Nom du sort ?
- Pourquoi je ne trouve pas l'ID du protocole, mais un random AC 02 pour le premier et un 61 pour le deuxième ?
- C'est quoi tous les bytes après mon GameActionFightLifePointsLostMessage ?
 
Dernière édition:
Haut Bas