2.0 Comment recevoir les paquets provenant de dofus 2 ?

Inscrit
4 Avril 2020
Messages
6
Reactions
0
#1
Bonjour,

J'aimerais pouvoir récupérer les paquets provenant de Dofus 2, plus précisément les données sur les ressources d'hdv.
Je me suis donc mit à lire un tas de sujet sur ce forum, mais à chaque fois l'étape de réception de paquets n'est pas détaillées.

La deserialization n'est pas un problème, je pense avoir compris le principe, cependant pour le faire je dois connaître la forme de base des paquets que je dois envoyer ( authentification ).

Je ne veux pas créer de bot mais simplement recevoir les paquets et pouvoir les exploiter.

Dernière petite question, comment trouver l'ip et le port concernant ces données ?

Merci pour votre aide !

PS : Dans beaucoup de post, je vois des fichiers passés provenant du code source du jeu qui indique donc la façon de se connecter ou autre, j'aimerais savoir où je peux les trouver ou comment le faire.
 
Inscrit
30 Mars 2020
Messages
3
Reactions
0
#2
Salut, je suis pour ma part en train de commencer l'écriture d'un bot, je suis loin d'avoir fini mais je crois pouvoir t'aider un peu.
Pour ce qui est de recevoir les paquets tu dois installer par exemple Wireshark, et écouter le port TCP 5555. (Si tu ouvres Dofus directement sans launcher, dans les réglages de connection tu peux voir si tu es bien sur le port 5555).
De là Wireshark t'afficheras tous les packets entrant et sortants de ton port, il te donnera également l'IP du serveur.

Mais il est très difficile de comprendre les paquets comme cela, sache déjà que ceux entrants sont formés de cette manière :

[header sur 2 octets][taille du contenu sur 1, 2 ou 3 octets][contenu]

Et le header comme ceci :

(id_du_message) << 2 + type de taille

De là pour comprendre chaque paquet il faut regarder les sources du jeu. Pour cela trouve ton fichier DofusInvoker.swf puis dé-compiles le en utilisant par exemple JPEXS. (Remarque, chez moi il plante sur Linux mais pas sur Windows).

Une fois accès aux sources du jeu concentre toi sur /scripts/com/ankamagames/dofus/network/message qui contient les messages échangés entre le serveur et ton client.
En regardant les fonctions de dé-sérialisation tu pourras comprendre leurs structures, et tu auras les ids correspondants aux premiers bits du header pour les reconnaître dans Wireshark.

Lis également ceci :

https://cadernis.fr/index.php?threads/tutoriel-débuter-dans-le-développement-socket-d2-complet.162/
Même si tu ne veux pas faire un bot il faudra faire un programme pour décoder les messages reçus.

Bon courage

Edit :

Lire avec Wireshark c'est bien, mais il te faudra ensuite le faire sur ton programme. Personnellement en C/C++
Je me suis inspiré du code client.c ici avec le port 5555 et l’adresse trouvée dans Wireshark.
https://www.geeksforgeeks.org/socket-programming-cc/
Si tu ne veux pas faire de bot tu dois pouvoir effectuer un Bind sur le port alors que ton client communique avec le serveur. En Python il me semble que c'est assez simple.
 
Inscrit
4 Avril 2020
Messages
6
Reactions
0
#3
Merci pour ta réponse rapide, je regarde ça tout de suite !
 
Haut Bas