Touch Lecture de paquets dofus touch

Inscrit
10 Janvier 2019
Messages
6
Reactions
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
352
Reactions
2
#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
10 Janvier 2019
Messages
6
Reactions
0
#3
Ok merci, je vais gratter de ce côté alors ! Je reviendrais si j'ai des questions ;)
 
Inscrit
12 Avril 2014
Messages
22
Reactions
5
#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
Reactions
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
22
Reactions
5
#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.
 
Inscrit
10 Janvier 2019
Messages
6
Reactions
0
#7
Ok merci je regarde ça ce soir alors :)
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#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
Reactions
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
28
Reactions
0
#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
352
Reactions
2
#11
Uhm je ne pense pas que le script du jeu contient des classes , tu cherches où déjà ?
 
Inscrit
20 Aout 2016
Messages
28
Reactions
0
#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
352
Reactions
2
#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
28
Reactions
0
#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