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 :

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é).
![img]()
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 ... ?