C# Problème de connexion en socket

Inscrit
15 Février 2018
Messages
6
J'aime
0
#1
Bonjour,

Je suis entrain de me lancer dans la programmation d'un bot socket pour un serveur privé de D2.
J'ai fait beaucoup de recherche sur le forum pour la compréhension des paquets et du fil d’Ariane pour commencer une connexion mais je reste bloquer sur un point.

J'ai réussi à avoir le HelloConnect donc j'envoie le paquet avec l'identifiant et le mot de passe pour lancer la connexion. Le serveur m’envoie le paquet 10 (qui est le paquet pour la file d'attente à 1/1) en boucle. J'ai regarder dans le DofusInvoker ce qu'il fallait Serialiser et Deserialiser mais le problème persiste toujours.

Ensuite j'ai pris les sources d'un bot D2, développer par DevChris, en modifiant bien-sûr le chemin, la version du jeu, l'adresse IP et le port mais pareil, avec celui-ci j'ai le paquet de file d'attente qui tourne à 1/1 en boucle..

Je vous ai mit les sources.

PS: si vous regarder les sources, je sais que le code n'est pas bien fait mais cela me permet de pratiquer les protocoles D2 sans avoir à réfléchir à quelque chose de durable mais toute critique est bonne à prendre.
 

Pièces jointes

Inscrit
2 Juin 2018
Messages
32
J'aime
7
#2
Bonjour,

Je suis entrain de me lancer dans la programmation d'un bot socket pour un serveur privé de D2.
J'ai fait beaucoup de recherche sur le forum pour la compréhension des paquets et du fil d’Ariane pour commencer une connexion mais je reste bloquer sur un point.

J'ai réussi à avoir le HelloConnect donc j'envoie le paquet avec l'identifiant et le mot de passe pour lancer la connexion. Le serveur m’envoie le paquet 10 (qui est le paquet pour la file d'attente à 1/1) en boucle. J'ai regarder dans le DofusInvoker ce qu'il fallait Serialiser et Deserialiser mais le problème persiste toujours.

Ensuite j'ai pris les sources d'un bot D2, développer par DevChris, en modifiant bien-sûr le chemin, la version du jeu, l'adresse IP et le port mais pareil, avec celui-ci j'ai le paquet de file d'attente qui tourne à 1/1 en boucle..

Je vous ai mit les sources.

PS: si vous regarder les sources, je sais que le code n'est pas bien fait mais cela me permet de pratiquer les protocoles D2 sans avoir à réfléchir à quelque chose de durable mais toute critique est bonne à prendre.

SAlut, je te conseille de mettre les parties du code en question posant problème sa ira plus vite pour tout le monde.
Pourquoi ne commencerais-tu pas par un MITM ? D'après ce que j'ai compris tu veux directement t'attaquer au bot full socket (il est plus complexe tu dois gérer la partie authentification), de plus essaye de diviser ton projet en partie bien distincte les unes des autres pour qu'il est une meilleure lisibilité/ compréhensibilité et maintenabilité etc ... Tu peux t'aider du sniffer de BlueDream partagé pour voir les paquets échangés(d'ailleurs son sniffer est un MITM ). Pour finir je te conseille de créer un fichier debug dans la racine de ton jeu Dofus et une fois IG faire Fn + F11 (ou F11 directement selon les ordinateurs) pour avoir un log du souci en question.
 
Inscrit
15 Février 2018
Messages
6
J'aime
0
#3
En sois, ce n'est pas le code qui me pose problème c'est pourquoi il m'envoie le paquet d'id 10 en boucle (LoginQueueStatusMessage).
Pour le MITM, j'aimerai bien mais je ne sais pas par où commencer et quelle logique il faut avoir pour juste faire la connexion. (je rechercherai un peu plus tard sur le forum si il y a des personnes qui explique un peu le fonctionnement)
Pour ce qui est du projet, j'utilise le modèle MVC d'habitude mais comme là c'est "nouveau" pour moi, je préfère faire quelque chose de pas propre pour apprendre l'essentiel et ensuite refaire le projet avec ce modèle (par exemple dès que j'aurai fini de faire la connexion du personnage)
Je retiens pour le F11, merci !
 
Inscrit
2 Juin 2018
Messages
32
J'aime
7
#4
En sois, ce n'est pas le code qui me pose problème c'est pourquoi il m'envoie le paquet d'id 10 en boucle (LoginQueueStatusMessage).
Pour le MITM, j'aimerai bien mais je ne sais pas par où commencer et quelle logique il faut avoir pour juste faire la connexion. (je rechercherai un peu plus tard sur le forum si il y a des personnes qui explique un peu le fonctionnement)
Pour ce qui est du projet, j'utilise le modèle MVC d'habitude mais comme là c'est "nouveau" pour moi, je préfère faire quelque chose de pas propre pour apprendre l'essentiel et ensuite refaire le projet avec ce modèle (par exemple dès que j'aurai fini de faire la connexion du personnage)
Je retiens pour le F11, merci !
Balances un screen ici (F11) pour voir les logs Client. Voici le principe d'un MITM : https://cadernis.fr/index.php?threads/différences-mitm-socket.1250/

Un schéma (je sais plus où je l'ai trouvé) :

1557415845984.png
 
Inscrit
2 Juin 2018
Messages
32
J'aime
7
#8
Bah d'apres les logs du jeu tout se passse bien, d'ailleurs si tu bloques au login tu ne serais pas IG, c'est quoi le soucis ?
 
Inscrit
15 Février 2018
Messages
6
J'aime
0
#9
Ah je crois que j'ai mal compris ce que tu voulais ^^'
Comme j'était en socket, j'ai pas de client pour faire F11 et regarder les logs. J'ai fait une analyse de paquet et il s'avère qu'il y a 10 échange de paquet avant d'avoir le paquet 22.
Mais bon, je vais faire comme tu m'as dit, me mettre en MITM, ce sera plus simple pour débuter ^^'
Si tu veux savoir, prend les sources que j'ai laisser au début et lance le tu verra
 
Inscrit
25 Novembre 2015
Messages
111
J'aime
50
#10
En sois, ce n'est pas le code qui me pose problème c'est pourquoi il m'envoie le paquet d'id 10 en boucle (LoginQueueStatusMessage).
Il t'envoie ce message en boucle parce que y a surement du monde dans la queue et que ta position dans la queue s'update à plusieurs reprise. Si tu te connecte aux heures creuses tu devrai pas en recevoir beaucoup.
 
Inscrit
15 Février 2018
Messages
6
J'aime
0
#11
Je me suis connecté en même temps et il n'y a eu aucune file d'attente.
Mais je pense que ça doit être le fait qu'il y a d'autre paquet qui transite et que je n'ai pas envoyer car en utilisant WPE pro, je me suis rendu compte qu'il y a le RawDataMessage qui est envoyé et je ne l'ai pas traiter donc je pense que comme le serveur ne l'as pas reçu il me place en file d'attente infini ?
 
Haut Bas