Problème avec les pointeurs

M5i9k Messages postés 49 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 10 novembre 2007 - 25 janv. 2006 à 14:56
M5i9k Messages postés 49 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 10 novembre 2007 - 25 janv. 2006 à 17:52
Bonjour,

Je cherche à utiliser un pointeur en lui fournissant une adresse, dans le but d'acceder une variable d'un autre programme , mais ça ne marche pas :
Dans ma source :

int* ptr;
Console.Write("Entrez une adresse : ");
ptr=(int*)int.Parse(Console.ReadLine());
Console.WriteLine("Adresse : {0} Valeur : {1}",(int)ptr,*ptr);

L'autre programme que j'ai fais me donne l'adresse de la variable :

Random rd=new Random();
int nbr=rd.Next(1000);
Console.WriteLine("Adresse : {0}",(int)&nbr);

Lorsque je lance le premier programme, en lui fournissant l'adresse, il m'affiche un nombre mais ce n'est pas celui qui est dans la variable du second, je ne comprend pas pourquoi...
Framework SDK v1.1

4 réponses

Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 11
25 janv. 2006 à 16:13
Lorsque tu lance le "programme du haut", es tu sur que la variable "int nbr" définie dans le "programme du bas" est toujours visible ?

Si ce n'est plus le cas, le garbage collector est peut être passé par là entre temps... Pourquoi as tu besoin de manipuler des pointeurs en c# ?
0
M5i9k Messages postés 49 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 10 novembre 2007
25 janv. 2006 à 17:07
Non, en faite ce sont deux programmes differents, le second est un jeu dans lequel il faut trouver un nombre entre 1 et 1000, le premier je l'utilise pour "tricher", et connaitre la valeur de nbr, comme l'adresse de nbr ne change jamais, je voudrais retrouver la valeur qu'il contient en ayant son adresse.
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 11
25 janv. 2006 à 17:23
Je ne pense pas que windows t'autorise à accéder à la mémoire de ton programme 1 depuis ton programme 2.... et heureusement d'ailleur ! Donc je te conseillerai t'utiliser une autre technique, comme écrire le nombre en question dans un fichier (crypté ?) pour pouvoir le "partager" avec ton autre programme.
0
M5i9k Messages postés 49 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 10 novembre 2007
25 janv. 2006 à 17:52
Ok, en fait, j'ai trouvé un programme (RAM Cheat) qui permet de modifier les valeurs dans la mémoire et il marche très bien, et je voulais essayer de faire la même chose en C#. Voila. Merci quand même.
0
Rejoignez-nous