draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010
-
10 déc. 2007 à 02:22
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010
-
10 déc. 2007 à 18:05
Salut a tous,
J'essai d'appeler une fonction dans un autre process en utilisant CreateRemoThread mais j'ai quelques problemes.
En fait, j'ai aucun probleme pour injecter la dll en faisant un RemoteThread sur LoadLibrary ni pour appeler une autre fonction retournant un entier (long) mais lorsque j'appel une fonction qui renvoi un char * ca plante le process
Je pense que c'est a cause que je tente de lire la chaine par le pointeur dans le process alors que je n'ai pas acces a la zone memoire de ce pointeur.
Est-ce bien ca ?
Si oui il faut que j'utilise VirtualAllocEx & co. je suppose ?
Mais la question que je me pose c'est ou et comment ? dans la fonction de la dll que j'appel cad dans le RemoteProcess ou bien depuis le process qui appel le CreateRemoteThread ?
Je pense que les 2 sont possible, mais quel serait la meilleur solution ?
Vous allez m'dire y a qu'a tester... mais etant tres tres nulle en C,C++ il m'est difficile de determiner si le plantage vient de la methode ou d'une erreur de programation....
Merci d'avance pour votre aide
++
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 déc. 2007 à 17:53
C'est clair que tu ne liras pas char* ni nimporte quelle adresse d'un autre prog.
Copie dans un FileMapping et retourne par exemple le nbr d'octets écrits, tu sauras ainsi s'il faut ou non aller récupérer qlq chose dans le filemapping.