Bonsoir !

J'ouvre se sujet car malgré avoir cherché dans se merveilleux forum je n'ai pas trouvé un tutoriel que je pense important,

Dans mon cas je code en Ruby , après avoir crée un bot pixel je voudrais l'amélioré en utilisant les donnée qui sont transmise entre dofus et son serveur , le mieux pour sa je pense est le système de MITM , malheureusement je n'ai pas d'idée précise de comment celà fonctionne...

Enfin je pense que faire transité les donné que dofus envoie a sont serveur à mon programme qui lui les envoie au serveur et vice versa me parait la meilleur façon de procéder ?

Pourriez vous m'en dire plus? un tutoriel?

Ne vous embrouillez pas je ne demande pas comment lire un paquet, simplement comment les faire transité à mon programme qui lui pourra les lire , si il le veux bien :x

Enfaite , tu dois inserer ton programme entre le serveur et le client

Server <-> Client

se transforme en

Server <-> Ton bot <-> Client

Par conséquent tu devras faire ceci :

- rediriger la connexion de ton client en local(127.0.0.1) en utilisant le "no.ankama.dll"

- Ensuite tu devras t'assurer de bien faire transiter les packets ex : celui - ci vient du server je l'envoie au client et vice-versa

- Seulement après avoir fait cela tu devras alors, comprendre protocole dofus afin de savoir comment lire ces fameux paquets

Lire les paquets : (lire les informations)

- tu devras traduire les informations envoyés depuis le serveur.

- Pour traduire ces informations, procède comme le client le fait cela se trouve dans la partie (network du dofusinvoker, décompilable avec jpex)

- Je ne connais pas le Ruby mais ce sera certainement le plus compliqué pour toi car tu devras traduire la partie network AS3 -> Ruby

- Mais en t'attaquant à la traduction de la partie network tu t'apercevras que avant ça tu devras traduire les IO

Les IO :

Ceux-ci servent à lire écrire les données reçues envoyées.

Procède encore une fois comme le client dofus cherches "CustomDataWrapper" et "BooleanByteWrapper"

Petite astuce :

Tu ne cherches qu'a lire les données, occupe toi alors que du deserialize.

Bonne chance ;)

8 jours plus tard

J'ai une petite question concernant l'injection de la DLL No.Ankama.dll :

Est-il nécessaire d'injecter la .dll a chaque nouveau lancement de D (chaque processus ?) ou il suffit de l'injecter une seul fois pour être tranquille pour "toujours" ?

D'après ce que j'ai compris on peut soit l'injecter dans le UpLauncher soit directement dans l'exe de D. Étant sous OS X savez-vous si le fonctionnement est le même ?

L'injection est dynamique, il faut donc patcher chaque nouveau client, mais tu peux faire le automatique dès que par exemple, un processeur du nom de "Dofus" s'ouvre.