Touch Lecture de paquets dofus touch

Inscrit
10 Janvier 2019
Messages
6
J'aime
0
#1
Bonjour à tous,

Je me lance dans la lecture et l'interprétation de paquets sur dofus touch, avec comme objectif la récupération des messages du canal discutions.

J'en suis à essayer de récupérer les paquets avec wireshark pour isoler ceux qui m'intéressent.

Question 1 : quel filtre dois-je utiliser pour isoler les paquets dofus touch ?
J'ai essayé plusieurs filtres, mais comme je n'arrive pas à interpréter les message je ne sais pas si ils sont bons.
Question 2 : comment interpréter les paquets ?
J'ai relu plusieurs tuto sur ce forum, mais j'ai l'impression qu'il faut à chaque fois se référencer à un fichier de config, et sur dofus touch... Je sèche.

Si quelqu'un connais la solution, je l'en remercie !
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
363
J'aime
20
#2
Sur Touch , tu peux agir sur le client directement et donc tu peux build une app js pour executer le script du jeu et le modifier de façon à lister les paquets dans un output screen (console chrome tools par exemple) ou bien tu peux reprendre touchemu ou lindo et modifier le script du jeu directement.
 
Inscrit
12 Avril 2014
Messages
18
J'aime
2
#4
La communication entre le client et le serveur est cryptée, donc impossible de sniffer les paquets. Le plus simple c'est de faire comme @zahid98 a dit : faire en sorte que Lindo liste les paquets dans la console Chrome.

Du coup cloner le repo, et ajouter une dizaine de ligne de code au bon endroit.
Y a des listeners sur chaque type de paquets. Moi j'avais fait un gros foreach qui faisait un Logger.info de la data.
 
Inscrit
10 Janvier 2019
Messages
6
J'aime
0
#5
Merci, je vais exagérer, mais qu'entend tu par au bon endroit :p
J'avoue que je n'ai aucune idée de où chercher ou vont les paquets reçus par lindo :s
 
Inscrit
12 Avril 2014
Messages
18
J'aime
2
#6
N'importe quel endroit où tu as accès au wGame.dofus.connectionManager, c'est à dire toutes les classes qui font un super(wGame) dans leur constructeur.

Moi perso je l'avais mis dans src/app/core/mods/ car j'ai considéré que c'était une fonctionnalité supplémentaire au même titre que l'auto-group par exemple.
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
363
J'aime
20
#8
Voilà, je partage ce bout de code que j'utilisais à l'époque sur mon bot client
JavaScript:
            if(sent)
               {
                window.dofus.connectionManager.on("send" , function(data) {
                    console.info("sent :");
                    console.info(data.data.data);
                });
           }
           if(received)
               {
                   window.dofus.connectionManager.on("data" , function(data) {
                    console.info("received :");
                    console.info(data);
                });
              }
 
Inscrit
10 Janvier 2019
Messages
6
J'aime
0
#9
Merci, à ce stade je dois me plonger dans le code, je ne comprend pas bien le fonctionnement des fonctions.
Mais c'est à moi de travailler ^^
 
Inscrit
20 Aout 2016
Messages
26
J'aime
1
#10
Auriez vous un exemple d'une classe qui utilise déjà le système d'envois de packets?
J'ai cherché mais ça reste encore flou pour moi, si quelqu'un pourrait m'éclaircir!
Merci
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
363
J'aime
20
#11
Uhm je ne pense pas que le script du jeu contient des classes , tu cherches où déjà ?
 
Inscrit
20 Aout 2016
Messages
26
J'aime
1
#12
Je cherche d'où les classes présentes dans src/app/core/mods/ peuvent etre instanciées, mais je dois avouer que pour l'instant j ai pas trouvé.
Mais théoriquement, si c est le client, on devrait pouvroir trouver une fonction qui fait au moins un receive ou quelque chose comme ca
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
363
J'aime
20
#13
Ah oui la modification de classe était la solution de @Nayde , moi j'ai proposé de modifier directement le script mais je recommande la solution de Nayde.
Et non , tu vas pas nécessairement trouver des "receive" dans le code du client. Lindo ne fait qu’exécuter le script du jeu . si j'ai bien compris le message de nayde ,tu trouveras des fonctions qui agissent directement sur wGame pour "modder" le jeu et donc tu essaieras de faire pareil en ajoutant le code qui affiche les messages reçu.
 
Inscrit
20 Aout 2016
Messages
26
J'aime
1
#14
Oui ça marche bien! Sauf pour la lecture des packets recu mais il faut que je creuse un peu plus je pense.
Merci!
 
Haut Bas