Bonjour à tous,
J'aimerai trouver l'addresse de retour (mémoire) d'une fonction API, c'est pourquoi je vous demande votre aide...
Voilà comment je compte procéder:
1) Lancer l'application à l'aide de la fonction createProcess //Jusque-là, ca va...
2) Trouver les frontières (boundaries) de l'import Table en mémoire
3) Trouver les frontières (boundaries) du Stub programm
4) Trouver le Byte FF dans le code et être sûr que l'on a bien affaire à l'instruction call (assembler)
5) Une fois la function call trouvée, contrôler quelle se trouve bien dans la plage mémoire de l'Import Table définie avant
6) Si oui, alors l'addresse suivante sera l'addresse de retour...
7) Trouver le Byte E8 dans le code (également l'instruction call)
8) Rechercher dans le registre (suivant E8) l'addresse qui nous permettera de vérifier si elle fait partie de la plage Stub
9) Si oui, alors l'addresse suivante sera l'addresse de retour...
Je voudrais réaliser cela en C++.
Je viens de débuter ce "challenge" et toute aide sera la bienvenue à partir du point 2 ;-)
Naturellement, si quelqu'un connait un autre moyen de procéder, je suis preneur.
Voilà, j'espère avoir été clair et vous remercie ne serait-ce pour avoir lu ce message jusqu'au bout.
Merci et bonne Prog.

ElpenS
