Salut,
Selon moi le schéma n'est pas tout à fait juste, il ressemblerait plutôt à ça :
![img]()
Je pense que le schéma se suffit à lui même pour expliquer l'utilité du "Faux client" et du "Faux serveur".
Pour ce qui est de l'injection et des hooks cela te permet de "remplacer" le code d'une fonction par ton propre code. Dans le cas d'un MITM on se place entre un client et son serveur, l'injection permet donc de remplacer le code des fonctions connect(), send() et recv() afin d'y intercepter les paquets qui transitent entre le client et le serveur.
Concrètement le processus Dofus Retro.exe va utiliser la fonction send() de la librairie ws_32.dll pour envoyer un paquet (comme tu le fais actuellement avec bot socket). En injectant un hook dans le processus de Dofus Retro.exe, tu vas pouvoir exécuter un petit morceau de code avant d'appeler réellement send() et donc modifier le paquet avant de l'envoyer. C'est le même principe pour les fonctions connect() et recv().
PI : Il me semble que la nouvelle version de Dofus Retro utilise WSASend() et WSARecv() au lieu de Send() et Recv() mais je ne suis plus sûr de ce que j'avance.
En espérant que cela t'éclaire un peu, bon courage pour tes développements !