2009-06-06 4 views
13

Si vous pouviez m'aider avec ce dilemme, j'ai. Maintenant, je sais C \ C++, je sais asm, je sais à propos de l'injection de dll, je connais l'adressage de la mémoire virtuelle, mais je n'arrive pas à comprendre comment un logiciel comme CheatEngine et d'autres réussit à changer la valeur d'une variable processus. Pour ceux qui ne le savent pas, les outils de moteur de triche de tierce partie peuvent rechercher des valeurs dans l'espace mémoire d'un programme et identifier l'emplacement d'une variable avec une valeur donnée et la modifier.Comment changer une valeur dans l'espace mémoire d'un autre processus

Ma question est, comment font-ils?

Étant donné une adresse, si je devais écrire du code C, comment pourrais-je changer la valeur à cette adresse appartenant à un autre processus sans obtenir une erreur d'adressage invalide?

Merci.

Répondre

12

Je suis assez certain que ces programmes prétendent être des débogueurs. Sur Windows, je commencerais par DebugActiveProcess() et partirais de là.

Oh, et la fonction ReadProcessMemory() très utile (et WriteProcessMemory()).

+0

Merci c'est ce que je cherchais, fonctionne très bien. (Pour les autres utilisateurs lisant cette solution, assurez-vous d'utiliser DebugActiveProcessStop une fois terminé) –

+0

Veillez à appeler DebugSetProcessKillOnExit() si vous ne voulez pas que le processus que vous déboguez meure une fois que vous avez terminé le débogage. – mrduclaw

3

Vous ne pouvez pas faire cela avec Standard C ou C++ - vous devez utiliser des fonctionnalités spécifiques au système d'exploitation. Donc, vous devez nous dire quel OS vous êtes intéressé par

+0

Désolé je n'ai pas spécifié, je suis intéressé par Windows, mais Linux serait génial, je suis curieux de l'essayer là aussi –

4

Sur unix. Ptrace()

+0

Ptrace peut également modifier la mémoire de l'autre processus? – Matthew

+0

Par opposition à quel processus? – Thomas

2

Vous pouvez également être intéressé par Detours:

Logiciel empaqueté pour detouring API Win32 et d'application.

+1

Merci de lire à propos de la déviation http://www.codingthewheel.com/archives/how-i-built-a-working-online-poker-bot-7. Fun expérience bombe ASCII \ graffiti. Dommage, ce n'est pas librement \ facilement disponible pour 64 bits –

Questions connexes