Salut à tous les p'tits devs du forum,
J'ai repris récemment un projet qui s'apparente à un simple sniffer pour DofusRetro.
Jusqu'à présent j'utilisais la version "Legacy" du launcher pour jouer et j'injectais ma dll (via la librairie EasyHook) dans cette version là.
Seulement j'ai voulu passer à la version "Modern" (notamment pour pouvoir jouer sur Boune) et lorsque j'injecte ma dll dans cette version rien ne se passe.
J'utilise la méthode CreateAndInject() fournie par la librairie EasyHook qui permet de lancer un processus et de lui injecter la dll, avec la version "Modern" le processus se lance correctement (je peux jouer normalement ensuite) mais c'est comme si la methode recv() n'était jamais appelée par l'exécutable Dofus Retro.exe.
Je précise que rien ne change dans mon code mise à part le chemin vers l'exécutable dans lequel j'injecte ma DLL. Dans un cas il s'agit du chemin vers l'exécutable "Legacy" et dans l'autre du chemin vers l'exécutable "Modern".
J'ai testé pas mal de choses :
- Démarrer le processus puis faire appel à la méthode Inject() de la dll EasyHook
- Démarrer le processus en administrateur puis faire appel à la même méthode
- Lancer mon IDE en mode administrateur
- Hook les fonctions WSARecv() et WSARecvFrom,() j'ai même essayé de hook la fonction connect() (pour connect ça fonctionne bien sur la version Legacy, mais pas de résultat pour la version Modern)
- Utiliser Process Monitor pour voir un peu les évènements générés par l'exécutable de Dofus Retro, mais je n'y connais pas grand chose et je me perds vite
Finalement je me retrouve le bec dans l'eau et mes recherches pour comprendre pourquoi le hook de la version Modern ne réagit pas de la même façon que la version Legacy restent sans réponses...
Si l'un d'entre vous pouvait m'aiguiller sur les différences entre les architectures Legacy et Modern ou sur les faiblesses de EasyHook pour hook certain programmes ou si vous connaissez d'autres alternatives pour implémenter mon MITM, je suis preneur de toutes les infos/connaissances que vous pourrez m'apporter sur ces sujets.
Merci à vous :)