A
Bonjour,
C'est en essayant de faire mon bot socket "normal" (pas de MITM) que j'ai compris à quoi servait réellement la technique du Man In The Middle...
Avec cette technique, on n'a pas besoin de s'embêter avec la connexion, le RSA, tout ça... On laisse faire le sale boulot au client et on modifie/rajoute ce qu'on veut. De plus les chances de se faire bannir sont moins importantes du fait que le client va répondre à tous les messages normalement sans que l'on ait besoin de s'en occuper.
Alors j'ai laissé tomber mon bot socket "normal" et je suis partis sur un MITM (comme le BiM de bouh2 en fait, mais en très simplifié).
En gros le principe c'est : Client Dofus <-> Application MITM (127.0.0.1) <-> Serveur de connexion (213.248.126.39)
J'ai réussi à mettre en place le MITM (en modifiant le config.xml etc) et ça fonctionne bien jusqu'à la sélection du serveur (SelectedServerDataMessage, ID 42). C'est le passage Serveur de connexion -> Serveur de jeu.
À partir de là je crois que je n'ai pas très bien compris et j'aurais besoin d'une confirmation/rectification.
Le message SelectedServerDataMessage contient (entre autres) l'IP du serveur de jeu et le port du serveur de jeu. Voici comment je procède :
Comme je l'ai écris plus haut, le problème c'est que j'attends que le client Dofus se connecte au port 5556 (qui est censé être le serveur de jeu) pour relayer les messages (même principe que j'ai fais pour le serveur de connexion), mais il ne s'y connecte jamais. Et à partir de là plus de messages.
Mon approche est-elle bonne ? Ai-je oublié quelque chose ?
Merci.
C'est en essayant de faire mon bot socket "normal" (pas de MITM) que j'ai compris à quoi servait réellement la technique du Man In The Middle...
Avec cette technique, on n'a pas besoin de s'embêter avec la connexion, le RSA, tout ça... On laisse faire le sale boulot au client et on modifie/rajoute ce qu'on veut. De plus les chances de se faire bannir sont moins importantes du fait que le client va répondre à tous les messages normalement sans que l'on ait besoin de s'en occuper.
Alors j'ai laissé tomber mon bot socket "normal" et je suis partis sur un MITM (comme le BiM de bouh2 en fait, mais en très simplifié).
En gros le principe c'est : Client Dofus <-> Application MITM (127.0.0.1) <-> Serveur de connexion (213.248.126.39)
J'ai réussi à mettre en place le MITM (en modifiant le config.xml etc) et ça fonctionne bien jusqu'à la sélection du serveur (SelectedServerDataMessage, ID 42). C'est le passage Serveur de connexion -> Serveur de jeu.
À partir de là je crois que je n'ai pas très bien compris et j'aurais besoin d'une confirmation/rectification.
Le message SelectedServerDataMessage contient (entre autres) l'IP du serveur de jeu et le port du serveur de jeu. Voici comment je procède :
- J'ouvre un socket au serveur de jeu (avec l'IP et le port fournis par SelectedServerDataMessage) pour relayer les messages au client Dofus
- Je modifie le message SelectedServerDataMessage : je remplace l'IP par 127.0.0.1 et le port par 5556 (ce n'est qu'un exemple, j'aurais pu prendre un autre port)
- J'ouvre un socket d'écoute sur le port 5556 (qui est donc censé être le port du serveur de jeu) pour que le client Dofus s'y connecte -> problème, il ne s'y connecte jamais
- J'envoie le message SelectedServerDataMessage au client Dofus avec l'IP et le port modifié
Comme je l'ai écris plus haut, le problème c'est que j'attends que le client Dofus se connecte au port 5556 (qui est censé être le serveur de jeu) pour relayer les messages (même principe que j'ai fais pour le serveur de connexion), mais il ne s'y connecte jamais. Et à partir de là plus de messages.
Mon approche est-elle bonne ? Ai-je oublié quelque chose ?
Merci.