En mode MITM (« homme du milieu », de l'anglais man-in-the-middle), un bot relaie la partie que vous jouez. Quand Dofus et Asterobot partagent un ordinateur, Asterobot modifie tout seul une ligne de votre dossier Dofus (Mode MITM). Quand Dofus tourne sur un autre ordinateur, Asterobot ne peut pas atteindre ce fichier : vous faites donc la modification vous-même, et vous ouvrez les ports d'Asterobot à cet ordinateur.
Cette page utilise trois ordinateurs :
- PC A fait tourner Dofus, installé avec l'Ankama Launcher.
- PC B fait tourner Asterobot.
- PC C fait tourner Asteroboard dans un navigateur.
Le PC C est facultatif. Asteroboard peut tourner sur le PC B, où les réglages par défaut fonctionnent, ou sur le PC A, qui se connecte alors comme le PC C. L'adresse 192.168.1.20 représente l'adresse du PC B sur votre réseau.
Comment le jeu atteint Asterobot
- PC A : Dofus → PC B : Asterobot (8080, 5555, 5556)
- PC A : Dofus → Serveurs d'Ankama (tout le reste)
- PC B : Asterobot → Serveurs d'Ankama
- PC C : Asteroboard → PC B : Asterobot (tunnel SSH)
- Dofus, sur le PC A, lit la ligne
ConfigUrlde son fichierversion, et récupère ses réglages de connexion à cette adresse : le port 8080 d'Asterobot, sur le PC B. - Asterobot répond avec les vrais réglages d'Ankama, dans lesquels le serveur de connexion est remplacé par son propre port de connexion, 5555.
- Dofus se connecte sur le port 5555 du PC B, et Asterobot transmet la connexion à Ankama.
- Quand Ankama indique à Dofus quel serveur de jeu rejoindre, Asterobot remplace cette adresse par son propre port de session, 5556.
- Dofus ouvre sa session de jeu sur le port 5556, et le bot en attente la relaie vers le serveur de jeu.
Le PC A doit donc atteindre trois ports du PC B, tous à la même adresse : celle qu'Asterobot donne à Dofus. Tout le reste de ce qu'utilise Dofus va toujours directement chez Ankama.
Ce qu'il vous faut
- Dofus 3 sur le PC A, installé avec l'Ankama Launcher.
- Asterobot sur le PC B, connecté à asterobot.net, avec la version de Dofus du PC A téléchargée et extraite dans le Gestionnaire de jeux, et un bot qui utilise cette version. Votre premier bot détaille les deux.
- Un PC A capable d'atteindre le PC B : sur le même réseau local, ou par redirection de ports (voir Pare-feu et NAT).
1. Vérifier la version à la main
Sur un seul ordinateur, Asterobot compare votre version de Dofus avec sa propre copie, et refuse d'attendre quand elles diffèrent. Les fichiers du PC A sont hors de sa portée : ici, rien ne le vérifie.
- Sur le PC A, ouvrez
Dofus_Data/StreamingAssets/versiondans le dossier de Dofus, et lisez la ligneVersion=. Le dossier habituel de l'Ankama Launcher est%AppData%\Ankama\Dofus-dofus3sous Windows et~/.config/Ankama/Dofus-dofus3sous Linux. - Sur le PC B, vérifiez dans le Gestionnaire de jeux que cette version exacte est téléchargée et extraite, et que le bot l'utilise.
Quand elles diffèrent, Asterobot lit les messages du jeu avec les définitions d'une autre version, et rien de ce qu'affiche le bot ou de ce que voit un paquet n'est fiable. Vérifiez de nouveau après chaque mise à jour de Dofus.
2. Ouvrir Asterobot au PC A
Sur le PC B, ouvrez Serveur > Config.
Caution
Avec ces réglages, tous les appareils de votre réseau peuvent atteindre le port 8080 d'Asterobot sans mot de passe, ce qui donne le contrôle total d'Asterobot, et peuvent envoyer leur propre session de jeu à votre bot en attente. Ne le faites que sur un réseau de confiance. Sécurité explique les risques.
Modifiez ces réglages :
| Réglage | Valeur à mettre | Pourquoi |
|---|---|---|
server.listenAddress |
0.0.0.0:8080 |
Dofus récupère ses réglages de connexion sur ce port. 0.0.0.0 garde aussi 127.0.0.1 fonctionnel sur le PC B, ce dont a besoin le tunnel SSH venant du PC C. |
botmanager.mitmBindHost |
192.168.1.20, l'adresse du PC B |
Les ports de connexion et de session acceptent alors les connexions venant de votre réseau. |
botmanager.mitmAdvertiseHost |
Laissez-le vide | Vide signifie la même adresse que botmanager.mitmBindHost, ce qui convient ici. |
server.tls |
Désactivé | Dofus récupère ses réglages en simple HTTP. |
server.basicAuth |
Vide | Dofus ne peut pas envoyer de mot de passe. |
Ne renseignez botmanager.mitmAdvertiseHost que lorsque le PC A doit utiliser une autre adresse que botmanager.mitmBindHost :
- quand
botmanager.mitmBindHostvaut0.0.0.0. Cette valeur signifie toutes les interfaces, mais ce n'est pas une adresse à laquelle on peut se connecter : Asterobot indique alors à Dofus d'utiliser127.0.0.1, qui ne fonctionne que sur le PC B ; - quand le PC A atteint le PC B à travers un NAT, avec une autre adresse (voir Pare-feu et NAT).
Redémarrez Asterobot sur le PC B : chaque réglage du tableau prend effet au prochain démarrage.
Si Dofus est aussi installé sur le PC B, dans le dossier indiqué par botmanager.mitmGamePath, Asterobot modifie toujours cette copie dès qu'un bot se met en attente, et refuse d'attendre quand la version de cette copie n'est pas la sienne. Si vous ne jouez pas sur le PC B, videz botmanager.mitmGamePath. Ce réglage-là s'applique sans redémarrage.
3. Se mettre en attente et copier la valeur pour le PC A
Dans Asteroboard, ouvrez la page du bot et cliquez sur Commencer l'attente. L'état passe à En attente de votre client de jeu.
Asterobot ouvre ses ports de connexion et de session et écrit
Ready for game clientsdans son journal, dans le terminal du PC B et dans Serveur > Console. Cette ligne liste les adresses utilisées. Vérifiez que l'adresseadvertisedest celle du PC B, et non127.0.0.1.Copiez la valeur
configUrlde cette ligne. Avec les réglages ci-dessus, elle donne :http://192.168.1.20:8080/botmanager/mitm/dofus3.json
La valeur est toujours construite de la même façon : http://, l'adresse annoncée, deux-points et le port de server.listenAddress, puis /botmanager/mitm/dofus3.json. Elle reste la même tant que ces réglages ne changent pas.
Sans Dofus sur le PC B, le journal n'affiche pas Pointed the played game at Asterobot. C'est normal : il n'y a rien à modifier sur le PC B.
4. Modifier la ligne sur le PC A
Fermez Dofus sur le PC A, s'il est ouvert.
Ouvrez
Dofus_Data/StreamingAssets/version, dans le dossier de Dofus, avec un éditeur de texte.Trouvez la ligne qui commence par
ConfigUrl=, et copiez-la en lieu sûr. Vous en aurez besoin pour remettre le fichier en état.Remplacez tout ce qui suit
ConfigUrl=par la valeur de l'étape 3, et laissez les autres lignes telles quelles :ConfigUrl=http://192.168.1.20:8080/botmanager/mitm/dofus3.jsonEnregistrez le fichier.
5. Jouer
- Lancez Dofus depuis l'Ankama Launcher sur le PC A, connectez-vous et choisissez votre personnage.
- Sur la page du bot, l'état passe à Connecté au serveur de jeu, comme sur un seul ordinateur.
Les sessions de jeu sont associées aux bots en attente par compte Ankama, exactement comme le décrit Mode MITM.
Tant que sa ligne ConfigUrl pointe vers le PC B, le Dofus du PC A ne se connecte que si Asterobot tourne sur le PC B avec au moins un bot en attente. Quand aucun bot n'attend, le port de connexion est fermé, et quand Asterobot est arrêté, Dofus ne peut même pas récupérer ses réglages de connexion. Sur un seul ordinateur, Asterobot remet la ligne en place à ces moments-là. Sur plusieurs machines, c'est à vous de le faire.
Remettre la ligne en place
Pour jouer sur le PC A sans Asterobot :
- Fermez Dofus.
- Dans
Dofus_Data/StreamingAssets/version, remplacez la ligneConfigUrl=par la ligne d'origine que vous avez gardée. - Enregistrez le fichier et lancez Dofus.
Si vous avez perdu la ligne d'origine, reprenez-la dans la copie de la même version qu'Asterobot garde sur le PC B, et qu'il ne modifie jamais. Son fichier version se trouve dans le dossier de cache d'Asterobot, sous game/dofus/dofus3/windows/, puis le numéro de version, puis Dofus_Data/StreamingAssets/version. Fichiers et dossiers indique où se trouve le dossier de cache.
Piloter depuis le PC C
Le navigateur du PC C doit atteindre Asterobot sur le PC B. Depuis un autre appareil, cela veut généralement dire HTTPS (Asteroboard sur un autre appareil), mais HTTPS empêche le mode MITM. Utilisez plutôt un tunnel SSH du PC C vers le PC B :
Assurez-vous que le PC B fait tourner un serveur SSH qui accepte votre connexion.
Sur le PC C, lancez :
ssh -L 8080:127.0.0.1:8080 user@192.168.1.20Dans le navigateur du PC C, ouvrez
http://127.0.0.1:8080.
Asterobot sur une machine distante explique le tunnel en détail.
Certains navigateurs laissent Asteroboard atteindre directement http://192.168.1.20:8080, une fois que vous autorisez l'accès à votre réseau local. Si c'est le cas du vôtre, ouvrir cette adresse sur le PC C fonctionne sans tunnel, mais beaucoup de navigateurs le refusent.
Sans ouvrir aucun port
Si le PC A peut se connecter au PC B en SSH, un tunnel peut aussi transporter le jeu, et Asterobot garde tous ses ports sur 127.0.0.1 :
Sur le PC B, gardez les valeurs par défaut :
server.listenAddresssur127.0.0.1:8080,botmanager.mitmBindHostsur127.0.0.1etbotmanager.mitmAdvertiseHostvide. Redémarrez Asterobot si vous les aviez modifiés.Sur le PC A, ouvrez un tunnel pour les trois ports, et gardez-le ouvert pendant que vous jouez :
ssh -L 8080:127.0.0.1:8080 -L 5555:127.0.0.1:5555 -L 5556:127.0.0.1:5556 user@192.168.1.20Sur le PC A, remplacez la ligne
ConfigUrlpar la valeur qu'Asterobot affiche avec les réglages par défaut :ConfigUrl=http://127.0.0.1:8080/botmanager/mitm/dofus3.json
Dofus, sur le PC A, se connecte alors à 127.0.0.1, et le tunnel transporte chaque connexion vers le même port du PC B. Les ports 8080, 5555 et 5556 doivent être libres sur le PC A : aucun Asterobot ne peut donc y tourner en même temps. Le même tunnel donne au PC A accès à Asteroboard sur http://127.0.0.1:8080.
Pare-feu et NAT
Pare-feu. Le PC B doit accepter les connexions TCP entrantes du PC A sur trois ports : le port de server.listenAddress (8080), botmanager.mitmSignInPort (5555) et botmanager.mitmSessionPort (5556). Sous Windows, la première fois qu'Asterobot écoute sur vos réseaux, le système peut demander s'il faut l'autoriser à y communiquer. Sinon, ajoutez des règles pour ces ports, limitées à votre réseau local. Les ports de connexion et de session n'écoutent que pendant qu'un bot attend : testez donc la connexion depuis le PC A à un moment où c'est le cas.
NAT. Quand le PC A n'est pas sur le réseau du PC B, par exemple avec le PC B à la maison et le PC A ailleurs, le PC A atteint le PC B par l'adresse publique de votre routeur. Dans ce cas :
- Sur le routeur, redirigez les ports TCP 8080, 5555 et 5556 vers le PC B.
- Sur le PC B, réglez
botmanager.mitmAdvertiseHostsur l'adresse publique du routeur, puisque l'adresse locale du PC B ne signifie rien pour le PC A. Gardezbotmanager.mitmBindHostsur l'adresse locale du PC B, et redémarrez Asterobot. - Utilisez la valeur
configUrlqu'Asterobot affiche ensuite, qui contient l'adresse publique.
Caution
Rediriger ces ports met le port 8080 d'Asterobot sur Internet sans mot de passe, puisque le mode MITM ne peut pas en utiliser. Quiconque le trouve contrôle votre Asterobot, vos bots et vos comptes. Préférez le tunnel SSH ci-dessus dès que le PC A peut s'en servir.
Quand ça ne fonctionne pas
| Ce que vous voyez | Ce qu'il faut vérifier |
|---|---|
| Le bot reste sur En attente de votre client de jeu pendant que vous jouez sur le PC A | La ligne ConfigUrl du PC A contient exactement la valeur configUrl, Dofus a été lancé après la modification, le pare-feu du PC B laisse passer le PC A sur les trois ports, server.tls est désactivé et server.basicAuth est vide. |
Le journal du PC B affiche A game client signed in that no bot is waiting for |
Votre jeu est bien passé par Asterobot, mais aucun bot en attente ne l'a pris, parce que le bot est rattaché à un autre compte Ankama. Voir Mode MITM. |
Ready for game clients affiche 127.0.0.1 comme adresse annoncée |
botmanager.mitmBindHost vaut encore 127.0.0.1, ou vaut 0.0.0.0 alors que botmanager.mitmAdvertiseHost est vide. Corrigez-le et redémarrez Asterobot. |
| Dofus, sur le PC A, ne parvient pas à se connecter | Aucun bot n'attend sur le PC B, ou Asterobot ne tourne pas. Mettez un bot en attente, ou remettez la ligne d'origine. |
| Impossible de mettre le bot en attente | Les causes listées dans Mode MITM, dont une copie de Dofus sur le PC B, dans botmanager.mitmGamePath, dont la version n'est pas celle du bot. |
| Le bot se connecte, mais ce qu'il affiche n'a aucun sens | La version de Dofus du PC A n'est pas celle qu'utilise le bot. |
Problèmes en mode MITM couvre d'autres erreurs.
Pour aller plus loin
- Sécurité, pour ce que permettent les ports ouverts.
- Plusieurs bots, pour relayer plusieurs clients Dofus.