valchimiiste
Aaah d'accord. Donc si j'ai bien compris.
1 - Je sniffe le paquet qui m'interesse qui me révèle le nom de la fonction dans le jeu qui m'interesse.
2 - Supposons que la fonction s'appelle sendMessage(); je décompile le jeu a la recherche de cette fonction
3- J'identifie les paramètres de la fonction et son fonctionnement
4- Je fais une fonction pareil sendMessage(); dans mon MITM qui a la meme structure que la fonction originelle et je l'appelle quand j'en ai besoin pour l'envoyer au serveur.
En gros le grand principe c'est ça ?
Dans l'idée c'est un peu ça, sauf que c'est pas la fonction
sendMessage
que tu va chercher à recoder par toi même. Ce que tu veux faire c'est communiquer avec le serveur de dofus (et le client aussi dans le cadre d'un MITM) via le réseau. Donc ce qui t'intéresse vraiment c'est la
forme des échanges (autrement appelé le protocol).
Le protocol est basé sur ce qu'on appelle des messages. Le serveur et le client s'envoient des messages contenant des informations.
Donc ce qui va t'intéresser à reproduire dans ton bot c'est :
- l'ordre des messages
- le contenu des messages
Pour connaitre l'ordre c'est pas très compliqué, t'as juste à sniffer les échanges entre le serveur et le client. Tu va vite t'apercevoir (sans même décoder les messages) que c'est toujours la même chose. Le serveur commence par envoyer un paquet TCP de ~345octets, puis le client va répondre etc).
Pour comprendre le contenu des message c'est là que tu va avoir besoin des sources du jeu. Il faut que tu décompile le jeu pour lire comment les messages sont structurés (d'abord un header, puis par exemple le pseudo de ton perso, puis sont niveau, etc).
Tu trouvera plein de tuto ici pour comprendre comment trouver le/les fichiers qui fabrique les messages. Mais dans l'idée tous les messages commencent par un header, toujours formé de la même manière. Dans ce header tu as l'ID unique du message. Avec cette ID tu peux chercher dans les sources et donc trouver le bon fichier.
Bon une fois que t'es capable de comprendre les échanges entre serveur et client il te reste plus qu'à coder le coeur de métier de ton bot.
La première étape incontournable c'est d'arriver en jeu, ça tout le monde y passe. Pour ça tu va devoir modifier à la volé certains messages (le 42 notamment) pour y parvenir. Je te laisserai chercher pourquoi.
Une fois en jeu, c'est à toi d'envoyer les messages qui te plaise. Par exemple des messages de déplacement pour que ton perso aille où tu veux. Ou des messages pour gérer les combats, etc.
J'espère que c'est plus clair pour toi !