Lire des données dans un programme (simulateur)

Lire des données dans un programme (simulateur) - C++ - Programmation

Marsh Posté le 24-11-2004 à 10:14:28    

Bonjour,
 
Après pas mal de recherches sur le net, je me décide à poster ici.
 
Actuellement, je fais du VB, mais pour mon project, je passe au C++.
 
Je joue avec de simu de vol (Falcon, Forgotten Battle, Strike Fighters Project One) et j'ai besoin d'écrire un programme (service) afin d'aller lire dans la mémoire les valeurs des instruments de vol de l'avion, afin de rediriger ces infos vers des périphériques USB.
 
Mon premier défi, est d'accéder à la mémoire ou est exécuté le programme. Ensuite, avec une table (qui est dispo), j'irai lire les offset où se trouvent les info que j'ai besoin.
 
Si j'ai compris, pour accéder à la zone mémoire utilisée, je dois avoir le handle du thread du programme.
Ensuite, je pourrai faire des appels 'ReadProcessMemory' après avoir récupéré son PID.
Est-ce correct?
 
... un grand merci pour déjà lire ce post,
 
@+

Reply

Marsh Posté le 24-11-2004 à 10:14:28   

Reply

Marsh Posté le 24-11-2004 à 10:16:42    

ce ne serait pas plus simple de poser 1 caméra qui filme l'écran et qui irait "lire" les infos?

Reply

Marsh Posté le 24-11-2004 à 10:23:30    

Amigalopin a écrit :

Si j'ai compris, pour accéder à la zone mémoire utilisée, je dois avoir le handle du thread du programme.
Ensuite, je pourrai faire des appels 'ReadProcessMemory' après avoir récupéré son PID.
Est-ce correct?


 
mmh pas tout à fait.
 
tu dois récuperer le pid du processus de ton jeu, puis l'ouvrir avec OpenProcess. Le HANDLE retourné servira de paramètre à ReadProcessMemory
N'oublie pas de fermer le HANDLE avec CloseHandle apres


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 24-11-2004 à 11:34:22    

... ben c'est pas trop le but.
Et puis tout le monde n'a pas de caméra qui filme l'écran.
 
La table qui va lire les emplacements mémoires utiles, je les ai pour Falcon4 et IL2.
Donc, il suffit de les mettres dans un fichier que le programme (ou service) consultera pour peupler ses vatriables d'adresses de lecture au démarrage.

Reply

Marsh Posté le 24-11-2004 à 11:38:18    

BlackGoddess a écrit :

mmh pas tout à fait.
 
tu dois récuperer le pid du processus de ton jeu, puis l'ouvrir avec OpenProcess. Le HANDLE retourné servira de paramètre à ReadProcessMemory
N'oublie pas de fermer le HANDLE avec CloseHandle apres


 
Merci de l'info.
Je viens d'avoir du code de mon collègue, et ça fonctionne comme tu le dis.
J'ai un code qui liste le pid de chaque programme en mémoire, et il me retourne aussi le handle.
 
Maintenant, je teste le ReadProcessMemory à un offset donné afin de voir si c'est correct.
 
Merci pour le CloseHandle: je vais bien vérifier sa fermeture.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed