c ++ - Sådan ændres en værdi i hukommelsesrummet til en anden proces

Indlæg af Hanne Mølgaard Plasc

Problem



Hvis du kunne hjælpe mig med dette dilemma, har jeg. Nu ved jeg C \ C ++, jeg ved, jeg ved om dll injektion, jeg ved om virtuel hukommelse adressering, men jeg kan bare ikke finde ud af hvordan
software som CheatEngine og andre, klarer at ændre en variables værdi i en anden proces.


For dem, der ikke ved, kan 3rd party cheat motorværktøjer scanne efter værdier i et programs hukommelsesområde og identificere placeringen af ​​en variabel med en given værdi og ændre den.


Mit spørgsmål er, hvordan gør de det?


Givet en adresse, hvis jeg skulle skrive C-kode, hvordan kunne jeg ændre værdien på den adresse, der tilhører en anden proces uden at få en ugyldig adresseringsfejl?


Tak.

Bedste reference


Jeg er ganske sikker på, at disse programmer foregiver at være debuggere. I Windows ville jeg starte med DebugActiveProcess () og gå derfra. [1]


Åh, og den meget nyttige udseende ReadProcessMemory () funktion (og WriteProcessMemory ()). [2]

Andre referencer 1


På unix: ptrace ()

Andre referencer 2


Du kan ikke gøre dette med Standard C eller C ++ - du skal bruge operativsystemets specifikke funktioner. Så du skal fortælle os hvilket OS du er interesseret i.

Andre referencer 3


Du kan også være interesseret i Detours: [3]



  Software pakket til omvejning af Win32 og applikations API'er.